diff options
Diffstat (limited to 'src/client/views/ContextMenu.tsx')
-rw-r--r-- | src/client/views/ContextMenu.tsx | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/client/views/ContextMenu.tsx b/src/client/views/ContextMenu.tsx index 18b433a77..d784a14b8 100644 --- a/src/client/views/ContextMenu.tsx +++ b/src/client/views/ContextMenu.tsx @@ -1,3 +1,6 @@ +/* eslint-disable react/no-array-index-key */ +/* eslint-disable react/jsx-props-no-spreading */ +/* eslint-disable default-param-last */ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { action, computed, IReactionDisposer, makeObservable, observable } from 'mobx'; import { observer } from 'mobx-react'; @@ -147,15 +150,13 @@ export class ContextMenu extends ObservableReactComponent<{}> { @computed get filteredItems(): (OriginalMenuProps | string[])[] { const searchString = this._searchString.toLowerCase().split(' '); - const matches = (descriptions: string[]): boolean => { - return searchString.every(s => descriptions.some(desc => desc.toLowerCase().includes(s))); - }; + const matches = (descriptions: string[]) => searchString.every(s => descriptions.some(desc => desc.toLowerCase().includes(s))); const flattenItems = (items: ContextMenuProps[], groupFunc: (groupName: any) => string[]) => { let eles: (OriginalMenuProps | string[])[] = []; const leaves: OriginalMenuProps[] = []; - for (const item of items) { - const description = item.description; + items.forEach(item => { + const { description } = item; const path = groupFunc(description); if ('subitems' in item) { const children = flattenItems(item.subitems, name => [...groupFunc(description), name]); @@ -163,13 +164,10 @@ export class ContextMenu extends ObservableReactComponent<{}> { eles.push(path); eles = eles.concat(children); } - } else { - if (!matches(path)) { - continue; - } + } else if (matches(path)) { leaves.push(item); } - } + }); eles = [...leaves, ...eles]; @@ -241,6 +239,7 @@ export class ContextMenu extends ObservableReactComponent<{}> { value={this._searchString} onKeyDown={this.onKeyDown} onChange={this.onChange} + // eslint-disable-next-line jsx-a11y/no-autofocus autoFocus /> </span> |