import { useQuery } from '@tanstack/react-query'; import type { CallHttpRequestActionRequest, GetHttpRequestActionsResponse, HttpRequest, } from '@yaakapp/api'; import { invokeCmd } from '../lib/tauri'; export function useHttpRequestActions() { const httpRequestActions = useQuery({ queryKey: ['http_request_actions'], refetchOnWindowFocus: false, queryFn: async () => { const responses = (await invokeCmd( 'cmd_http_request_actions', )) as GetHttpRequestActionsResponse[]; return responses; }, }); return ( httpRequestActions.data?.flatMap((r) => r.actions.map((a) => ({ key: a.key, label: a.label, icon: a.icon, call: async (httpRequest: HttpRequest) => { const payload: CallHttpRequestActionRequest = { key: a.key, pluginRefId: r.pluginRefId, args: { httpRequest }, }; await invokeCmd('cmd_call_http_request_action', { req: payload }); }, })), ) ?? [] ); }