@pagamio/frontend-commons-lib
Version:
Pagamio library for Frontend reusable components like the form engine and table container
39 lines (38 loc) • 1.63 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
import { setupInputRegistry } from '../form-engine/registry';
/**
* @deprecated Use `MultiFormEngineDrawerProvider` instead. This will be removed in a future version.
*/
const FormEngineDrawerContext = createContext(undefined);
/**
* @deprecated Use `MultiFormEngineDrawerProvider` instead. This will be removed in a future version.
*/
export const FormEngineDrawerProvider = ({ pathname, children }) => {
console.warn('FormEngineDrawerProvider is deprecated and will be removed in a future version. Use MultiFormEngineDrawerProvider instead.');
const [isOpen, setIsOpen] = useState(false);
useEffect(() => {
setupInputRegistry();
}, []);
const handleOpenDrawer = useCallback(() => setIsOpen(true), []);
const handleCloseDrawer = useCallback(() => setIsOpen(false), []);
useEffect(() => {
setIsOpen(false);
}, [pathname]);
const contextValue = useMemo(() => ({
isOpen,
handleOpenDrawer,
handleCloseDrawer,
}), [isOpen, handleOpenDrawer, handleCloseDrawer]);
return _jsx(FormEngineDrawerContext.Provider, { value: contextValue, children: children });
};
/**
* @deprecated Use `useMultiFormEngineDrawer` instead. This will be removed in a future version.
*/
export const useFormEngineDrawer = () => {
const context = useContext(FormEngineDrawerContext);
if (!context) {
throw new Error('useFormEngineDrawer must be used within a FormEngineDrawerProvider');
}
return context;
};