import type { AnyVariables, OperationResult, OperationResultSource } from '@urql/core'; import { resolveErrorMessage, showPromiseToast, type ShowPromiseToastOptions } from '../toast'; type PartialRequired = Omit & Required>; export async function showUrqlOperation( r: OperationResultSource>, opts: Omit>, 'promise'> = {}, ): Promise, 'data'>> { type Out = PartialRequired, 'data'>; const promise = r.toPromise().then(async (v) => { if (v.error) { throw v.error; } return v; }); const out = await showPromiseToast>({ promise, delay: 300, success: () => null, error: (data: any) => resolveErrorMessage(data.error), ...opts, swallow: false, }); return out as Out; }