@trail-ui/react
Version:
40 lines (38 loc) • 1.01 kB
JavaScript
// src/editable-table/table-context/table-context-provider.tsx
import { createContext, useContext } from "react";
import { jsx } from "react/jsx-runtime";
var EditableTableContext = createContext({
handleSaveData: () => {
},
idSelector: () => {
},
table: {}
});
function TableContextProvider({
children,
...props
}) {
return /* @__PURE__ */ jsx(EditableTableContext.Provider, { value: props, children });
}
function useTableContext(cell) {
const { handleSaveData, idSelector, table } = useContext(
EditableTableContext
);
function updateData(value) {
var _a;
const accessorKey = cell.column.columnDef.accessorKey;
handleSaveData({
accessorKey,
columnId: cell.column.id,
rowId: idSelector(cell.row.original),
value
});
(_a = table.options.meta) == null ? void 0 : _a.updateData(cell.row.id, cell.column.id, value);
}
return { updateData, idSelector, table };
}
export {
EditableTableContext,
TableContextProvider,
useTableContext
};