mirror of
https://github.com/stashapp/stash.git
synced 2025-12-18 04:44:37 +03:00
Improved list view for scenes, galleries and performers (#4368)
Co-authored-by: InfiniteStash <117855276+InfiniteStash@users.noreply.github.com> Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
This commit is contained in:
37
ui/v2.5/src/hooks/useTableColumns.ts
Normal file
37
ui/v2.5/src/hooks/useTableColumns.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
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 };
|
||||
};
|
||||
Reference in New Issue
Block a user