frontend: changed 'search' interaction, for improved consistency and less burden on the server

Massimo Melina committed Dec 21, 2021 at 12:14 UTC ad9c282060b2be43a0218e8a8aa79a6327afa532
2 files changed +6 -16
frontend/src/BrowseFiles.ts
+1
@@ -33,6 +33,7 @@ function useFetchList() {
33 const loc = window.location
34 if (!desiredPath.endsWith('/')) // useful only in dev, while accessing the frontend directly without passing by the main server
35 loc.href = loc.href+'/'
36 + state.remoteSearch = ''
37 setPreloading(true)
38 setPath(desiredPath)
39 }, [desiredPath])
frontend/src/Head.ts
+5 -16
@@ -19,15 +19,11 @@ export function Head() {
19
20 function MenuPanel() {
21 const [showFilter, setShowFilter] = useState(state.listFilter > '')
22 - const [showSearch, setShowSearch] = useState(state.remoteSearch > '')
22 const [filter, setFilter] = useState(state.listFilter)
24 - const [search, setSearch] = useState(state.remoteSearch)
23 ;[state.listFilter] = useDebounce(filter, 300)
26 - ;[state.remoteSearch] = useDebounce(search, 1000)
24 if (!showFilter)
25 state.listFilter = ''
29 - if (!showSearch)
30 - state.remoteSearch = ''
26 + const { remoteSearch } = useSnapState()
27 return h('div', { id:'menu-panel' },
28 h('div', { id:'menu-bar' },
29 h(LoginButton),
@@ -42,12 +38,14 @@ function MenuPanel() {
38 h(MenuButton, {
39 icon: 'search',
40 label: 'Search',
45 - toggled: showSearch,
41 onClick() {
47 - setShowSearch(!showSearch)
42 + const res = prompt('Search for...')
43 + if (res !== null)
44 + state.remoteSearch = res
45 }
46 })
47 ),
48 + remoteSearch && h('div', {}, 'Searched for: ',remoteSearch),
49 showFilter && h('input',{
50 id: 'filter',
51 placeholder: 'Filter',
@@ -57,15 +55,6 @@ function MenuPanel() {
55 setFilter(ev.target.value)
56 }
57 }),
60 - showSearch && h('input',{
61 - id: 'search',
62 - placeholder: 'Search',
63 - value: search,
64 - autoFocus: true,
65 - onChange(ev) {
66 - setSearch(ev.target.value)
67 - }
68 - }),
58 )
59 }
60