Browse Source

simplify edit page

main
familyfriendlymikey 2 years ago
parent
commit
88c76394d5
  1. 78
      app/components/app-edit.imba
  2. 8
      app/config.imba

78
app/components/app-edit.imba

@ -5,6 +5,7 @@ tag app-edit
def open data
link = data
new_link_text = value=api.construct_link_text(link)
active = yes
def close
@ -16,11 +17,7 @@ tag app-edit
imba.commit!
def handle_click_set_default_bang
unless link.is_bang
return err "setting default bang", "Link is not a bang."
config.data.default_bang = link
config.save!
api.sort_links!
config.set_default_bang link
close!
def handle_delete
@ -32,75 +29,62 @@ tag app-edit
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
api.update_link link, new_link_text
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%
<div>
<input$dn bind=new_link_text>
<app-tips>
<.tip-row>
<.tip
@click=close
@hotkey('esc').capture.if(!state.loading)=close
>
<.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
<.tip-content> "Set Default Bang"
<.tip
@click=save
@hotkey('shift+return').capture.if(!state.loading)=save
@hotkey('return').capture.if(!state.loading)=save
>
css fl:2
<.tip-hotkey> "Return"
<.tip-content> "Update Link"
<.tip.noclick
@hotkey('tab').capture.if(!state.loading)=cycle_focus
>
<.tip-hotkey> "Tab"
<.tip-content> "Next"
if link.is_bang
<.tip @click=handle_click_set_default_bang>
<.tip-hotkey> "Click"
<.tip-content> "Set Default Bang"
else
<.tip
@click=close
@hotkey('esc').capture.if(!state.loading)=close
>
<.tip-hotkey> "Esc"
<.tip-content> "Cancel"
if link.is_bang
<app-tips-more>
<.inputs>
css d:flex fld:column gap:20px
<.tip-row>
<div>
<input$dn bind=link.display_name>
<.tip
@click=close
@hotkey('esc').capture.if(!state.loading)=close
>
<.tip-hotkey> "Esc"
<.tip-content> "Cancel"
<div>
<input$n bind=link.name>
<.tip.placeholder>
<div>
<input$u bind=link.url>
<.tip.placeholder>

8
app/config.imba

@ -1,5 +1,7 @@
let p = console.log
import { err } from './utils'
export default new class config
def constructor
@ -23,8 +25,10 @@ export default new class config
p "config:", this.data
def set_default_bang bang
data.default_bang = bang
def set_default_bang link
unless link.is_bang
return err "setting default bang", "Link is not a bang."
data.default_bang = link
save!
def save

Loading…
Cancel
Save