import { ICON_SERVICE_URL } from '../../constants'; import { fetchWithCache } from '../../utils'; import { loadImageBase64Resource } from './image'; import { loadRemoteResource } from './remote'; import { loadSVGResource } from './svg'; const queryIcon = async (query: string): Promise => { try { const params = new URLSearchParams({ text: query, topK: '1' }); const url = `${ICON_SERVICE_URL}?${params.toString()}`; const response = await fetchWithCache(url); if (!response.ok) return null; const result = await response.json(); if (!result?.success || !Array.isArray(result.data)) return null; return (result.data[0] as string) || null; } catch (error) { console.error(`Failed to query icon for "${query}":`, error); return null; } }; function isDataURI(resource: string): boolean { return resource.startsWith('data:'); } function looksLikeSVG(resource: string): boolean { const str = resource.trim(); return str.startsWith('= 0 ? result.slice(commaIndex + 1) : result; return loadSVGResource(svgText); } return loadImageBase64Resource(result); } return loadRemoteResource(result, format); }