From 43a324e3f35690bb2ca66164898f5f5b7a5e8a91 Mon Sep 17 00:00:00 2001
From: Konrad Mohrfeldt <km@roko.li>
Date: Fri, 31 Jan 2025 02:07:27 +0100
Subject: [PATCH] feat: allow useCopy consumer to reset data

---
 src/form.ts | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/form.ts b/src/form.ts
index 76c5f52b..5807e831 100644
--- a/src/form.ts
+++ b/src/form.ts
@@ -293,9 +293,11 @@ export function useCopy<T>(state: MaybeRefOrGetter<T>, options: UseCopyOptions<T
   const _save = options?.save
 
   const value = (shallow ? shallowRef() : ref()) as Ref<T>
-  watchEffect(() => {
+  watchEffect(reset)
+
+  function reset() {
     value.value = _clone(toValue(state))
-  })
+  }
 
   function triggerSave() {
     const _value = value.value
@@ -308,7 +310,7 @@ export function useCopy<T>(state: MaybeRefOrGetter<T>, options: UseCopyOptions<T
     watchDebounced(value, triggerSave, { deep: true, debounce })
   }
 
-  return extendRef(value, { triggerSave }, { enumerable: true })
+  return extendRef(value, { triggerSave, reset }, { enumerable: true })
 }
 
 export function useAPIObjectFieldCopy<
-- 
GitLab