aboutsummaryrefslogtreecommitdiff
path: root/static/widgets/search/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'static/widgets/search/index.js')
-rw-r--r--static/widgets/search/index.js68
1 files changed, 0 insertions, 68 deletions
diff --git a/static/widgets/search/index.js b/static/widgets/search/index.js
deleted file mode 100644
index b014cdd..0000000
--- a/static/widgets/search/index.js
+++ /dev/null
@@ -1,68 +0,0 @@
-import icons from 'icons';
-import * as sfw from 'sfw';
-const { Div, Input, Button } = sfw.element.native;
-
-import stylesheet from './index.css';
-
-const css = await sfw.css.sheet(stylesheet);
-
-export default class Search extends sfw.element.Container {
- #container
- #search
-
- constructor() {
- super({ css });
-
- this.onsubmit = () => {}
- this.onhide = () => {}
-
- this.onclick = (e) => e.stopPropagation();
- this.hide = () => {
- this.#container.classList.remove('visible');
- document.removeEventListener('click', this.hide);
- this.onhide();
- };
-
- this.body.append(
- this.#container = Div.new({
- id: 'container',
- children: [
- Div.new({ innerText: 'Search', id: 'title' }),
- Div.new({
- id: 'search-box',
- children: [
- this.#search = Input.new({
- type: 'search',
- onsearch: () => this.submit(),
- onkeydown: (event) => {
- if (event.key === 'Enter') {
- this.submit();
- }
- }
- }),
- Button.new({
- children: [ icons.search ],
- onclick: () => this.submit(),
- }),
- ]
- })
- ]
- })
- );
- }
-
- submit() {
- this.onsubmit(this.#search.value);
- this.#search.blur();
- this.hide();
- }
-
- toggle() {
- this.#container.classList.toggle('visible');
-
- if (this.#container.classList.contains('visible')) {
- this.#search.focus()
- document.addEventListener('click', this.hide)
- }
- }
-}