git ssb

16+

Dominic / patchbay



Tree: 2f3fa2face6b2be68c4502ddf460be8c0783d0bc

Files: 2f3fa2face6b2be68c4502ddf460be8c0783d0bc / modules_core / search-box.js

1302 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 var search = h('Search', [
25 h('input', {
26 type: 'search',
27 placeholder: 'Commands',
28 'ev-click': ev => {
29 switch (ev.keyCode) {
30 case 13: // enter
31 ev.stopPropagation()
32 suggestBox.complete()
33
34 if (go(search.value.trim(), !ev.ctrlKey))
35 search.blur()
36 return
37 case 27: // escape
38 ev.preventDefault()
39 search.blur()
40 return
41 }
42 }
43 })
44 ])
45
46 const input = search.firstChild
47 search.activate = (sigil, ev) => {
48 input.focus()
49 ev.preventDefault()
50 if (input.value[0] === sigil) {
51 input.selectionStart = 1
52 input.selectionEnd = input.value.length
53 } else {
54 input.value = sigil
55 }
56 }
57
58 var suggestBox = api.build_suggest_box(input, api.suggest_search)
59
60 return search
61 }
62
63}
64
65

Built with git-ssb-web