dgz-ui-shared
Version:
Custom ui library using React.js, Shadcn/ui, TailwindCSS, Typescript, dgz-ui library
31 lines • 1.37 kB
TypeScript
import { ColumnType } from '../types';
/**
* Props for the useColumns hook.
* @template TData - The type of data associated with the columns.
*/
export interface UseColumnsProps<TData> {
/** Unique key to identify the table for persisting column state. */
key: string;
/** Array of column definitions. */
columns: ColumnType<TData>[];
}
/**
* useColumns manages visibility of table columns using a persisted store.
* Returns formatted columns and helpers to toggle/reset visibility.
*
* @template TData - Row data type.
* @param key - Unique key for storing visibility per table.
* @param columns - Original column definitions.
* @returns {Object} Column management object
* @returns {ColumnType<TData>[]} formattedColumns - Filtered columns with visibility applied from store
* @returns {(column: ColumnType<TData>, value: boolean) => void} handleColumnsChange - Function to toggle column visibility
* @returns {() => void} resetColumns - Function to reset all columns to their default visibility
*/
export declare const useColumns: <TData>({ key, columns, }: UseColumnsProps<TData>) => {
formattedColumns: (Omit<ColumnType<TData>, "hidden"> & {
hidden: boolean;
})[];
handleColumnsChange: (column: ColumnType<TData>, value: boolean) => void;
resetColumns: () => void;
};
//# sourceMappingURL=useColumns.d.ts.map