w-aura/src/store/subscriptionPlan.ts
Aidar Shaikhutdin @makeweb.space 9255c79dc6 feat: add user status state
2023-06-19 11:43:09 +03:00

31 lines
1000 B
TypeScript

import {
createSlice, createEntityAdapter, createSelector, EntityState
} from '@reduxjs/toolkit'
import { SubscriptionItems } from '../api'
type SubscriptionPlan = SubscriptionItems.ItemPrice
const subscriptionPlanAdapter = createEntityAdapter<SubscriptionPlan>({
selectId: (plan) => plan.id,
sortComparer: (a, b) => a.created_at - b.created_at,
})
const initialState = subscriptionPlanAdapter.getInitialState()
const subscriptionPlanSlice = createSlice({
name: 'subscriptionPlans',
initialState,
reducers: {
setAll: subscriptionPlanAdapter.setAll,
},
extraReducers: (builder) => builder.addCase('reset', () => initialState)
})
export const { actions } = subscriptionPlanSlice
const { selectById } = subscriptionPlanAdapter.getSelectors()
export const selectPlanById = (id: string) => createSelector(
(state: { subscriptionPlans: EntityState<SubscriptionPlan> }) => state.subscriptionPlans,
(state) => selectById(state, id)
)
export default subscriptionPlanSlice.reducer