garage-erp/shared/data-view/table-view/data-view-context.tsx
2026-03-26 03:49:05 +03:00

31 lines
836 B
TypeScript

"use client"
import { createContext, useContext } from "react"
import type { DataViewChangeEvent, DataViewPaginationState, DataViewSorting } from "./types"
type DataViewContextValue = {
pagination: DataViewPaginationState
sorting: DataViewSorting
onChange: (event: DataViewChangeEvent) => void
isLoading: boolean
}
const DataViewContext = createContext<DataViewContextValue | null>(null)
export function DataViewProvider({
children,
...value
}: DataViewContextValue & { children: React.ReactNode }) {
return (
<DataViewContext.Provider value={value}>
{children}
</DataViewContext.Provider>
)
}
export function useDataView() {
const ctx = useContext(DataViewContext)
if (!ctx) throw new Error("useDataView must be used within a DataViewProvider")
return ctx
}