1616
1717import React from 'react' ;
1818import get from 'lodash.get' ;
19- import last from 'lodash.last' ;
2019import produce from 'immer' ;
2120import { Action , createReducer } from 'typesafe-actions' ;
2221
2322import * as actions from './actions' ;
24- import { isMap , isArray , getParentPath } from '../utils' ;
23+ import { isMap , isArray , lastFieldName , getParentPath } from '../utils' ;
2524import { FirestoreAny , FirestoreMap } from '../models' ;
2625
2726const reducer = createReducer < FirestoreMap , Action > ( { } )
@@ -33,7 +32,7 @@ const reducer = createReducer<FirestoreMap, Action>({})
3332 produce ( ( draft , { payload } ) => {
3433 const parent = get ( draft , getParentPath ( payload . path ) ) || draft ;
3534 if ( isMap ( parent ) ) {
36- parent [ last ( payload . path ) as string ] = payload . value ;
35+ parent [ lastFieldName ( payload . path ) ] = payload . value ;
3736 } else if ( isArray ( parent ) ) {
3837 parent . push ( payload . value ) ;
3938 }
@@ -44,9 +43,9 @@ const reducer = createReducer<FirestoreMap, Action>({})
4443 produce ( ( draft , { payload } ) => {
4544 const parent = get ( draft , getParentPath ( payload . path ) ) || draft ;
4645 if ( isMap ( parent ) ) {
47- parent [ last ( payload . path ) as string ] = payload . value ;
46+ parent [ lastFieldName ( payload . path ) ] = payload . value ;
4847 } else if ( isArray ( parent ) ) {
49- parent [ Number ( last ( payload . path ) ) ] = payload . value ;
48+ parent [ Number ( lastFieldName ( payload . path ) ) ] = payload . value ;
5049 } else {
5150 return payload . value ;
5251 }
@@ -57,9 +56,9 @@ const reducer = createReducer<FirestoreMap, Action>({})
5756 produce ( ( draft , { payload } ) => {
5857 const parent = get ( draft , getParentPath ( payload ) ) || draft ;
5958 if ( isMap ( parent ) ) {
60- delete parent [ last ( payload ) as string ] ;
59+ delete parent [ lastFieldName ( payload ) ] ;
6160 } else if ( isArray ( parent ) ) {
62- parent . splice ( Number ( last ( payload ) ) , 1 ) ;
61+ parent . splice ( Number ( lastFieldName ( payload ) ) , 1 ) ;
6362 }
6463 } )
6564 ) ;
0 commit comments