diff --git a/app/components/app-edit.imba b/app/components/app-edit.imba index b4fdbbe..a966e85 100644 --- a/app/components/app-edit.imba +++ b/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 css d:flex fld:column gap:20px w:100% +
+ + <.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 + + - <.inputs> - css d:flex fld:column gap:20px + <.tip-row> -
- + <.tip + @click=close + @hotkey('esc').capture.if(!state.loading)=close + > + <.tip-hotkey> "Esc" + <.tip-content> "Cancel" -
- + <.tip.placeholder> -
- + <.tip.placeholder> diff --git a/app/config.imba b/app/config.imba index effc0b8..5e1097c 100644 --- a/app/config.imba +++ b/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