From e253feba588a88fc3a60731607a565cc4fb134ed Mon Sep 17 00:00:00 2001 From: faisolavolut Date: Fri, 14 Feb 2025 11:34:12 +0700 Subject: [PATCH] feat: add afterLoad callback to Form and FormBetter components for enhanced data handling --- components/form/Form.tsx | 23 +++++++---------------- components/form/FormBetter.tsx | 2 ++ 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/components/form/Form.tsx b/components/form/Form.tsx index 5d28f0f..eb2c9aa 100644 --- a/components/form/Form.tsx +++ b/components/form/Form.tsx @@ -27,6 +27,7 @@ export const Form: React.FC = ({ mode, className, onInit, + afterLoad, }) => { const local = useLocal({ ready: false, @@ -121,6 +122,9 @@ export const Form: React.FC = ({ local.ready = true; local.data = res; local.render(); + if (typeof afterLoad === "function") { + afterLoad(local); + } setTimeout(() => { toast.dismiss(); }, 100); @@ -183,25 +187,12 @@ export const Form: React.FC = ({ local.ready = true; local.data = res; local.render(); // Panggil render setelah data diperbarui - + if (typeof afterLoad === "function") { + afterLoad(local); + } setTimeout(() => { toast.dismiss(); }, 100); - // if (res instanceof Promise) { - // res.then((data) => { - // local.ready = true; - // local.data = data; - // local.render(); // Panggil render setelah data diperbarui - // toast.dismiss(); - // // toast.success("Data Loaded Successfully!"); - // }); - // } else { - // local.ready = true; - // local.data = res; - // local.render(); // Panggil render untuk memicu re-render - // toast.dismiss(); - // toast.success("Data Loaded Successfully!"); - // } }; run(); }, []); diff --git a/components/form/FormBetter.tsx b/components/form/FormBetter.tsx index 8d245a2..64488df 100644 --- a/components/form/FormBetter.tsx +++ b/components/form/FormBetter.tsx @@ -14,6 +14,7 @@ export const FormBetter: React.FC = ({ mode, className, onInit, + afterLoad, }) => { const [fm, setFM] = useState({ data: null as any, @@ -42,6 +43,7 @@ export const FormBetter: React.FC = ({ showResize, mode, className: cx(className, "top-0 left-0 w-full"), + afterLoad, onInit: (form: any) => { setFM(form);