import { RoundIconButton } from '@/components/RoundIconButton'; import { TitleBar, Title } from '@/components/TitleBar'; import { FunctionComponent } from 'preact'; import { AccountPreferences, HelpAndFeedback, Listed, General, Security, } from './panes'; import { observer } from 'mobx-react-lite'; import { PreferencesMenu } from './PreferencesMenu'; import { PreferencesMenuView } from './PreferencesMenuView'; import { WebApplication } from '@/ui_models/application'; import { MfaProps } from './panes/two-factor-auth/MfaProps'; import { AppState } from '@/ui_models/app_state'; import { useEffect, useMemo } from 'preact/hooks'; import { Extensions } from './panes/Extensions'; interface PreferencesProps extends MfaProps { application: WebApplication; appState: AppState; closePreferences: () => void; } const PaneSelector: FunctionComponent< PreferencesProps & { menu: PreferencesMenu } > = observer((props) => { switch (props.menu.selectedPaneId) { case 'general': return ( ); case 'account': return ( ); case 'appearance': return null; case 'security': return ( ); case 'extensions': return ; case 'listed': return ; case 'shortcuts': return null; case 'accessibility': return null; case 'get-free-month': return null; case 'help-feedback': return ; } }); const PreferencesCanvas: FunctionComponent< PreferencesProps & { menu: PreferencesMenu } > = observer((props) => (
)); export const PreferencesView: FunctionComponent = observer( (props) => { const menu = useMemo(() => new PreferencesMenu(), []); useEffect(() => { menu.selectPane(props.appState.preferences.currentPane); const removeEscKeyObserver = props.application.io.addKeyObserver({ key: 'Escape', onKeyDown: (event) => { event.preventDefault(); props.closePreferences(); }, }); return () => { removeEscKeyObserver(); }; }, [props, menu]); return (
{/* div is added so flex justify-between can center the title */}
Your preferences for Standard Notes { props.closePreferences(); }} type="normal" icon="close" />
); } );