aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/ContextMenu.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views/ContextMenu.tsx')
-rw-r--r--src/client/views/ContextMenu.tsx32
1 files changed, 11 insertions, 21 deletions
diff --git a/src/client/views/ContextMenu.tsx b/src/client/views/ContextMenu.tsx
index 05634f376..5edb5fc0d 100644
--- a/src/client/views/ContextMenu.tsx
+++ b/src/client/views/ContextMenu.tsx
@@ -8,7 +8,7 @@ import * as React from 'react';
import { DivHeight, DivWidth } from '../../ClientUtils';
import { SnappingManager } from '../util/SnappingManager';
import './ContextMenu.scss';
-import { ContextMenuItem, ContextMenuProps, OriginalMenuProps } from './ContextMenuItem';
+import { ContextMenuItem, ContextMenuProps } from './ContextMenuItem';
import { ObservableReactComponent } from './ObservableReactComponent';
@observer
@@ -148,13 +148,13 @@ export class ContextMenu extends ObservableReactComponent<{ noexpand?: boolean }
return wasOpen;
};
- @computed get filteredItems(): (OriginalMenuProps | string[])[] {
+ @computed get filteredItems(): (ContextMenuProps | string[])[] {
const searchString = this._searchString.toLowerCase().split(' ');
const matches = (descriptions: string[]) => searchString.every(s => descriptions.some(desc => desc.toLowerCase().includes(s)));
const flattenItems = (items: ContextMenuProps[], groupFunc: (groupName: string) => string[]) => {
- let eles: (OriginalMenuProps | string[])[] = [];
+ let eles: (ContextMenuProps | string[])[] = [];
- const leaves: OriginalMenuProps[] = [];
+ const leaves: ContextMenuProps[] = [];
items.forEach(item => {
const { description } = item;
const path = groupFunc(description);
@@ -165,7 +165,7 @@ export class ContextMenu extends ObservableReactComponent<{ noexpand?: boolean }
eles = eles.concat(children);
}
} else if (matches(path)) {
- leaves.push(item as OriginalMenuProps);
+ leaves.push(item as ContextMenuProps);
}
});
@@ -176,8 +176,8 @@ export class ContextMenu extends ObservableReactComponent<{ noexpand?: boolean }
return flattenItems(this._items.slice(), name => [name]);
}
- @computed get flatItems(): OriginalMenuProps[] {
- return this.filteredItems.filter(item => !Array.isArray(item)) as OriginalMenuProps[];
+ @computed get flatItems(): ContextMenuProps[] {
+ return this.filteredItems.filter(item => !Array.isArray(item)) as ContextMenuProps[];
}
@computed get menuItems() {
@@ -228,21 +228,11 @@ export class ContextMenu extends ObservableReactComponent<{ noexpand?: boolean }
color: SnappingManager.userColor,
}}>
{!this.itemsNeedSearch ? null : (
- <span className="search-icon">
- <span className="icon-background">
+ <span className="contextMenu-search">
+ <span className="contextMenu-searchIcon">
<FontAwesomeIcon icon="search" size="lg" />
</span>
- <input
- ref={this._searchRef}
- style={{ color: 'black' }}
- className="contextMenu-item contextMenu-description search"
- type="text"
- placeholder="Filter Menu..."
- value={this._searchString}
- onKeyDown={this.onKeyDown}
- onChange={this.onChange}
- autoFocus
- />
+ <input ref={this._searchRef} style={{ color: 'black' }} className="contextMenu-searchInput" type="text" placeholder="Filter Menu..." value={this._searchString} onKeyDown={this.onKeyDown} onChange={this.onChange} autoFocus />
</span>
)}
{this.menuItems}
@@ -264,7 +254,7 @@ export class ContextMenu extends ObservableReactComponent<{ noexpand?: boolean }
e.preventDefault();
} else if (e.key === 'Enter' || e.key === 'Tab') {
const item = this.flatItems[this._selectedIndex];
- if (item) {
+ if (item.event) {
item.event({ x: this.pageX, y: this.pageY });
} else {
// if (this._searchString.startsWith(this._defaultPrefix)) {