@knowmax/genericlist-core
Version:
Knowmax Generic list with basic CRUD support without any user interface implementation.
21 lines (20 loc) • 1.14 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { createContext, useContext, useMemo } from 'react';
import { observer } from 'mobx-react-lite';
import { providerErrorMessage } from '../utils';
import { GenericListSettings } from './GenericListSettings';
import { GenericListCacheProvider } from './GenericListCacheProvider';
const GenericListSettingsContext = createContext(null);
export const useGenericListSettings = () => {
const genericlistsettings = useContext(GenericListSettingsContext);
if (!genericlistsettings) {
throw new Error(providerErrorMessage('GenericListSettings'));
}
return genericlistsettings;
};
/** Wrap this around your application to be able to configure and use generic lists.
* Also includes GenericListCacheProvider, so no need to wrap that around your application. */
export const GenericListSettingsProvider = observer(({ children }) => {
const genericlistsettings = useMemo(() => new GenericListSettings(), []);
return (_jsx(GenericListSettingsContext.Provider, { value: genericlistsettings, children: _jsx(GenericListCacheProvider, { children: children }) }));
});