import * as React from 'react'; import { ReactElement, useCallback, useMemo, useState } from 'react'; import { PreferencesEditorContext, PreferencesEditorContextValue, } from './PreferencesEditorContext'; export const PreferencesEditorContextProvider = ({ children }) => { const [isEnabled, setIsEnabled] = useState(false); const [editor, setEditor] = useState(null); const [preferenceKey, setPreferenceKey] = useState(); const [path, setPath] = useState(null); const [title, setTitleString] = useState(null); const [titleOptions, setTitleOptions] = useState(); const enable = useCallback(() => setIsEnabled(true), []); const disable = useCallback(() => { setIsEnabled(false); setEditor(null); }, []); const setTitle = useCallback((title: string, titleOptions?: any) => { setTitleString(title); setTitleOptions(titleOptions); }, []); const context = useMemo(() => { return { editor, setEditor, preferenceKey, setPreferenceKey, title, titleOptions, setTitle, isEnabled, disable, enable, path, setPath, }; }, [ disable, enable, editor, preferenceKey, isEnabled, path, setPath, title, titleOptions, setTitle, ]); return ( {children} ); };