Files
stash/ui/v2.5/src/hooks/useTableColumns.ts

38 lines
946 B
TypeScript

import { useContext } from "react";
import { useConfigureUI } from "src/core/StashService";
import { ConfigurationContext } from "src/hooks/Config";
import { useToast } from "./Toast";
export const useTableColumns = (
tableName: string,
defaultColumns: string[]
) => {
const Toast = useToast();
const { configuration } = useContext(ConfigurationContext);
const [saveUI] = useConfigureUI();
const selectedColumns: string[] =
configuration?.ui?.tableColumns?.[tableName] ?? defaultColumns;
async function saveColumns(updatedColumns: readonly string[]) {
try {
await saveUI({
variables: {
input: {
...configuration?.ui,
tableColumns: {
...configuration?.ui?.tableColumns,
[tableName]: updatedColumns,
},
},
},
});
} catch (e) {
Toast.error(e);
}
}
return { selectedColumns, saveColumns };
};