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