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

8
app/config.imba

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

Loading…
Cancel
Save