familyfriendlymikey
2 years ago
8 changed files with 281 additions and 267 deletions
@ -0,0 +1,86 @@ |
|||
tag app-home |
|||
|
|||
def mount |
|||
$links-input.focus! |
|||
|
|||
def handle_paste e |
|||
return unless config.data.enable_search_on_paste |
|||
return if state.query.length > 0 |
|||
global.setTimeout(&, 0) do |
|||
return if api.math_result isnt no |
|||
bang ||= config.data.default_bang |
|||
handle_bang! |
|||
|
|||
def handle_click_copy s |
|||
try |
|||
await window.navigator.clipboard.writeText(s) |
|||
state.query = '' |
|||
api.sort_links! |
|||
|
|||
def handle_input |
|||
api.set_link_selection_index 0 |
|||
api.sort_links! |
|||
|
|||
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 = '' |
|||
state.active_bang = link |
|||
else |
|||
api.navigate link |
|||
|
|||
def handle_click_delete link |
|||
return unless window.confirm "Do you really want to delete {link..display_name}?" |
|||
handle_delete link |
|||
|
|||
def handle_click_pin link |
|||
api.pin_link link |
|||
|
|||
def handle_shift_backspace |
|||
return unless state.sorted_links.length > 0 |
|||
refs.edit.open api.selected_link |
|||
|
|||
def render |
|||
|
|||
<self> |
|||
css w:100% d:flex fld:column gap:10px ofy:hidden |
|||
|
|||
<.header> |
|||
css d:flex fld:row w:100% |
|||
css .side c:purple3/90 fs:15px d:flex ja:center w:30px cursor:pointer |
|||
css .side svg w:15px d:flex |
|||
css .left jc:left |
|||
css .right jc:right |
|||
|
|||
<.side.left@click=api.toggle_effective_names> |
|||
|
|||
if config.data.enable_effective_names |
|||
<svg src="../assets/eye.svg"> |
|||
|
|||
else |
|||
<svg src="../assets/eye-off.svg"> |
|||
|
|||
<input$links-input |
|||
bind=state.query |
|||
@input.if(!state.loading)=handle_input |
|||
@paste.if(!state.loading)=handle_paste |
|||
@cut=api.handle_cut |
|||
disabled=state.loading |
|||
> |
|||
|
|||
if (let m = api.math_result) isnt no |
|||
<.side.right@click=handle_click_copy(m)> |
|||
"= {Math.round(m * 100)/100}" |
|||
css c:blue3 fs:20px ml:10px w:unset |
|||
|
|||
else |
|||
<.side.right @click.if(!state.loading)=refs.settings.open> |
|||
<svg src="../assets/settings.svg"> |
|||
|
|||
if state.active_bang or state.sorted_links.length < 1 |
|||
<app-bang> |
|||
|
|||
else |
|||
<app-links> |
Loading…
Reference in new issue