feat: Always show quick settings menu (#765)

This commit is contained in:
Aman Harwara
2021-12-08 20:40:56 +05:30
committed by GitHub
parent e6087de709
commit dc9dc104c9
2 changed files with 58 additions and 88 deletions

View File

@@ -180,8 +180,9 @@ const QuickSettingsMenu: FunctionComponent<MenuProps> = observer(
} }
}; };
const handleQuickSettingsKeyDown: JSXInternal.KeyboardEventHandler<HTMLDivElement> = const handleQuickSettingsKeyDown: JSXInternal.KeyboardEventHandler<
(event) => { HTMLDivElement
> = (event) => {
quickSettingsKeyDownHandler( quickSettingsKeyDownHandler(
closeQuickSettingsMenu, closeQuickSettingsMenu,
event, event,
@@ -222,6 +223,7 @@ const QuickSettingsMenu: FunctionComponent<MenuProps> = observer(
<div className="px-3 mt-1 mb-2 font-semibold color-text uppercase"> <div className="px-3 mt-1 mb-2 font-semibold color-text uppercase">
Quick Settings Quick Settings
</div> </div>
{themes && themes.length ? (
<Disclosure open={themesMenuOpen} onChange={toggleThemesMenu}> <Disclosure open={themesMenuOpen} onChange={toggleThemesMenu}>
<DisclosureButton <DisclosureButton
onKeyDown={handleBtnKeyDown} onKeyDown={handleBtnKeyDown}
@@ -270,6 +272,7 @@ const QuickSettingsMenu: FunctionComponent<MenuProps> = observer(
))} ))}
</DisclosurePanel> </DisclosurePanel>
</Disclosure> </Disclosure>
) : null}
{toggleableComponents.map((component) => ( {toggleableComponents.map((component) => (
<Switch <Switch
className="sn-dropdown-item focus:bg-info-backdrop focus:shadow-none" className="sn-dropdown-item focus:bg-info-backdrop focus:shadow-none"

View File

@@ -8,7 +8,6 @@ import {
SNTheme, SNTheme,
ComponentArea, ComponentArea,
CollectionSort, CollectionSort,
SNComponent,
} from '@standardnotes/snjs'; } from '@standardnotes/snjs';
import template from './footer-view.pug'; import template from './footer-view.pug';
import { AppStateEvent, EventSource } from '@/ui_models/app_state'; import { AppStateEvent, EventSource } from '@/ui_models/app_state';
@@ -43,8 +42,6 @@ class FooterViewCtrl extends PureViewCtrl<
} }
> { > {
private $rootScope: ng.IRootScopeService; private $rootScope: ng.IRootScopeService;
private themes: SNTheme[] = [];
private toggleableComponents: SNComponent[] = [];
private showSyncResolution = false; private showSyncResolution = false;
private unregisterComponent: any; private unregisterComponent: any;
private rootScopeListener2: any; private rootScopeListener2: any;
@@ -76,8 +73,6 @@ class FooterViewCtrl extends PureViewCtrl<
deinit() { deinit() {
for (const remove of this.observerRemovers) remove(); for (const remove of this.observerRemovers) remove();
this.observerRemovers.length = 0; this.observerRemovers.length = 0;
this.themes.length = 0;
this.toggleableComponents.length = 0;
this.unregisterComponent(); this.unregisterComponent();
this.unregisterComponent = undefined; this.unregisterComponent = undefined;
this.rootScopeListener2(); this.rootScopeListener2();
@@ -276,30 +271,6 @@ class FooterViewCtrl extends PureViewCtrl<
return !theme.errorDecrypting; return !theme.errorDecrypting;
} }
); );
this.observerRemovers.push(
this.application.streamItems(ContentType.Theme, async () => {
const themes = this.application.getDisplayableItems(
ContentType.Theme
) as SNTheme[];
this.themes = themes;
})
);
this.observerRemovers.push(
this.application.streamItems(ContentType.Component, async () => {
const toggleableComponents = (
this.application.getDisplayableItems(
ContentType.Component
) as SNComponent[]
).filter((component) =>
[ComponentArea.EditorStack, ComponentArea.TagsList].includes(
component.area
)
);
this.toggleableComponents = toggleableComponents;
})
);
} }
registerComponentHandler() { registerComponentHandler() {
@@ -400,11 +371,7 @@ class FooterViewCtrl extends PureViewCtrl<
quickSettingsPressed() { quickSettingsPressed() {
this.appState.accountMenu.closeAccountMenu(); this.appState.accountMenu.closeAccountMenu();
if (this.themes.length > 0 || this.toggleableComponents.length > 0) {
this.appState.quickSettingsMenu.toggle(); this.appState.quickSettingsMenu.toggle();
} else {
this.appState.preferences.openPreferences();
}
} }
toggleSyncResolutionMenu() { toggleSyncResolutionMenu() {