feat: nextjs 14 (#20)
* feat: eslint update * feat: start over and layout * feat: nextjs13 boilerplate * feat: static homepage * feat: static pages * feat: static unirse * chore: remove old mui types * chore: moving from yarn to bun * chore: update dependencies * feat: static equipo unirse * feat: move appwrite to entgamers-database package * feat: improve ui components * feat: update dependencies * feat: static login & register pages * fix: remove unused logs * feat: state redux toolkit & feedback slice * fix: equipo div inside p * feat: session * feat: metadataBase * feat: basic apply form * feat: http verbs * feat: recover password flow * chore: updated dependencies * fix: fix image config * fix: api team-applications route * fix: remove not longer used fonts * feat: session with current user * fix: login form recuperar contraseña * feat: equipo pages now uses data from database package * feat: useManageErrors hook * feat: updated cuenta page * chore: updated old formik forms to use hooks * feat: updated dependencies &package name * fix: session related bugs * fix: missing helper texts * feat: static applications dashboard * chore: update dependencies * refactor: team applications * fix: session api update
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
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<SessionState['status']>) => {
|
||||
return {
|
||||
...state,
|
||||
status: action.payload
|
||||
}
|
||||
},
|
||||
setSession: (state, action: PayloadAction<SessionState['session']>) => {
|
||||
return {
|
||||
...state,
|
||||
session: action.payload
|
||||
}
|
||||
},
|
||||
setCurrentUser: (state, action: PayloadAction<SessionState['user']>) => {
|
||||
return {
|
||||
...state,
|
||||
user: action.payload
|
||||
}
|
||||
},
|
||||
setClanes: (state, action: PayloadAction<SessionState['clanes']>) => {
|
||||
return {
|
||||
...state,
|
||||
clanes: action.payload
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
export const { setStatus, setSession, setCurrentUser, setClanes } = sessionSlice.actions
|
||||
|
||||
export default sessionSlice
|
||||
Reference in New Issue
Block a user