aboutsummaryrefslogtreecommitdiff
path: root/src/models/bucketSlice.ts
blob: 1a152635b96d0ca5f9de7377984645e797aa80a1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import {createSlice, PayloadAction} from '@reduxjs/toolkit'
import type {RootState} from '@/store'
import {SoftPairBucket} from "@/api";


const initialState: SoftPairBucket[] = []

const bucketSlice = createSlice({
    name: 'buckets',
    initialState,
    reducers: {
        setBuckets(state, action: PayloadAction<SoftPairBucket[]>) {
            return action.payload;
        },
        bucketAdded(state, action: PayloadAction<SoftPairBucket>) {
            state.push(action.payload);
        }
    }
})

export const {setBuckets, bucketAdded} = bucketSlice.actions;
export default bucketSlice.reducer

export const selectBucketsStatus = (state: RootState) => state.buckets.status
export const selectBucketsError = (state: RootState) => state.buckets.error
export const selectAllBuckets = (state: RootState) => state.buckets

export const selectBucketById = (state: RootState, bucketId: string | null) =>
    state.buckets.find(bucket => bucket.id === bucketId)