import type { ActionItem, AppSearchResult } from './types' import type { App } from '@/types/app' import { fetchAppList } from '@/service/apps' import AppIcon from '../../base/app-icon' import { AppTypeIcon } from '../../app/type-selector' import { getRedirectionPath } from '@/utils/app-redirection' const parser = (apps: App[]): AppSearchResult[] => { return apps.map(app => ({ id: app.id, title: app.name, description: app.description, type: 'app' as const, path: getRedirectionPath(true, { id: app.id, mode: app.mode, }), icon: (
), data: app, })) } export const appAction: ActionItem = { key: '@app', shortcut: '@app', title: 'Search Applications', description: 'Search and navigate to your applications', // action, search: async (_, searchTerm = '', _locale) => { try { const response = await fetchAppList({ url: 'apps', params: { page: 1, name: searchTerm, }, }) const apps = response?.data || [] return parser(apps) } catch (error) { console.warn('App search failed:', error) return [] } }, }