99
1010export function createCrudSlice < T > ( opts : {
1111 name : string
12- adapter : EntityAdapter < T >
12+ adapter : EntityAdapter < T , string >
1313} ) {
1414 const { name, adapter} = opts
1515
@@ -21,41 +21,50 @@ export function createCrudSlice<T>(opts: {
2121
2222 return createSlice ( {
2323 name,
24- initialState : { ids : [ ] , entities : { } } as EntityState < T > ,
24+ initialState : { ids : [ ] , entities : { } } as EntityState < T , string > ,
2525 reducers : {
2626 sync : ( state , action : PayloadAction < T [ ] > ) => {
27- adapter . setAll ( state as EntityState < T > , action . payload )
27+ adapter . setAll ( state as EntityState < T , string > , action . payload )
2828 } ,
2929 create : ( state , action : PayloadAction < T | T [ ] > ) => {
3030 if ( Array . isArray ( action . payload ) ) {
31- adapter . addMany ( state as EntityState < T > , action . payload )
31+ adapter . addMany ( state as EntityState < T , string > , action . payload )
3232 } else {
33- adapter . addOne ( state as EntityState < T > , action . payload )
33+ adapter . addOne ( state as EntityState < T , string > , action . payload )
3434 }
3535 } ,
36- update : ( state , action : PayloadAction < Update < T > | Update < T > [ ] > ) => {
36+ update : (
37+ state ,
38+ action : PayloadAction < Update < T , string > | Update < T , string > [ ] >
39+ ) => {
3740 if ( Array . isArray ( action . payload ) ) {
38- adapter . updateMany ( state as EntityState < T > , action . payload )
41+ adapter . updateMany ( state as EntityState < T , string > , action . payload )
3942 } else {
40- adapter . updateOne ( state as EntityState < T > , action . payload )
43+ adapter . updateOne ( state as EntityState < T , string > , action . payload )
4144 }
4245 } ,
4346 upsert : ( state , action : PayloadAction < T | T [ ] > ) => {
4447 if ( Array . isArray ( action . payload ) ) {
45- adapter . upsertMany ( state as EntityState < T > , action . payload )
48+ adapter . upsertMany ( state as EntityState < T , string > , action . payload )
4649 } else {
47- adapter . upsertOne ( state as EntityState < T > , action . payload )
50+ adapter . upsertOne ( state as EntityState < T , string > , action . payload )
4851 }
4952 } ,
5053 delete : ( state , action : PayloadAction < string | string [ ] | T | T [ ] > ) => {
5154 if ( Array . isArray ( action . payload ) ) {
52- adapter . removeMany ( state as EntityState < T > , action . payload . map ( getId ) )
55+ adapter . removeMany (
56+ state as EntityState < T , string > ,
57+ action . payload . map ( getId ) as any
58+ )
5359 } else {
54- adapter . removeOne ( state as EntityState < T > , getId ( action . payload ) )
60+ adapter . removeOne (
61+ state as EntityState < T , string > ,
62+ getId ( action . payload ) as any
63+ )
5564 }
5665 } ,
5766 deleteAll : ( state ) => {
58- adapter . removeAll ( state as EntityState < T > )
67+ adapter . removeAll ( state as EntityState < T , string > )
5968 } ,
6069 } ,
6170 } )
0 commit comments