import { createSlice, type PayloadAction } from '@reduxjs/toolkit' import { type Models } from 'appwrite' import { type ClanList } from 'entgamers-database/frontend/clanes' import { type User } from 'entgamers-database/frontend/session' export type SessionState = | { status: 'idle' | 'loading' | 'initializing' session?: Models.Session user?: User clanes?: ClanList } const initialState: SessionState = { status: 'initializing' } const sessionSlice = createSlice({ name: 'session', initialState, reducers: { setStatus: (state, action: PayloadAction) => { return { ...state, status: action.payload } }, setSession: (state, action: PayloadAction) => { return { ...state, session: action.payload } }, setCurrentUser: (state, action: PayloadAction) => { return { ...state, user: action.payload } }, setClanes: (state, action: PayloadAction) => { return { ...state, clanes: action.payload } } } }) export const { setStatus, setSession, setCurrentUser, setClanes } = sessionSlice.actions export default sessionSlice