You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
1.9 KiB

tag app-edit
get render? do mounted?
active = no
def open data
link = data
active = yes
def close
active = no
def mount
setTimeout(&, 40) do
$dn.focus!
imba.commit!
2 years ago
def handle_click_set_default_bang
if link.is_bang isnt true
2 years ago
return err "setting default bang", "Link is not a bang."
config.default_bang = link
2 years ago
save_config!
state.query = prior_query
prior_query = ''
sort_links!
def handle_delete
try
await api.delete_link link
close!
catch e
err "deleting link", e
def save
try
if /\s/.test link.name.trim!
throw "Link name may not contain spaces."
api.update_link link, api.construct_link_text link
close!
catch e
err "saving link", e
get new_link_text
"wip"
def cycle_focus
if document.activeElement is $dn
$n.focus!
elif document.activeElement is $n
$u.focus!
else
$dn.focus!
2 years ago
def render
2 years ago
<self>
css d:flex fld:column gap:20px w:100%
2 years ago
<.tips>
2 years ago
<.tip
@click=close
@hotkey('esc').capture.if(!state.loading)=close
2 years ago
>
<.tip-hotkey> "Esc"
<.tip-content> "Cancel"
<.tip
@click=handle_delete
@hotkey('shift+backspace').capture.if(!state.loading)=handle_delete
>
css fl:2
<.tip-hotkey> "Shift + Backspace"
<.tip-content> "Delete Link"
if link.is_bang
<.tip @click=handle_click_set_default_bang>
css fl:2
2 years ago
<.tip-hotkey> "Click"
<.tip-content> "Set Default Bang"
2 years ago
<.tip
@click=save
@hotkey('shift+return').capture.if(!state.loading)=save
2 years ago
>
css fl:2
<.tip-hotkey> "Return"
<.tip-content> "Update Link"
<.tip.noclick
@hotkey('tab').capture.if(!state.loading)=cycle_focus
2 years ago
>
<.tip-hotkey> "Tab"
<.tip-content> "Next"
<.inputs>
css d:flex fld:column gap:20px
<div>
<input$dn bind=link.display_name>
<div>
<input$n bind=link.name>
<div>
<input$u bind=link.url>