From 84e1ca520dcc3340d217f0743a5025b1f7613501 Mon Sep 17 00:00:00 2001 From: tasita Date: Tue, 26 Dec 2023 07:21:34 +0200 Subject: [PATCH] checked --- .../ChangePasswordForm/ChangePasswordForm.jsx | 8 ++--- src/components/DeleteUser/DeleteUser.jsx | 15 +++++----- .../Diary/DiaryMainModal/DiaryMainModal.jsx | 2 +- .../DiaryMainModal/DiaryMainModal.styled.jsx | 2 +- src/components/Food/Food.jsx | 6 ++-- .../UserInfoModal/UserInfoModal.jsx | 2 +- src/pages/MainPage/MainPage.jsx | 29 ++----------------- src/pages/MainPage/MainPage.styled.js | 17 +++++++++-- src/redux/auth/operations.js | 3 +- src/redux/diary/diarySlice.js | 1 - src/requests/deleteUser.js | 14 ++++++--- src/schemas/formik.js | 20 ++++++------- 12 files changed, 55 insertions(+), 64 deletions(-) diff --git a/src/components/ChangePasswordForm/ChangePasswordForm.jsx b/src/components/ChangePasswordForm/ChangePasswordForm.jsx index e5edd3b..5872871 100644 --- a/src/components/ChangePasswordForm/ChangePasswordForm.jsx +++ b/src/components/ChangePasswordForm/ChangePasswordForm.jsx @@ -47,8 +47,8 @@ export default function ChangePasswordForm() { placeholder="Password" autoComplete="off" className={ - touched.quantity - ? errors.quantity + touched.password + ? errors.password ? 'input-error' : 'input-success' : 'input-normal' @@ -61,8 +61,8 @@ export default function ChangePasswordForm() { placeholder="New password" autoComplete="off" className={ - touched.quantity - ? errors.quantity + touched.newPassword + ? errors.newPassword ? 'input-error' : 'input-success' : 'input-normal' diff --git a/src/components/DeleteUser/DeleteUser.jsx b/src/components/DeleteUser/DeleteUser.jsx index 46cae81..cd4820b 100644 --- a/src/components/DeleteUser/DeleteUser.jsx +++ b/src/components/DeleteUser/DeleteUser.jsx @@ -9,8 +9,7 @@ import { Button, HeadlineSecond, } from '../StyledComponents/Components.styled'; -import { useDispatch, useSelector } from 'react-redux'; -import { selectUserInfo } from '../../redux/auth/selectors'; +import { useDispatch } from 'react-redux'; import toast from 'react-hot-toast'; import { deleteUserSchema } from '../../schemas/formik'; @@ -21,17 +20,17 @@ import { logOut } from '../../redux/auth/operations'; export default function DeleteUser() { const dispatch = useDispatch(); const navigate = useNavigate(); - const { email } = useSelector(selectUserInfo); const onSubmit = async (values, actions) => { try { - await removeUser({ email, ...values }); - dispatch(logOut()).unwrap(); + await removeUser(values.password); + await dispatch(logOut()).unwrap(); toast.success('You have successfully deleted your account!'); navigate('/welcome'); } catch (error) { console.log(error); - toast.error(`Something went wrong! \n ${error.message}`); + toast.error(`Something went wrong! \n ${error.message}!`); + return; } actions.resetForm(); }; @@ -60,8 +59,8 @@ export default function DeleteUser() { placeholder="Password" autoComplete="off" className={ - touched.quantity - ? errors.quantity + touched.password + ? errors.password ? 'input-error' : 'input-success' : 'input-normal' diff --git a/src/components/Diary/DiaryMainModal/DiaryMainModal.jsx b/src/components/Diary/DiaryMainModal/DiaryMainModal.jsx index 729431c..103f4b3 100644 --- a/src/components/Diary/DiaryMainModal/DiaryMainModal.jsx +++ b/src/components/Diary/DiaryMainModal/DiaryMainModal.jsx @@ -117,7 +117,7 @@ export default function DiaryMainModal({ modalData, setModalData }) { { - handleDelete(item.id); + handleDelete({ id: item.id, diary: type }); }} > { - dispatch(getFoodDiaryToday()).unwrap(); - }, [fat, protein, carbohydrate, calories]); + // useEffect(() => { + // dispatch(getFoodDiaryToday()).unwrap(); + // }, [fat, protein, carbohydrate, calories]); const nutrientsTitles = ['Carbonohidrates', 'Protein', 'Fat']; diff --git a/src/components/UserInfoModal/UserInfoModal.jsx b/src/components/UserInfoModal/UserInfoModal.jsx index 94c9cc3..17baf84 100644 --- a/src/components/UserInfoModal/UserInfoModal.jsx +++ b/src/components/UserInfoModal/UserInfoModal.jsx @@ -14,7 +14,7 @@ export default function UserInfoModal({ onCloseModal }) { toast.success('You have successfully logged out!'); onCloseModal(); } catch (error) { - toast.error(`Something went wrong! ${error.message}`); + toast.error(`Something went wrong! \n ${error}`); } }; diff --git a/src/pages/MainPage/MainPage.jsx b/src/pages/MainPage/MainPage.jsx index 4b75515..ceb0167 100644 --- a/src/pages/MainPage/MainPage.jsx +++ b/src/pages/MainPage/MainPage.jsx @@ -1,5 +1,5 @@ import React, { useEffect, useState } from 'react'; -import { FeatureWrap, TitleWrap } from './MainPage.styled'; +import { FeatureWrap, MainWrap, TitleWrap } from './MainPage.styled'; import { Container } from 'components/StyledComponents/Container'; import { @@ -14,14 +14,9 @@ import Water from 'components/Water/Water'; import Food from 'components/Food/Food'; import Diary from 'components/Diary/Diary'; import RecommendedFood from 'components/RecommendedFood/RecommendedFood'; -import { Button } from '../../components/StyledComponents/Components.styled'; import { useDispatch, useSelector } from 'react-redux'; -import { toast } from 'react-hot-toast'; -import { logOut } from '../../redux/auth/operations'; import { selectIsLogin } from '../../redux/auth/selectors'; import { getDailyWater } from '../../redux/water/operations'; -import ChangePasswordForm from '../../components/ChangePasswordForm/ChangePasswordForm'; -import DeleteUser from '../../components/DeleteUser/DeleteUser'; import { getFoodDiaryToday } from '../../redux/diary/operations'; export default function MainPage() { @@ -48,18 +43,8 @@ export default function MainPage() { document.body.style.overflow = 'auto'; } - // TODO видалити потім, коли буде можливість вийти в хедері - const handleOut = async () => { - try { - await dispatch(logOut()).unwrap(); - toast.success('You have successfully logged out!'); - } catch (error) { - toast.error(`Something went wrong! \n ${error.message}`); - } - }; - return ( -
+ Today @@ -80,15 +65,7 @@ export default function MainPage() { - {/* // TODO видалити потім, коли буде можливість вийти в хедері */} - - {/* // TODO видалити потім, коли буде додано в Профайл */} - - {/* // TODO видалити потім, коли буде додано в Профайл */} - -
+ ); } diff --git a/src/pages/MainPage/MainPage.styled.js b/src/pages/MainPage/MainPage.styled.js index 523ffb9..7a0fa9a 100644 --- a/src/pages/MainPage/MainPage.styled.js +++ b/src/pages/MainPage/MainPage.styled.js @@ -1,19 +1,30 @@ import styled from 'styled-components'; +export const MainWrap = styled.main` + padding-top: 16px; + padding-bottom: 80px; + @media screen and (min-width: 834px) { + padding-top: 24px; + padding-bottom: 40px; + } + @media screen and (min-width: 1440px) { + padding-top: 20px; + padding-bottom: 54px; + } +`; + export const TitleWrap = styled.div` display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; - margin-top: 16px; + margin-bottom: 20px; @media screen and (min-width: 834px) { - margin-top: 24px; margin-bottom: 24px; } @media screen and (min-width: 1440px) { - margin-top: 20px; margin-bottom: 16px; } `; diff --git a/src/redux/auth/operations.js b/src/redux/auth/operations.js index 87ee3c8..dc9cef0 100644 --- a/src/redux/auth/operations.js +++ b/src/redux/auth/operations.js @@ -74,12 +74,11 @@ export const logOut = createAsyncThunk( try { const { data } = await instance.post('/api/auth/logout'); store.dispatch(resetWater()); - store.dispatch(resetStatistics()); store.dispatch(resetDiary()); setToken(); return data; } catch (error) { - return rejectWithValue(error.response.data); + return rejectWithValue(error.message); } } ); diff --git a/src/redux/diary/diarySlice.js b/src/redux/diary/diarySlice.js index 76f9367..fd0c652 100644 --- a/src/redux/diary/diarySlice.js +++ b/src/redux/diary/diarySlice.js @@ -19,7 +19,6 @@ const initialState = { carbohydrate: 0, isLoading: false, error: null, - firstLoad: false, }; const handlePending = (state) => { diff --git a/src/requests/deleteUser.js b/src/requests/deleteUser.js index 80e3b14..1305ca5 100644 --- a/src/requests/deleteUser.js +++ b/src/requests/deleteUser.js @@ -5,11 +5,17 @@ import instance from '../redux/auth/operations'; * headers: Authorization: Bearer token * body: { email, password } */ -export const removeUser = async (body) => { + +export const removeUser = async (password) => { try { - const { data } = await instance.delete('/api/auth/delete', { data: body }); - return data; + const response = await instance.delete(`/api/auth/delete/${password}`); + if (response && response.data) { + const { data } = response; + return data; + } + return null; } catch (error) { - return error.response.data; + console.log(error); + return error; } }; diff --git a/src/schemas/formik.js b/src/schemas/formik.js index eb81c7e..110a099 100644 --- a/src/schemas/formik.js +++ b/src/schemas/formik.js @@ -11,11 +11,11 @@ export const loginSchema = Yup.object().shape({ .matches(EMAIL_RULE, 'Invalid email address'), password: Yup.string() .required('Password is required') - .min(7, 'The password must be at least 7 characters long') - .matches( - PASSWORD_RULE, - `Your password is at least 7 characters, contain 1 uppercase letter, 1 lowercase letter, 1 number. The letters is in English.` - ), + .min(7, 'The password must be at least 7 characters long'), + // .matches( + // PASSWORD_RULE, + // `Your password is at least 7 characters, contain 1 uppercase letter, 1 lowercase letter, 1 number. The letters is in English.` + // ), }); export const forgotPasswordSchema = Yup.object().shape({ @@ -28,11 +28,11 @@ export const forgotPasswordSchema = Yup.object().shape({ export const changePasswordSchema = Yup.object().shape({ password: Yup.string() .required('Password is required') - .min(7, 'The password must be at least 7 characters long') - .matches( - PASSWORD_RULE, - `Your password is at least 7 characters, contain 1 uppercase letter, 1 lowercase letter, 1 number. The letters is in English.` - ), + .min(7, 'The password must be at least 7 characters long'), + // .matches( + // PASSWORD_RULE, + // `Your password is at least 7 characters, contain 1 uppercase letter, 1 lowercase letter, 1 number. The letters is in English.` + // ), newPassword: Yup.string() .required('Password is required') .min(7, 'The password must be at least 7 characters long')