diff options
Diffstat (limited to 'client/src/slices/authSlice.ts')
-rw-r--r-- | client/src/slices/authSlice.ts | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/client/src/slices/authSlice.ts b/client/src/slices/authSlice.ts new file mode 100644 index 0000000..e1fec78 --- /dev/null +++ b/client/src/slices/authSlice.ts @@ -0,0 +1,31 @@ +import { createSlice } from '@reduxjs/toolkit'; +import type { PayloadAction } from '@reduxjs/toolkit'; +import type { RootState } from '../store'; +import type { Guest } from './apiSlice'; + +type AuthState = { + guest?: Guest; + token?: string; +}; + +const authSlice = createSlice({ + name: 'auth', + initialState: { guest: undefined, token: undefined } as AuthState, + reducers: { + setCredentials: ( + state, + { + payload: { guest, token }, + }: PayloadAction<{ guest: Guest; token: string }> + ) => { + state.guest = guest; + state.token = token; + }, + }, +}); + +export const { setCredentials } = authSlice.actions; + +export default authSlice.reducer; + +export const selectCurrentGuest = (state: RootState) => state.auth.guest; |