familyfriendlymikey
2 years ago
9 changed files with 143 additions and 98 deletions
@ -1,37 +1,106 @@ |
|||
tag app-edit < app-prompt |
|||
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! |
|||
|
|||
def handle_click_set_default_bang |
|||
if editing_link.is_bang isnt true |
|||
if link.is_bang isnt true |
|||
return err "setting default bang", "Link is not a bang." |
|||
config.default_bang = editing_link |
|||
config.default_bang = link |
|||
save_config! |
|||
editing_link = no |
|||
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! |
|||
|
|||
def render |
|||
|
|||
<self> |
|||
css d:flex fld:column gap:20px w:100% |
|||
|
|||
<.tips> |
|||
|
|||
<.tip |
|||
@click=(active = no) |
|||
@click=close |
|||
@hotkey('esc').capture.if(!state.loading)=close |
|||
> |
|||
<.tip-hotkey> "Esc" |
|||
<.tip-content> "Cancel Edits" |
|||
if editing_link.is_bang |
|||
<.tip-content> "Cancel" |
|||
|
|||
<.tip |
|||
@click=handle_click_set_default_bang |
|||
@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 |
|||
<.tip-hotkey> "Click" |
|||
<.tip-content> "Set Default Bang" |
|||
|
|||
<.tip |
|||
@click=handle_shift_return |
|||
@click=save |
|||
@hotkey('shift+return').capture.if(!state.loading)=save |
|||
> |
|||
<.tip-hotkey> "Shift + Return" |
|||
<.tip-content[of:hidden text-overflow:ellipsis white-space:nowrap]> |
|||
"Update Link" |
|||
<.tip |
|||
@click=handle_shift_backspace |
|||
css fl:2 |
|||
<.tip-hotkey> "Return" |
|||
<.tip-content> "Update Link" |
|||
|
|||
<.tip.noclick |
|||
@hotkey('tab').capture.if(!state.loading)=cycle_focus |
|||
> |
|||
<.tip-hotkey> "Shift + Backspace" |
|||
<.tip-content> "Delete Link" |
|||
<.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> |
|||
|
Loading…
Reference in new issue