BlueSky & more on desktop lazurite.stormlightlabs.org/
tauri rust typescript bluesky appview atproto solid
at main 21 lines 600 B view raw
1import type { ActorSuggestion } from "$/lib/types"; 2import { invoke } from "@tauri-apps/api/core"; 3 4const ACTOR_TYPEAHEAD_MIN_QUERY_LENGTH = 2; 5 6function normalizeQuery(value: string) { 7 const trimmed = value.trim(); 8 if ( 9 trimmed.length < ACTOR_TYPEAHEAD_MIN_QUERY_LENGTH || trimmed.startsWith("did:") || /^https?:\/\//i.test(trimmed) 10 ) { 11 return ""; 12 } 13 14 return trimmed.replace(/^@/, ""); 15} 16 17function searchActor(query: string): Promise<ActorSuggestion[]> { 18 return invoke("search_login_suggestions", { query }); 19} 20 21export const TypeaheadController = { normalizeQuery, searchActor };