1 | import { useEffect, useState } from "react";
|
2 | export 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 |