From b625a5bcc1997458d27e1ddda2698edb99ba1607 Mon Sep 17 00:00:00 2001 From: Szymon Nowakowski Date: Sun, 1 Dec 2024 22:15:44 +0100 Subject: [PATCH] Add update functionality to useLoading --- packages/frontend/src/hooks/useLoading.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/frontend/src/hooks/useLoading.ts b/packages/frontend/src/hooks/useLoading.ts index 795518f..b6d9e99 100644 --- a/packages/frontend/src/hooks/useLoading.ts +++ b/packages/frontend/src/hooks/useLoading.ts @@ -1,4 +1,4 @@ -import { useStore } from "@/hooks/useStore"; +import { mapProp, Updater, useStore } from "@/hooks/useStore"; import { Treaty } from "@elysiajs/eden"; import { ELYSIA_FORM_DATA } from "elysia"; import { useEffect, useState } from "react"; @@ -15,6 +15,7 @@ export type LoadingResult> = isLoading: false, data: FormDataFix, error: null, + setData: Updater>, } | { isLoading: false, data: null, @@ -46,7 +47,12 @@ export function useLoading>(fn: () => Promise< } } - setResult({ isLoading: false, error, data } as LoadingResult); + setResult({ + isLoading: false, + error, + data, + setData: (action) => (setResult as any)(mapProp("data", action)), + } as LoadingResult); }); return () => { cancelled = true; };