@@ -25,53 +25,13 @@ const logger = (config) => (set, get, api) =>
2525export const useFredyState = create (
2626 logger (
2727 ( set ) => {
28- // Internal setters
29- const reducers = {
30- notificationAdapter : {
31- setAdapter : ( payload ) => set ( ( ) => ( { notificationAdapter : Object . freeze ( [ ...payload ] ) } ) ) ,
32- } ,
33- generalSettings : {
34- setGeneralSettings : ( payload ) =>
35- set ( ( state ) => ( { generalSettings : { ...state . generalSettings , settings : payload } } ) ) ,
36- } ,
37- demoMode : {
38- setDemoMode : ( payload ) =>
39- set ( ( state ) => ( {
40- demoMode : {
41- ...state . demoMode ,
42- demoMode : payload . demoMode ,
43- } ,
44- } ) ) ,
45- } ,
46- provider : {
47- setProvider : ( payload ) => set ( ( ) => ( { provider : Object . freeze ( [ ...payload ] ) } ) ) ,
48- } ,
49- jobs : {
50- setJobs : ( payload ) => set ( ( state ) => ( { jobs : { ...state . jobs , jobs : Object . freeze ( payload ) } } ) ) ,
51- setProcessingTimes : ( payload ) =>
52- set ( ( state ) => ( { jobs : { ...state . jobs , processingTimes : Object . freeze ( payload ) } } ) ) ,
53- setJobInsights : ( payload , jobId ) =>
54- set ( ( state ) => ( {
55- jobs : {
56- ...state . jobs ,
57- insights : { ...state . jobs . insights , [ jobId ] : Object . freeze ( payload ) } ,
58- } ,
59- } ) ) ,
60- } ,
61- user : {
62- setUsers : ( payload ) => set ( ( state ) => ( { user : { ...state . user , users : payload } } ) ) ,
63- setCurrentUser : ( payload ) =>
64- set ( ( state ) => ( { user : { ...state . user , currentUser : Object . freeze ( payload ) } } ) ) ,
65- } ,
66- } ;
67-
68- // Async actions
28+ // Async actions that directly set state (no separate reducer concept)
6929 const effects = {
7030 notificationAdapter : {
7131 async getAdapter ( ) {
7232 try {
7333 const response = await xhrGet ( '/api/jobs/notificationAdapter' ) ;
74- reducers . notificationAdapter . setAdapter ( response . json ) ;
34+ set ( ( ) => ( { notificationAdapter : Object . freeze ( [ ... response . json ] ) } ) ) ;
7535 } catch ( Exception ) {
7636 console . error ( `Error while trying to get resource for api/jobs/notificationAdapter. Error:` , Exception ) ;
7737 }
@@ -81,7 +41,7 @@ export const useFredyState = create(
8141 async getGeneralSettings ( ) {
8242 try {
8343 const response = await xhrGet ( '/api/admin/generalSettings' ) ;
84- reducers . generalSettings . setGeneralSettings ( response . json ) ;
44+ set ( ( state ) => ( { generalSettings : { ... state . generalSettings , settings : response . json } } ) ) ;
8545 } catch ( Exception ) {
8646 console . error ( 'Error while trying to get resource for api/admin/generalSettings. Error:' , Exception ) ;
8747 }
@@ -91,7 +51,7 @@ export const useFredyState = create(
9151 async getProvider ( ) {
9252 try {
9353 const response = await xhrGet ( '/api/jobs/provider' ) ;
94- reducers . provider . setProvider ( response . json ) ;
54+ set ( ( ) => ( { provider : Object . freeze ( [ ... response . json ] ) } ) ) ;
9555 } catch ( Exception ) {
9656 console . error ( `Error while trying to get resource for api/jobs/provider. Error:` , Exception ) ;
9757 }
@@ -101,23 +61,28 @@ export const useFredyState = create(
10161 async getJobs ( ) {
10262 try {
10363 const response = await xhrGet ( '/api/jobs' ) ;
104- reducers . jobs . setJobs ( response . json ) ;
64+ set ( ( state ) => ( { jobs : { ... state . jobs , jobs : Object . freeze ( response . json ) } } ) ) ;
10565 } catch ( Exception ) {
10666 console . error ( `Error while trying to get resource for api/jobs. Error:` , Exception ) ;
10767 }
10868 } ,
10969 async getProcessingTimes ( ) {
11070 try {
11171 const response = await xhrGet ( '/api/jobs/processingTimes' ) ;
112- reducers . jobs . setProcessingTimes ( response . json ) ;
72+ set ( ( state ) => ( { jobs : { ... state . jobs , processingTimes : Object . freeze ( response . json ) } } ) ) ;
11373 } catch ( Exception ) {
11474 console . error ( `Error while trying to get resource for api/processingTimes. Error:` , Exception ) ;
11575 }
11676 } ,
11777 async getInsightDataForJob ( jobId ) {
11878 try {
11979 const response = await xhrGet ( `/api/jobs/insights/${ jobId } ` ) ;
120- reducers . jobs . setJobInsights ( response . json , jobId ) ;
80+ set ( ( state ) => ( {
81+ jobs : {
82+ ...state . jobs ,
83+ insights : { ...state . jobs . insights , [ jobId ] : Object . freeze ( response . json ) } ,
84+ } ,
85+ } ) ) ;
12186 } catch ( Exception ) {
12287 console . error ( `Error while trying to get resource for api/jobs/insights. Error:` , Exception ) ;
12388 }
@@ -127,15 +92,15 @@ export const useFredyState = create(
12792 async getUsers ( ) {
12893 try {
12994 const response = await xhrGet ( '/api/admin/users' ) ;
130- reducers . user . setUsers ( response . json ) ;
95+ set ( ( state ) => ( { user : { ... state . user , users : response . json } } ) ) ;
13196 } catch ( Exception ) {
13297 console . error ( 'Error while trying to get resource for api/admin/users. Error:' , Exception ) ;
13398 }
13499 } ,
135100 async getCurrentUser ( ) {
136101 try {
137102 const response = await xhrGet ( '/api/login/user' ) ;
138- reducers . user . setCurrentUser ( response . json ) ;
103+ set ( ( state ) => ( { user : { ... state . user , currentUser : Object . freeze ( response . json ) } } ) ) ;
139104 } catch ( Exception ) {
140105 console . error ( 'Error while trying to get resource for api/login/user. Error:' , Exception ) ;
141106 }
@@ -145,7 +110,9 @@ export const useFredyState = create(
145110 async getDemoMode ( ) {
146111 try {
147112 const response = await xhrGet ( '/api/demo' ) ;
148- reducers . demoMode . setDemoMode ( response . json ) ;
113+ set ( ( state ) => ( {
114+ demoMode : { ...state . demoMode , demoMode : response . json . demoMode } ,
115+ } ) ) ;
149116 } catch ( Exception ) {
150117 console . error ( 'Error while trying to get resource for api/demo. Error:' , Exception ) ;
151118 }
0 commit comments