import { request, unwrapApiBody, type ApiResponse } from '~/utils/http/factory' import { getApiErrorMessage } from '~/utils/http/error-message' type RequestOptions = NonNullable[1]> export type ClientFetchOptions = RequestOptions & { notify?: boolean } export function useClientApi() { const toast = useToast() async function fetchData(url: string, options?: ClientFetchOptions): Promise { const { notify = true, ...rest } = options ?? {} try { const res = await request>(url, rest) return unwrapApiBody(res) } catch (e: unknown) { if (import.meta.client && notify) { toast.add({ title: getApiErrorMessage(e), color: 'error' }) } throw e } } return { fetchData, getApiErrorMessage } }