styled-hook-form
Version:
React form library for styled-components based on grommet and react-hook-form
36 lines (35 loc) • 1.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useDataTableContext = exports.DataTableContextProvider = exports.DataTableContext = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const react_1 = require("react");
const actions_1 = require("./actions");
const impl_1 = require("./actions/impl");
const defaults = {
primaryKey: "",
totalRecords: 0,
syncKey: 0,
orderDir: "desc",
orderParam: "id",
hasOrder: false,
};
const DataTableContext = react_1.createContext({
state: defaults,
dispatch: () => { },
});
exports.DataTableContext = DataTableContext;
let reducer = (state, action) => actions_1.actionImpl(state, action);
const DataTableContextProvider = (props) => {
let { children, options } = props;
let [state, dispatch] = react_1.useReducer(reducer, Object.assign(Object.assign({}, defaults), options), (s) => s);
if (!state.syncKey) {
state.syncKey = impl_1.getSyncKey();
}
return (jsx_runtime_1.jsx(DataTableContext.Provider, Object.assign({ value: {
state,
dispatch,
} }, { children: children }), void 0));
};
exports.DataTableContextProvider = DataTableContextProvider;
const useDataTableContext = () => react_1.useContext(DataTableContext);
exports.useDataTableContext = useDataTableContext;