git ssb

16+

Dominic / patchbay



Tree: 6ae6f1ce78d440dea5e42c9ab6d0112732b161f6

Files: 6ae6f1ce78d440dea5e42c9ab6d0112732b161f6 / modules_core / search-box.js

1271 bytesRaw
1'use strict'
2const h = require('../h')
3const fs = require('fs')
4
5
6exports.needs = {
7 suggest_search: 'map', //REWRITE
8 build_suggest_box: 'first'
9}
10
11exports.gives = {
12 search_box: true,
13 mcss: true
14}
15
16exports.create = function (api) {
17
18 return {
19 search_box,
20 mcss: () => fs.readFileSync(__filename.replace(/js$/, 'mcss'), 'utf8')
21 }
22
23 function search_box (go) {
24 const input = h('input', {
25 type: 'search',
26 placeholder: 'Commands',
27 'ev-keyup': ev => {
28 switch (ev.keyCode) {
29 case 13: // enter
30 console.log(ev)
31 ev.stopPropagation()
32 suggestBox.complete()
33
34 if (go(input.value.trim(), !ev.ctrlKey))
35 input.blur()
36 return
37 case 27: // escape
38 ev.preventDefault()
39 input.blur()
40 return
41 }
42 }
43 })
44 const search = h('Search', input)
45
46 search.activate = (sigil, ev) => {
47 input.focus()
48 ev.preventDefault()
49 if (input.value[0] === sigil) {
50 input.selectionStart = 1
51 input.selectionEnd = input.value.length
52 } else {
53 input.value = sigil
54 }
55 }
56
57 const suggestBox = api.build_suggest_box(input, api.suggest_search)
58
59 return search
60 }
61
62}
63
64

Built with git-ssb-web