UNPKG

1.14 kBJavaScriptView Raw
1import { useEffect, useState } from "react";
2export default function useStatus(dataObject) {
3 const [isSaving, setIsSaving] = useState(false);
4 const [isDeleting, setIsDeleting] = useState(false);
5
6 function setSaving() {
7 setIsSaving(true);
8 }
9
10 function setNotSaving() {
11 setIsSaving(false);
12 }
13
14 function setDeleting() {
15 setIsDeleting(true);
16 }
17
18 function setNotDeleting() {
19 setIsDeleting(false);
20 }
21
22 useEffect(() => {
23 dataObject.attachEvent("onBeforeSave", setSaving);
24 dataObject.attachEvent("onAfterSave", setNotSaving);
25 dataObject.attachEvent("onSaveFailed", setNotSaving);
26 dataObject.attachEvent("onRecordDeleting", setDeleting);
27 dataObject.attachEvent("onRecordDeleted", setNotDeleting);
28 return () => {
29 dataObject.detachEvent("onBeforeSave", setSaving);
30 dataObject.detachEvent("onAfterSave", setNotSaving);
31 dataObject.detachEvent("onSaveFailed", setNotSaving);
32 dataObject.detachEvent("onRecordDeleting", setDeleting);
33 dataObject.detachEvent("onRecordDeleted", setNotDeleting);
34 };
35 }, [dataObject]);
36 return {
37 isDeleting,
38 isSaving
39 };
40}
\No newline at end of file