Untitled
unknown
plain_text
a year ago
2.0 kB
10
Indexable
import { createSlice } from '@reduxjs/toolkit'; import { request } from '../utils/api-config'; import { updateIsAuthenticated } from './auth-slice'; import Cookies from 'js-cookie'; import { useNavigate }from 'react-router-dom'; const registrationSlice = createSlice({ name: 'registration', initialState: { user: null, loading: false, error: null, }, reducers: { registrationRequest: (state) => { state.loading = true; state.error = null; }, registrationSuccess: (state, action) => { state.loading = false; state.user = action.payload; Cookies.set('refreshToken', action.payload.refreshToken, { expires: 365 }); }, registrationFailure: (state, action) => { state.loading = false; state.error = action.payload; }, clearUser: (state) => { state.user = null; }, }, }); export const { registrationRequest, registrationSuccess, registrationFailure, clearUser, } = registrationSlice.actions; export const registerUser = (userData) => async (dispatch) => { try { dispatch(registrationRequest()); const response = await request('/auth/register', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(userData), }); console.log(response.user) if(response && response.user) { console.log("я тут") dispatch(registrationSuccess(response.user)); dispatch(updateIsAuthenticated(true)); console.log("cюды дошла") const navigate = useNavigate() console.log("а теперь тут") navigate('/'); } else { dispatch(registrationFailure('Не получилось зарегистрироваться, пожалуйста, проверьте данные')); } } catch (error) { dispatch(registrationFailure(`Error: ${error.message}`)); } }; export default registrationSlice.reducer;
Editor is loading...