Add update functionality to useLoading

This commit is contained in:
2024-12-01 22:15:44 +01:00
parent 27581d0057
commit b625a5bcc1

View File

@@ -1,4 +1,4 @@
import { useStore } from "@/hooks/useStore"; import { mapProp, Updater, useStore } from "@/hooks/useStore";
import { Treaty } from "@elysiajs/eden"; import { Treaty } from "@elysiajs/eden";
import { ELYSIA_FORM_DATA } from "elysia"; import { ELYSIA_FORM_DATA } from "elysia";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
@@ -15,6 +15,7 @@ export type LoadingResult<R extends Record<number, unknown>> =
isLoading: false, isLoading: false,
data: FormDataFix<R[200]>, data: FormDataFix<R[200]>,
error: null, error: null,
setData: Updater<FormDataFix<R[200]>>,
} | { } | {
isLoading: false, isLoading: false,
data: null, data: null,
@@ -46,7 +47,12 @@ export function useLoading<R extends Record<number, unknown>>(fn: () => Promise<
} }
} }
setResult({ isLoading: false, error, data } as LoadingResult<R>); setResult({
isLoading: false,
error,
data,
setData: (action) => (setResult as any)(mapProp("data", action)),
} as LoadingResult<R>);
}); });
return () => { cancelled = true; }; return () => { cancelled = true; };