familyfriendlymikey
2 years ago
5 changed files with 194 additions and 209 deletions
@ -1,108 +1,95 @@ |
|||
tag app-bang |
|||
|
|||
def unset_active_bang |
|||
state.active_bang = no |
|||
api.sort_links! |
|||
|
|||
get bang |
|||
state.active_bang or config.data.default_bang |
|||
|
|||
get encoded_bang_query |
|||
"{bang.url}{window.encodeURIComponent(state.query)}" |
|||
|
|||
def handle_bang |
|||
await api.increment_link_frequency bang |
|||
window.location.href = encoded_bang_query |
|||
get tips |
|||
let tips = [] |
|||
|
|||
tips.push <> |
|||
<.tip |
|||
@click=api.handle_bang |
|||
@hotkey('return').capture.if(!state.loading)=api.handle_bang |
|||
> |
|||
<.tip-hotkey> "Return" |
|||
<.tip-content> "Search" |
|||
|
|||
tips.push <> |
|||
<.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 |
|||
|
|||
<self> |
|||
css w:100% d:flex fld:column gap:15px |
|||
|
|||
<app-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> |
|||
<app-tips$tips tips=tips> |
|||
|
|||
unless $tips-more.active |
|||
<.bang.selected@click=handle_bang> |
|||
unless $tips.show_more |
|||
<.bang.selected@click=api.handle_bang> |
|||
css d:flex fld:row jc:space-between ai:center |
|||
px:16px py:11px rd:5px cursor:pointer c:#FAD4AB |
|||
|
|||
<.link-left> |
|||
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 |
|||
|
|||
<.display-name> encoded_bang_query |
|||
<.display-name> api.encoded_bang_query |
|||
css fs:20px word-break:break-all |
|||
|
|||
<.link-right> |
|||
css d:flex fld:row jc:space-between ai:center |
|||
|
|||
<.frequency> bang.frequency |
|||
<.frequency> api.bang.frequency |
|||
css fs:15px ml:7px |
|||
|
Loading…
Reference in new issue