UNPKG

next-form-action

Version:

A TypeScript library for handling server actions in Next.js with type-safe error handling and callbacks

32 lines 997 B
"use client"; import { useRouter } from "next/navigation"; import { useState, useTransition } from "react"; export function useAction(action, options = {}) { const router = useRouter(); const [isPending, startTransition] = useTransition(); const [state, setState] = useState(); const dispatch = (data) => { startTransition(async () => { const result = await action(data); setState(result); if (result.success === true && options.onSuccess) { await options.onSuccess(result); } else if (result.success === false && options.onError) { await options.onError(result); } if (result.redirect) { router.push(result.redirect); } if (result.refresh) { router.refresh(); } }); }; return { dispatch, state, isPending, }; } //# sourceMappingURL=index.js.map