-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathobjectsStore.ts
More file actions
75 lines (71 loc) · 1.94 KB
/
Copy pathobjectsStore.ts
File metadata and controls
75 lines (71 loc) · 1.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import { create } from 'zustand';
export type ObjectsData = {
objectCars: any;
objectsCarsError: any;
objectsCarsIsLoading: boolean;
objectCats: any;
objectsCatsError: any;
objectsCatsIsLoading: boolean;
objectModel: any;
objectsModelError: any;
objectsModelIsLoading: boolean;
objectStatus: any;
objectsStatusError: any;
objectsStatusIsLoading: boolean;
aiModels: any;
aiModelsError: any;
aiModelsIsLoading: boolean;
tenants: any;
tenantsError: any;
tenantsIsLoading: boolean;
roles: any;
rolesError: any;
rolesIsLoading: boolean;
users: any[];
usersError: any;
usersIsLoading: boolean;
};
interface ObjectsStore {
objectsData: ObjectsData;
setObjectsData: (data: Partial<ObjectsData>) => void;
handleError: (error: any, source: string) => void;
}
const useObjectsStore = create<ObjectsStore>(set => ({
objectsData: {
objectCars: [],
objectsCarsError: null,
objectsCarsIsLoading: false,
objectCats: [],
objectsCatsError: null,
objectsCatsIsLoading: false,
objectModel: [],
objectsModelError: null,
objectsModelIsLoading: false,
objectStatus: [],
objectsStatusError: null,
objectsStatusIsLoading: false,
aiModels: [],
aiModelsError: null,
aiModelsIsLoading: false,
tenants: [],
tenantsError: null,
tenantsIsLoading: false,
roles: [],
rolesError: null,
rolesIsLoading: false,
users: [],
usersError: null,
usersIsLoading: false
},
setObjectsData: (data: Partial<ObjectsData>) =>
set((state) => ({
objectsData: {
...state.objectsData,
...data
}
})),
handleError: (error: any, source: string) => {
console.error(`Error in ${source}:`, error);
},
}));
export default useObjectsStore;