gitscope
← marzneshin / nightly / dashboard/src/libs/entity-table/contexts/entity-table-provider.tsx
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/libs/entity-table/contexts/entity-table-provider.tsx · TypeScript
Blame Raw
 1import { createContext, useContext } from "react";
 2import { UseFiltersReturn, UsePrimaryFilterReturn } from "../hooks";
 3import { Table } from "@tanstack/react-table";
 4
 5interface EntityTableContextProps<TData> {
 6    entityKey: string
 7    table: Table<TData>
 8    data: TData[]
 9    primaryFilter: UsePrimaryFilterReturn
10    filters: UseFiltersReturn
11    isLoading: boolean
12}
13
14export const EntityTableContext = createContext<EntityTableContextProps<any> | null>(null);
15
16export const useEntityTableContext = () => {
17    const ctx = useContext(EntityTableContext);
18    if (!ctx)
19        throw new Error('EntityTable.* component must be rendered as child of EntityTable');
20    return ctx;
21}