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