familyfriendlymikey
2 years ago
5 changed files with 194 additions and 209 deletions
@ -1,108 +1,95 @@ |
|||||
tag app-bang |
tag app-bang |
||||
|
|
||||
def unset_active_bang |
get tips |
||||
state.active_bang = no |
let tips = [] |
||||
api.sort_links! |
|
||||
|
tips.push <> |
||||
get bang |
<.tip |
||||
state.active_bang or config.data.default_bang |
@click=api.handle_bang |
||||
|
@hotkey('return').capture.if(!state.loading)=api.handle_bang |
||||
get encoded_bang_query |
> |
||||
"{bang.url}{window.encodeURIComponent(state.query)}" |
<.tip-hotkey> "Return" |
||||
|
<.tip-content> "Search" |
||||
def handle_bang |
|
||||
await api.increment_link_frequency bang |
tips.push <> |
||||
window.location.href = encoded_bang_query |
<.tip |
||||
|
@click=api.handle_add_link |
||||
|
@hotkey('shift+return').capture.if(!state.loading)=api.handle_add_link |
||||
|
> |
||||
|
<.tip-hotkey> "Shift + Return" |
||||
|
<.tip-content.ellipsis> |
||||
|
<span[ws:pre]> "Create Link " |
||||
|
let sq = state.query.trim!.split /\s+/ |
||||
|
if sq.length >= 2 |
||||
|
let url = sq.pop! |
||||
|
<span> '"' |
||||
|
<span> sq.join " " |
||||
|
<span[c:blue3 ws:pre]> " {url}" |
||||
|
<span> '"' |
||||
|
else |
||||
|
<span> "\"{sq.join " "}\"" |
||||
|
|
||||
|
tips.push <> |
||||
|
if state.active_bang |
||||
|
<.tip |
||||
|
@click=api.unset_active_bang |
||||
|
@hotkey('esc').capture.if(!state.loading)=unset_active_bang |
||||
|
> |
||||
|
<.tip-hotkey> "Esc" |
||||
|
<.tip-content> "Back" |
||||
|
else |
||||
|
<.tip.noclick> |
||||
|
<.tip-hotkey> "Paste (If Input Empty)" |
||||
|
<.tip-content> "Instant Search" |
||||
|
|
||||
|
tips.push <> |
||||
|
<.tip |
||||
|
@click.if(!state.loading)=api.toggle_effective_names |
||||
|
@hotkey('tab').capture.if(!state.loading)=api.toggle_effective_names |
||||
|
> |
||||
|
<.tip-hotkey> "Tab" |
||||
|
<.tip-content> "Toggle Effective Names" |
||||
|
|
||||
|
tips.push <> |
||||
|
<.tip @click.if(!loading)=api.handle_cut> |
||||
|
if api.math_result |
||||
|
<.tip-hotkey> "Cut (Math, If No Selection)" |
||||
|
<.tip-content> "Cut Math Result" |
||||
|
else |
||||
|
<.tip-hotkey> "Cut (If No Selection)" |
||||
|
<.tip-content> "Cut All Text" |
||||
|
|
||||
|
if state.active_bang |
||||
|
tips.push <> |
||||
|
<.tip.noclick> |
||||
|
<.tip-hotkey> "Paste (If Input Empty)" |
||||
|
<.tip-content> "Instant Search" |
||||
|
|
||||
|
tips |
||||
|
|
||||
def render |
def render |
||||
|
|
||||
<self> |
<self> |
||||
css w:100% d:flex fld:column gap:15px |
css w:100% d:flex fld:column gap:15px |
||||
|
|
||||
<app-tips> |
<app-tips$tips tips=tips> |
||||
|
|
||||
<.tip-row> |
|
||||
|
|
||||
<.tip |
|
||||
@click=handle_bang |
|
||||
@hotkey('return').capture.if(!state.loading)=handle_bang |
|
||||
> |
|
||||
<.tip-hotkey> "Return" |
|
||||
<.tip-content> "Search" |
|
||||
|
|
||||
<.tip |
|
||||
@click=api.handle_add_link |
|
||||
@hotkey('shift+return').capture.if(!state.loading)=api.handle_add_link |
|
||||
> |
|
||||
<.tip-hotkey> "Shift + Return" |
|
||||
<.tip-content.ellipsis> |
|
||||
<span[ws:pre]> "Create Link " |
|
||||
let sq = state.query.trim!.split /\s+/ |
|
||||
if sq.length >= 2 |
|
||||
let url = sq.pop! |
|
||||
<span> '"' |
|
||||
<span> sq.join " " |
|
||||
<span[c:blue3 ws:pre]> " {url}" |
|
||||
<span> '"' |
|
||||
else |
|
||||
<span> "\"{sq.join " "}\"" |
|
||||
|
|
||||
if state.active_bang |
|
||||
<.tip |
|
||||
@click=unset_active_bang |
|
||||
@hotkey('esc').capture.if(!state.loading)=unset_active_bang |
|
||||
> |
|
||||
<.tip-hotkey> "Esc" |
|
||||
<.tip-content> "Back" |
|
||||
else |
|
||||
<.tip.noclick> |
|
||||
<.tip-hotkey> "Paste (If Input Empty)" |
|
||||
<.tip-content> "Instant Search" |
|
||||
|
|
||||
<app-tips-more$tips-more> |
|
||||
|
|
||||
<.tip-row> |
|
||||
|
|
||||
<.tip |
|
||||
@click.if(!state.loading)=api.toggle_effective_names |
|
||||
@hotkey('tab').capture.if(!state.loading)=api.toggle_effective_names |
|
||||
> |
|
||||
<.tip-hotkey> "Tab" |
|
||||
<.tip-content> "Toggle Effective Names" |
|
||||
|
|
||||
<.tip |
|
||||
@click.if(!loading)=api.handle_cut |
|
||||
> |
|
||||
if math_result |
|
||||
<.tip-hotkey> "Cut (Math, If No Selection)" |
|
||||
<.tip-content> "Cut Math Result" |
|
||||
else |
|
||||
<.tip-hotkey> "Cut (If No Selection)" |
|
||||
<.tip-content> "Cut All Text" |
|
||||
|
|
||||
if state.active_bang |
|
||||
<.tip.noclick> |
|
||||
<.tip-hotkey> "Paste (If Input Empty)" |
|
||||
<.tip-content> "Instant Search" |
|
||||
else |
|
||||
<.tip.placeholder> |
|
||||
|
|
||||
unless $tips-more.active |
unless $tips.show_more |
||||
<.bang.selected@click=handle_bang> |
<.bang.selected@click=api.handle_bang> |
||||
css d:flex fld:row jc:space-between ai:center |
css d:flex fld:row jc:space-between ai:center |
||||
px:16px py:11px rd:5px cursor:pointer c:#FAD4AB |
px:16px py:11px rd:5px cursor:pointer c:#FAD4AB |
||||
|
|
||||
<.link-left> |
<.link-left> |
||||
css d:flex fl:1 |
css d:flex fl:1 |
||||
|
|
||||
<img.link-icon src=bang.icon> |
<img.link-icon src=api.bang.icon> |
||||
css w:20px h:20px mr:10px rd:3px |
css w:20px h:20px mr:10px rd:3px |
||||
|
|
||||
<.display-name> encoded_bang_query |
<.display-name> api.encoded_bang_query |
||||
css fs:20px word-break:break-all |
css fs:20px word-break:break-all |
||||
|
|
||||
<.link-right> |
<.link-right> |
||||
css d:flex fld:row jc:space-between ai:center |
css d:flex fld:row jc:space-between ai:center |
||||
|
|
||||
<.frequency> bang.frequency |
<.frequency> api.bang.frequency |
||||
css fs:15px ml:7px |
css fs:15px ml:7px |
||||
|
Loading…
Reference in new issue