feat: session
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
import { createSlice, type PayloadAction } from '@reduxjs/toolkit'
|
||||
import { type Models } from 'appwrite'
|
||||
|
||||
export interface SessionState {
|
||||
status: 'idle' | 'loading' | 'initializing'
|
||||
session?: Models.Session
|
||||
}
|
||||
|
||||
const initialState: SessionState = {
|
||||
status: 'initializing',
|
||||
session: undefined
|
||||
}
|
||||
|
||||
const sessionSlice = createSlice({
|
||||
name: 'session',
|
||||
initialState,
|
||||
reducers: {
|
||||
setStatus: (state, action: PayloadAction<SessionState['status']>) => {
|
||||
state.status = action.payload
|
||||
},
|
||||
setSession: (state, action: PayloadAction<SessionState['session']>) => {
|
||||
state.session = action.payload
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
export const { setStatus, setSession } = sessionSlice.actions
|
||||
|
||||
export default sessionSlice
|
||||
+3
-1
@@ -1,9 +1,11 @@
|
||||
import feedbackSlice from '@/state/feedbackSlice'
|
||||
import sessionSlice from '@/state/sessionSlice'
|
||||
import { configureStore } from '@reduxjs/toolkit'
|
||||
|
||||
const store = configureStore({
|
||||
reducer: {
|
||||
feedback: feedbackSlice.reducer
|
||||
feedback: feedbackSlice.reducer,
|
||||
session: sessionSlice.reducer
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user