← marzneshin
/
v0.7.4
/
dashboard/src/libs/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 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}