From 3e735b3db53215f8326b3a4d6bdfebed61946f0a Mon Sep 17 00:00:00 2001 From: familyfriendlymikey Date: Fri, 2 Sep 2022 00:45:43 -0400 Subject: [PATCH] refactor --- app/api.imba | 3 ++ app/components/app-link.imba | 2 +- app/components/app-links.imba | 68 +++++++++-------------------------- app/state.imba | 1 + 4 files changed, 22 insertions(+), 52 deletions(-) diff --git a/app/api.imba b/app/api.imba index 85116f1..9d415ac 100644 --- a/app/api.imba +++ b/app/api.imba @@ -175,3 +175,6 @@ export default new class api def decrement_link_selection_index set_link_selection_index Math.max(0, state.link_selection_index - 1) + def navigate link + await increment_link_frequency link + window.location.href = link.url diff --git a/app/components/app-link.imba b/app/components/app-link.imba index 7bd36ce..30906d4 100644 --- a/app/components/app-link.imba +++ b/app/components/app-link.imba @@ -3,7 +3,7 @@ tag app-link def render css d:flex fld:row jc:space-between ai:center diff --git a/app/components/app-links.imba b/app/components/app-links.imba index b30547d..78ab8de 100644 --- a/app/components/app-links.imba +++ b/app/components/app-links.imba @@ -2,8 +2,6 @@ import { evaluate as eval_math } from 'mathjs' tag app-links - active_bang = no - def mount p document $links-input.focus! @@ -53,26 +51,19 @@ tag app-links api.set_link_selection_index 0 api.sort_links! - def handle_click_link link - navigate link - - def navigate link - await increment_link_frequency link - window.location.href = link.url - - def handle_return - if active_bang or state.sorted_links.length < 1 + def handle_click_link + if state.active_bang or state.sorted_links.length < 1 return handle_bang! let link = api.selected_link if link.is_bang state.query = '' - active_bang = link + state.active_bang = link else - navigate link + api.navigate link def handle_del if state.query.length < 1 - active_bang = no + state.active_bang = no api.sort_links! def handle_click_delete link @@ -142,7 +133,6 @@ tag app-links @keydown.del.if(!state.loading)=handle_del @input.if(!state.loading)=handle_input @paste.if(!state.loading)=handle_paste - @blur=this.focus @cut=handle_cut disabled=state.loading > @@ -157,49 +147,25 @@ tag app-links if config.data.enable_tips - if active_bang + if state.active_bang <.tips> - <.tip@click=handle_search> - <.tip-hotkey> "Return" - <.tip-content> "Search With Query" - - <.tip@click=exit_bang> - <.tip-hotkey> "Esc" - <.tip-content> "Exit Bang" - - <.tip[jc:center ta:center fl:2 px:15px] - @click=handle_shift_return - > - <.tip-hotkey> "Shift + Return" - <.tip-content[of:hidden text-overflow:ellipsis white-space:nowrap]> - "Add New Link" - " " - let sq = state.query.trim!.split /\s+/ - if sq.length >= 2 - let url = sq.pop! - '"' - sq.join ' ' - ' ' - url - '"' - else - '"' - sq.join ' ' - '"' - - <.tip[jc:end ta:right fl:1] - @click=handle_shift_backspace + <.tip + @click=(state.active_bang = no) + @hotkey('esc').capture.if(!state.loading)=(state.active_bang = no) > - <.tip-hotkey> "Tab" - <.tip-content> "Select Next History Item" + <.tip-hotkey> "Esc" + <.tip-content> "Back" else <.tips> - <.tip @click=handle_return> + <.tip + @click=handle_click_link + @hotkey('return').force.if(!loading)=handle_click_link + > <.tip-hotkey> "Return" <.tip-content> "Navigate To Link" @@ -225,8 +191,8 @@ tag app-links css d:flex fld:column jc:flex-start fl:1 w:100% ofy:auto pt:15px - if not viewing_community_links and (active_bang or state.sorted_links.length < 1) - + if not viewing_community_links and (state.active_bang or state.sorted_links.length < 1) + else for link, index in state.sorted_links diff --git a/app/state.imba b/app/state.imba index f73717b..bff15e0 100644 --- a/app/state.imba +++ b/app/state.imba @@ -4,4 +4,5 @@ export default { sorted_links: [] loading: no link_selection_index: 0 + active_bang: no }