mirror of
https://github.com/ershisan99/db-studio.git
synced 2025-12-18 12:33:07 +00:00
refactor table details queries (indexes, foreign_keys, columns)
This commit is contained in:
@@ -1,7 +1,13 @@
|
||||
import { keepPreviousData, useQuery } from "@tanstack/react-query";
|
||||
import { DB_QUERY_KEYS } from "./db.query-keys";
|
||||
import { dbService } from "./db.service";
|
||||
import type { GetTableDataArgs, GetTablesListArgs } from "./db.types";
|
||||
import type {
|
||||
GetTableColumnsArgs,
|
||||
GetTableDataArgs,
|
||||
GetTableForeignKeysArgs,
|
||||
GetTableIndexesArgs,
|
||||
GetTablesListArgs,
|
||||
} from "./db.types";
|
||||
|
||||
export const useDatabasesListQuery = () => {
|
||||
return useQuery({
|
||||
@@ -38,27 +44,36 @@ export const useTableDataQuery = (args: GetTableDataArgs) => {
|
||||
});
|
||||
};
|
||||
|
||||
export const useTableColumnsQuery = (args: { name?: string }) => {
|
||||
export const useTableColumnsQuery = (args: GetTableColumnsArgs) => {
|
||||
return useQuery({
|
||||
queryKey: [DB_QUERY_KEYS.TABLES.COLUMNS, args],
|
||||
queryFn: () => dbService.getTableColumns(args.name ?? ""),
|
||||
placeholderData: keepPreviousData,
|
||||
enabled: !!args.name,
|
||||
queryFn: () => dbService.getTableColumns(args),
|
||||
placeholderData: (previousData, previousQuery) => {
|
||||
if (
|
||||
typeof previousQuery?.queryKey[1] !== "string" &&
|
||||
(previousQuery?.queryKey[1].dbName !== args.dbName ||
|
||||
previousQuery?.queryKey[1].tableName !== args.tableName)
|
||||
) {
|
||||
return undefined;
|
||||
}
|
||||
return previousData;
|
||||
},
|
||||
enabled: !!args.tableName && !!args.dbName,
|
||||
});
|
||||
};
|
||||
|
||||
export const useTableIndexesQuery = (args: { name?: string }) => {
|
||||
export const useTableIndexesQuery = (args: GetTableIndexesArgs) => {
|
||||
return useQuery({
|
||||
queryKey: [DB_QUERY_KEYS.TABLES.INDEXES, args],
|
||||
queryFn: () => dbService.getTableIndexes(args.name ?? ""),
|
||||
enabled: !!args.name,
|
||||
queryFn: () => dbService.getTableIndexes(args),
|
||||
enabled: !!args.tableName && !!args.dbName,
|
||||
});
|
||||
};
|
||||
|
||||
export const useTableForeignKeysQuery = (args: { name?: string }) => {
|
||||
export const useTableForeignKeysQuery = (args: GetTableForeignKeysArgs) => {
|
||||
return useQuery({
|
||||
queryKey: [DB_QUERY_KEYS.TABLES.FOREIGN_KEYS, args],
|
||||
queryFn: () => dbService.getTableForeignKeys(args.name ?? ""),
|
||||
enabled: !!args.name,
|
||||
queryFn: () => dbService.getTableForeignKeys(args),
|
||||
enabled: !!args.tableName && !!args.dbName,
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user