feat: add afterLoad callback to Form and FormBetter components for enhanced data handling

This commit is contained in:
faisolavolut 2025-02-14 11:34:12 +07:00
parent 8001a395a7
commit e253feba58
2 changed files with 9 additions and 16 deletions

View File

@ -27,6 +27,7 @@ export const Form: React.FC<any> = ({
mode, mode,
className, className,
onInit, onInit,
afterLoad,
}) => { }) => {
const local = useLocal({ const local = useLocal({
ready: false, ready: false,
@ -121,6 +122,9 @@ export const Form: React.FC<any> = ({
local.ready = true; local.ready = true;
local.data = res; local.data = res;
local.render(); local.render();
if (typeof afterLoad === "function") {
afterLoad(local);
}
setTimeout(() => { setTimeout(() => {
toast.dismiss(); toast.dismiss();
}, 100); }, 100);
@ -183,25 +187,12 @@ export const Form: React.FC<any> = ({
local.ready = true; local.ready = true;
local.data = res; local.data = res;
local.render(); // Panggil render setelah data diperbarui local.render(); // Panggil render setelah data diperbarui
if (typeof afterLoad === "function") {
afterLoad(local);
}
setTimeout(() => { setTimeout(() => {
toast.dismiss(); toast.dismiss();
}, 100); }, 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(); run();
}, []); }, []);

View File

@ -14,6 +14,7 @@ export const FormBetter: React.FC<any> = ({
mode, mode,
className, className,
onInit, onInit,
afterLoad,
}) => { }) => {
const [fm, setFM] = useState<any>({ const [fm, setFM] = useState<any>({
data: null as any, data: null as any,
@ -42,6 +43,7 @@ export const FormBetter: React.FC<any> = ({
showResize, showResize,
mode, mode,
className: cx(className, "top-0 left-0 w-full"), className: cx(className, "top-0 left-0 w-full"),
afterLoad,
onInit: (form: any) => { onInit: (form: any) => {
setFM(form); setFM(form);