From 068c5df0e98885cc4728791124d0beb214bebcb9 Mon Sep 17 00:00:00 2001 From: Felix Lipski Date: Tue, 2 Jul 2024 10:15:28 +0200 Subject: [PATCH 1/2] mutate state in redux --- native/redux/documentScannerSlice.ts | 56 +++++++++++----------------- 1 file changed, 21 insertions(+), 35 deletions(-) diff --git a/native/redux/documentScannerSlice.ts b/native/redux/documentScannerSlice.ts index e6351ec2..8b3e3e00 100644 --- a/native/redux/documentScannerSlice.ts +++ b/native/redux/documentScannerSlice.ts @@ -38,46 +38,36 @@ export const documentScannerSlice = createSlice({ name: "documentScanner", initialState, reducers: { - SWITCH_PREVIEW: (state) => ({ - ...state, - isPreviewShown: !state.isPreviewShown, - }), + SWITCH_PREVIEW: (state) => { + state.isPreviewShown = !state.isPreviewShown; + }, PHOTO_TAKE: ( state, { payload }: PayloadAction<{ photo: DocumentScannerSlice["photo"] }> - ) => ({ - ...state, - photo: payload.photo || null, - }), - PHOTO_RETAKE: (state) => ({ - ...state, - photo: null, - isPreviewShown: false, - }), + ) => ({ ...state, photo: payload.photo || null }), + PHOTO_RETAKE: (state) => { + state.photo = null; + state.isPreviewShown = false; + }, PHOTO_START: (state) => ({ ...state, isTakingPhoto: true }), PHOTO_END: (state) => ({ ...state, isTakingPhoto: false }), - PHOTO_RESET_DATA: (state) => ({ - ...state, - photo: null, - isPreviewShown: false, - isTakingPhoto: false, - }), + PHOTO_RESET_DATA: (state) => { + state.photo = null; + state.isPreviewShown = false; + state.isTakingPhoto = false; + }, SET_PROCESSED_INVOICE: ( state, - { - payload, - }: PayloadAction<{ + action: PayloadAction<{ processedInvoice: DocumentScannerSlice["processedInvoice"]; }> - ) => ({ ...state, processedInvoice: payload.processedInvoice }), + ) => ({ ...state, processedInvoice: action.payload.processedInvoice }), SET_NEW_MATCHED: ( state, - { - payload, - }: PayloadAction<{ + action: PayloadAction<{ newMatched: DocumentScannerSlice["newMatched"]; }> - ) => ({ ...state, newMatched: payload.newMatched }), + ) => ({ ...state, newMatched: action.payload.newMatched }), SET_PROCESSED_SALES_RAPORT: ( state, { @@ -86,14 +76,10 @@ export const documentScannerSlice = createSlice({ processedSalesRaport: DocumentScannerSlice["processedSalesRaport"]; }> ) => ({ ...state, processedSalesRaport: payload.processedSalesRaport }), - RESET_PROCESSED_INVOICE: (state) => ({ - ...state, - processedInvoice: null, - }), - RESET_PROCESSED_SALES_RAPORT: (state) => ({ - ...state, - processedSalesRaport: null, - }), + RESET_PROCESSED_INVOICE: (state) => ({ ...state, processedInvoice: null }), + RESET_PROCESSED_SALES_RAPORT: (state) => { + state.processedSalesRaport = null; + }, SET_INVENTORY_ID: ( state, { From 497425fda25029b0539f55e98d771ea617c41bfe Mon Sep 17 00:00:00 2001 From: Felix Lipski Date: Fri, 5 Jul 2024 15:15:08 +0200 Subject: [PATCH 2/2] mutating actions --- native/redux/documentScannerSlice.ts | 48 ++++++++++++++++++---------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/native/redux/documentScannerSlice.ts b/native/redux/documentScannerSlice.ts index 8b3e3e00..7035a216 100644 --- a/native/redux/documentScannerSlice.ts +++ b/native/redux/documentScannerSlice.ts @@ -43,14 +43,20 @@ export const documentScannerSlice = createSlice({ }, PHOTO_TAKE: ( state, - { payload }: PayloadAction<{ photo: DocumentScannerSlice["photo"] }> - ) => ({ ...state, photo: payload.photo || null }), + action: PayloadAction<{ photo: DocumentScannerSlice["photo"] }> + ) => { + state.photo = action.payload.photo || null; + }, PHOTO_RETAKE: (state) => { state.photo = null; state.isPreviewShown = false; }, - PHOTO_START: (state) => ({ ...state, isTakingPhoto: true }), - PHOTO_END: (state) => ({ ...state, isTakingPhoto: false }), + PHOTO_START: (state) => { + state.isTakingPhoto = true; + }, + PHOTO_END: (state) => { + state.isTakingPhoto = false; + }, PHOTO_RESET_DATA: (state) => { state.photo = null; state.isPreviewShown = false; @@ -61,32 +67,42 @@ export const documentScannerSlice = createSlice({ action: PayloadAction<{ processedInvoice: DocumentScannerSlice["processedInvoice"]; }> - ) => ({ ...state, processedInvoice: action.payload.processedInvoice }), + ) => { + state.processedInvoice = action.payload.processedInvoice; + }, SET_NEW_MATCHED: ( state, action: PayloadAction<{ newMatched: DocumentScannerSlice["newMatched"]; }> - ) => ({ ...state, newMatched: action.payload.newMatched }), + ) => { + state.newMatched = action.payload.newMatched; + }, SET_PROCESSED_SALES_RAPORT: ( state, - { - payload, - }: PayloadAction<{ + action: PayloadAction<{ processedSalesRaport: DocumentScannerSlice["processedSalesRaport"]; }> - ) => ({ ...state, processedSalesRaport: payload.processedSalesRaport }), - RESET_PROCESSED_INVOICE: (state) => ({ ...state, processedInvoice: null }), + ) => { + state.processedSalesRaport = action.payload.processedSalesRaport; + }, + RESET_PROCESSED_INVOICE: (state) => { + state.processedInvoice = null; + }, RESET_PROCESSED_SALES_RAPORT: (state) => { state.processedSalesRaport = null; }, SET_INVENTORY_ID: ( state, - { - payload, - }: PayloadAction<{ inventory_id: DocumentScannerSlice["inventory_id"] }> - ) => ({ ...state, inventory_id: payload.inventory_id }), - RESET_INVENTORY_ID: (state) => ({ ...state, inventory_id: null }), + action: PayloadAction<{ + inventory_id: DocumentScannerSlice["inventory_id"]; + }> + ) => { + state.inventory_id = action.payload.inventory_id; + }, + RESET_INVENTORY_ID: (state) => { + state.inventory_id = null; + }, }, selectors: { selectIsPreviewShown: (state) => state.isPreviewShown,