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 } from 'preact/hooks'; 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 '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) => { useEffect(() => { const removeEscKeyObserver = props.application.io.addKeyObserver({ key: 'Escape', onKeyDown: (event) => { event.preventDefault(); props.closePreferences(); } }); return () => { removeEscKeyObserver(); }; }, [props]); const menu = new PreferencesMenu(); return (
{/* div is added so flex justify-between can center the title */}
Your preferences for Standard Notes { props.closePreferences(); }} type="normal" icon="close" />
); } );