From bb900e1bd40a6b7efd7a538114d985ea7f7e3e88 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Wed, 17 Aug 2022 21:43:29 +0200 Subject: feat(frontend): custom search panel Also improves editor styling (to enable panel styling). --- subprojects/frontend/src/editor/SearchPanel.ts | 32 ++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 subprojects/frontend/src/editor/SearchPanel.ts (limited to 'subprojects/frontend/src/editor/SearchPanel.ts') diff --git a/subprojects/frontend/src/editor/SearchPanel.ts b/subprojects/frontend/src/editor/SearchPanel.ts new file mode 100644 index 00000000..c9df41b7 --- /dev/null +++ b/subprojects/frontend/src/editor/SearchPanel.ts @@ -0,0 +1,32 @@ +import { + type EditorView, + type Panel, + runScopeHandlers, +} from '@codemirror/view'; + +import type SearchPanelStore from './SearchPanelStore'; + +export default class SearchPanel implements Panel { + readonly dom: HTMLDivElement; + + constructor(view: EditorView, store: SearchPanelStore) { + this.dom = document.createElement('div'); + this.dom.id = store.id; + this.dom.className = store.panelClass; + this.dom.addEventListener( + 'keydown', + (event) => { + if (runScopeHandlers(view, event, 'search-panel')) { + event.preventDefault(); + } + }, + { + capture: true, + }, + ); + } + + get top(): boolean { + return true; + } +} -- cgit v1.2.3-54-g00ecf