import RoundIconButton from '@/Components/Button/RoundIconButton' import { FunctionComponent, useEffect, useMemo } from 'react' import { observer } from 'mobx-react-lite' import { PreferencesMenu } from './PreferencesMenu' import PreferencesCanvas from './PreferencesCanvas' import { PreferencesProps } from './PreferencesProps' import { useDisableBodyScrollOnMobile } from '@/Hooks/useDisableBodyScrollOnMobile' import { useAndroidBackHandler } from '@/NativeMobileWeb/useAndroidBackHandler' import Modal from '../Modal/Modal' import { classNames } from '@standardnotes/snjs' import { isIOS } from '@/Utils' import { useCommandService } from '../CommandProvider' import { ESCAPE_COMMAND } from '@standardnotes/ui-services' const PreferencesView: FunctionComponent = ({ application, viewControllerManager, closePreferences, userProvider, mfaProvider, }) => { const commandService = useCommandService() const menu = useMemo( () => new PreferencesMenu(application, viewControllerManager.enableUnfinishedFeatures), [viewControllerManager.enableUnfinishedFeatures, application], ) useEffect(() => { menu.selectPane(viewControllerManager.preferencesController.currentPane) }, [menu, viewControllerManager.preferencesController.currentPane]) useDisableBodyScrollOnMobile() const addAndroidBackHandler = useAndroidBackHandler() useEffect(() => { const removeListener = addAndroidBackHandler(() => { closePreferences() return true }) return () => { if (removeListener) { removeListener() } } }, [addAndroidBackHandler, closePreferences]) useEffect(() => { return commandService.addCommandHandler({ command: ESCAPE_COMMAND, onKeyDown: () => { closePreferences() return true }, }) }, [commandService, closePreferences]) return (

Your preferences for Standard Notes

{ closePreferences() }} icon="close" label="Close preferences" />
} >
) } export default observer(PreferencesView)