1
1
import type { ISessionCase } from '@app/components/case/uinnlogget/types' ;
2
2
import { sessionEvent } from '@app/logging/logger' ;
3
3
import { SessionAction } from '@app/logging/types' ;
4
+ import type { DeepLinkParams } from '@app/redux-api/case/types' ;
4
5
import type { State } from '@app/redux/session/type' ;
5
6
import type { CaseReducer , PayloadAction } from '@reduxjs/toolkit' ;
6
7
import { createSessionCase , getSessionCaseKey } from './helpers' ;
@@ -54,7 +55,7 @@ const loadSessionCase: CaseReducer<State, PayloadAction<SessionCaseLoad>> = (sta
54
55
lastUpdated = 0 ;
55
56
sessionEvent ( SessionAction . LOAD ) ;
56
57
57
- const { innsendingsytelse, type, data } = payload ;
58
+ const { innsendingsytelse, type, deepLinkParams } = payload ;
58
59
59
60
const sessionKey = getSessionCaseKey ( type , innsendingsytelse ) ;
60
61
const savedCase = readSessionCase ( sessionKey ) ;
@@ -63,24 +64,20 @@ const loadSessionCase: CaseReducer<State, PayloadAction<SessionCaseLoad>> = (sta
63
64
return state ;
64
65
}
65
66
66
- return setState ( state , sessionKey , {
67
- ...savedCase ,
68
- internalSaksnummer : data . internalSaksnummer ,
69
- caseIsAtKA : data . caseIsAtKA === null ? savedCase . caseIsAtKA : data . caseIsAtKA ,
70
- } ) ;
67
+ return setState ( state , sessionKey , mergeCaseAndDeepLinkParams ( savedCase , deepLinkParams ) ) ;
71
68
} ;
72
69
73
70
// Read from session storage if it exists, otherwise save to session storage.
74
71
const loadOrCreateSessionCase : CaseReducer < State , PayloadAction < SessionCaseCreate > > = ( state , { payload } ) => {
75
72
lastUpdated = 0 ;
76
73
77
- const { innsendingsytelse, data , type } = payload ;
74
+ const { innsendingsytelse, deepLinkParams , type } = payload ;
78
75
79
76
const sessionKey = getSessionCaseKey ( type , innsendingsytelse ) ;
80
77
const savedCase = readSessionCase ( sessionKey ) ;
81
78
82
79
if ( savedCase === undefined ) {
83
- const newCase = createSessionCase ( type , data . innsendingsytelse , data . internalSaksnummer , data . caseIsAtKA ) ;
80
+ const newCase = createSessionCase ( { type, innsendingsytelse, deepLinkParams } ) ;
84
81
85
82
const key = saveSessionCase ( innsendingsytelse , newCase ) ;
86
83
@@ -93,11 +90,10 @@ const loadOrCreateSessionCase: CaseReducer<State, PayloadAction<SessionCaseCreat
93
90
sessionEvent ( SessionAction . LOAD ) ;
94
91
}
95
92
96
- return setState ( state , sessionKey , {
97
- ...savedCase ,
98
- internalSaksnummer : data . internalSaksnummer ,
99
- caseIsAtKA : data . caseIsAtKA === null ? savedCase . caseIsAtKA : data . caseIsAtKA ,
100
- } ) ;
93
+ const newCase = mergeCaseAndDeepLinkParams ( savedCase , deepLinkParams ) ;
94
+
95
+ setState ( state , sessionKey , newCase ) ;
96
+ saveSessionCase ( innsendingsytelse , newCase ) ;
101
97
} ;
102
98
103
99
const setState = ( state : State , key : string , data : ISessionCase ) => {
@@ -124,6 +120,14 @@ const deleteSessionCase: CaseReducer<State, PayloadAction<SessionCaseRemove>> =
124
120
return state ;
125
121
} ;
126
122
123
+ const mergeCaseAndDeepLinkParams = ( oldCase : ISessionCase , deepLinkParams : DeepLinkParams ) : ISessionCase => ( {
124
+ ...oldCase ,
125
+ internalSaksnummer : deepLinkParams . internalSaksnummer ?? oldCase . internalSaksnummer ,
126
+ sakSakstype : deepLinkParams . sakSakstype ?? oldCase . sakSakstype ,
127
+ sakFagsaksystem : deepLinkParams . sakFagsaksystem ?? oldCase . sakFagsaksystem ,
128
+ caseIsAtKA : deepLinkParams . caseIsAtKA ?? oldCase . caseIsAtKA ,
129
+ } ) ;
130
+
127
131
export const caseReducers = {
128
132
setSessionCase,
129
133
updateSessionCase,
0 commit comments