diff --git a/apps/client/src/app/Router.tsx b/apps/client/src/app/Router.tsx index bf9827e..68e1e24 100644 --- a/apps/client/src/app/Router.tsx +++ b/apps/client/src/app/Router.tsx @@ -22,7 +22,7 @@ export const Router = () => { return ( - @@ -48,7 +48,7 @@ export const Router = () => { path={`${ROUTES.ACTIVATE_ACCOUNT}/:token`} element={} /> - + */} { - return
ActivateAccount
; + return ( + + + + + + Congrats, successfully confirmation mail + + + ); }; diff --git a/apps/client/src/app/sceens/Home/Home.style.ts b/apps/client/src/app/sceens/Home/Home.style.ts new file mode 100644 index 0000000..488b9f0 --- /dev/null +++ b/apps/client/src/app/sceens/Home/Home.style.ts @@ -0,0 +1,47 @@ +import RestaurantMenuRoundedIcon from '@mui/icons-material/RestaurantMenuRounded'; +import { Box, Fab, Typography } from '@mui/material'; +import Button from '@mui/material/Button'; +import { NavLink } from 'react-router-dom'; +import styled from '@emotion/styled'; + +export const StyledPageBox = styled(Box)` + display: flex; + flex-direction: column; + align-items: center; + margin-top: 40px; + @media (max-width: 480px) { + margin-top: 80px; + } +`; +export const StyledLogoBox = styled(Box)` + display: flex; + flex-direction: row; + margin-top: 20px; + align-items: center; +`; +export const StyledFabLogo = styled(Fab)` + width: 50px; + height: 50px; + margin-left: 20px; + cursor: unset; +`; +export const StyledIconLogo = styled(RestaurantMenuRoundedIcon)` + font-size: 42px; + color: #fff; +`; +export const StyledFirstTypography = styled(Typography)` + text-align: center; + margin: 20px auto; +`; +export const StyledLinkText = styled(NavLink)` + text-decoration: none; + width: 90%; +`; +export const StyledNavButton = styled(Button)` + width: 100%; + color: #fff; +`; +export const StyledSecondTypography = styled(Typography)` + text-align: center; + margin: 10px auto; +`; diff --git a/apps/client/src/app/sceens/Home/Home.tsx b/apps/client/src/app/sceens/Home/Home.tsx index 192e8a8..0441642 100644 --- a/apps/client/src/app/sceens/Home/Home.tsx +++ b/apps/client/src/app/sceens/Home/Home.tsx @@ -1,51 +1,16 @@ import RestaurantMenuRoundedIcon from '@mui/icons-material/RestaurantMenuRounded'; -import { Box, Fab, Typography } from '@mui/material'; -import Button from '@mui/material/Button'; -import { NavLink } from 'react-router-dom'; +import { Typography } from '@mui/material'; import { ROUTES } from '../../routes/Routes'; -import styled from '@emotion/styled'; - -const StyledPageBox = styled(Box)` - display: flex; - flex-direction: column; - align-items: center; - margin-top: 40px; - @media (max-width: 480px) { - margin-top: 80px; - } -`; -const StyledLogoBox = styled(Box)` - display: flex; - flex-direction: row; - margin-top: 20px; - align-items: center; -`; -const StyledFabLogo = styled(Fab)` - width: 50px; - height: 50px; - margin-left: 20px; - cursor: unset; -`; -const StyledIconLogo = styled(RestaurantMenuRoundedIcon)` - font-size: 42px; - color: #fff; -`; -const StyledFirstTypography = styled(Typography)` - text-align: center; - margin: 20px auto; -`; -const StyledLinkText = styled(NavLink)` - text-decoration: none; - width: 90%; -`; -const StyledNavButton = styled(Button)` - width: 100%; - color: #fff; -`; -const StyledSecondTypography = styled(Typography)` - text-align: center; - margin: 10px auto; -`; +import { + StyledPageBox, + StyledLogoBox, + StyledFabLogo, + StyledIconLogo, + StyledFirstTypography, + StyledLinkText, + StyledNavButton, + StyledSecondTypography, +} from './Home.style'; export const Home = () => { return ( diff --git a/apps/client/src/app/sceens/Login/Login.style.ts b/apps/client/src/app/sceens/Login/Login.style.ts new file mode 100644 index 0000000..f1b9aad --- /dev/null +++ b/apps/client/src/app/sceens/Login/Login.style.ts @@ -0,0 +1,64 @@ +import Lock from '@mui/icons-material/Lock'; +import Avatar from '@mui/material/Avatar'; +import Box from '@mui/material/Box'; +import Button from '@mui/material/Button'; +import TextField from '@mui/material/TextField'; +import Typography from '@mui/material/Typography'; +import { NavLink } from 'react-router-dom'; +import styled from '@emotion/styled'; + +export const StyledPageBox = styled(Box)` + display: flex; + flex-direction: column; + align-items: center; +`; +export const StyledSectionBox = styled(Box)` + margin: 80px 0 0; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + width: 90%; +`; +export const StyledAvatar = styled(Avatar)` + margin: 8px; + background-color: #4caf50; + width: 70px; + height: 70px; + @media (max-width: 480px) { + width: 40px; + height: 40px; + } +`; +export const StyledAvatarLock = styled(Lock)` + font-size: 48px; + color: #fff; + @media (max-width: 480px) { + font-size: 24px; + } +`; +export const StyledTypography = styled(Typography)` + @media (max-width: 480px) { + font-size: 24px; + } +`; +export const StyledFormTextField = styled(TextField)` + width: 100%; + margin: 10px 0; +`; +export const StyledErrorDiv = styled(Box)` + color: #ff0000; +`; +export const StyledSignButton = styled(Button)` + width: 100%; + color: #fff; +`; +export const StyledBottomSection = styled(Box)` + display: flex; + justify-content: space-between; + width: 100%; + margin-top: 30px; +`; +export const StyledNavLink = styled(NavLink)` + color: #000; +`; diff --git a/apps/client/src/app/sceens/Login/Login.tsx b/apps/client/src/app/sceens/Login/Login.tsx index d2f7fe7..0388781 100644 --- a/apps/client/src/app/sceens/Login/Login.tsx +++ b/apps/client/src/app/sceens/Login/Login.tsx @@ -1,3 +1,65 @@ +import { + StyledPageBox, + StyledSectionBox, + StyledAvatar, + StyledAvatarLock, + StyledTypography, + StyledFormTextField, + StyledErrorDiv, + StyledSignButton, + StyledBottomSection, + StyledNavLink, +} from './Login.style'; + +import { ROUTES } from '../../routes/Routes'; +import { useState } from 'react'; + export const Login = () => { - return
Login
; + const [email, setEmail] = useState(''); + const [password, setPassword] = useState(''); + + return ( + + + + + + + Sign in + +
console.log('sent')}> + setEmail(e.target.value)} + autoComplete='email' + /> + setPassword(e.target.value)} + type='password' + autoComplete='current-password' + /> + + + Sign In + + + + + + Forgot password? + + + Don't have an account? Sign up + + +
+
+ ); }; diff --git a/apps/client/src/app/sceens/Register/Register.style.ts b/apps/client/src/app/sceens/Register/Register.style.ts new file mode 100644 index 0000000..1d49895 --- /dev/null +++ b/apps/client/src/app/sceens/Register/Register.style.ts @@ -0,0 +1,71 @@ +import Lock from '@mui/icons-material/Lock'; +import Avatar from '@mui/material/Avatar'; +import Box from '@mui/material/Box'; +import Button from '@mui/material/Button'; +import TextField from '@mui/material/TextField'; +import styled from '@emotion/styled'; +import { NavLink } from 'react-router-dom'; + +export const StyledPageBox = styled(Box)` + display: flex; + flex-direction: column; + align-items: center; +`; +export const StyledSectionBox = styled(Box)` + margin: 80px 0 0; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + width: 90%; +`; +export const StyledAvatar = styled(Avatar)` + margin: 8px; + background-color: #4caf50; + width: 70px; + height: 70px; + @media (max-width: 480px) { + width: 40px; + height: 40px; + } +`; +export const StyledAvatarLock = styled(Lock)` + font-size: 48px; + color: #fff; + @media (max-width: 480px) { + font-size: 24px; + } +`; +export const StyledInputsName = styled(Box)` + width: 100%; + display: ;flex; + flex-direciotn: row; + margin: 10px 0; +`; +export const StyledFormTextFieldName = styled(TextField)` + width: 50%; +`; +export const StyledFormTextField = styled(TextField)` + width: 100%; + margin: 10px 0; +`; +export const StyledFormTextFieldBirtday = styled(TextField)` + width: 100%; + margin: 10px 0; +`; +export const StyledErrorDiv = styled(Box)` + color: red; +`; +export const StyledButtonSign = styled(Button)` + width: 100%; + color: #fff; +`; +export const StyledSectionBottom = styled(Box)` + display: flex; + justify-content: flex-end; + width: 100%; + margin-top: 2rem; +`; +export const StyledNavLink = styled(NavLink)` + color: #000; +`; diff --git a/apps/client/src/app/sceens/Register/Register.tsx b/apps/client/src/app/sceens/Register/Register.tsx index 09a9c8e..ce80fa6 100644 --- a/apps/client/src/app/sceens/Register/Register.tsx +++ b/apps/client/src/app/sceens/Register/Register.tsx @@ -1,3 +1,112 @@ +import Typography from '@mui/material/Typography'; +import { + StyledPageBox, + StyledSectionBox, + StyledAvatar, + StyledAvatarLock, + StyledInputsName, + StyledFormTextFieldName, + StyledFormTextField, + StyledFormTextFieldBirtday, + StyledErrorDiv, + StyledButtonSign, + StyledSectionBottom, + StyledNavLink, +} from './Register.style'; +import { useState } from 'react'; +import { ROUTES } from '../../routes/Routes'; + export const Register = () => { - return
Register
; + const [firstName, setFirstName] = useState(''); + const [lastName, setlastName] = useState(''); + const [email, setEmail] = useState(''); + const [birthday, setBirthday] = useState(''); + const [password, setPassword] = useState(''); + const [confirmPassword, setConfirmPassword] = useState(''); + + return ( + + + + + + + + Sign up + + +
console.log('sent')}> + + setFirstName(e.target.value)} + /> + + setlastName(e.target.value)} + /> + + + setEmail(e.target.value)} + /> + + { + setBirthday(e.target.value); + }} + /> + + setPassword(e.target.value)} + /> + + setConfirmPassword(e.target.value)} + /> + + + + Sign Up + + + + + + Already have an account? Sign in + + +
+
+ ); }; diff --git a/apps/client/src/app/sceens/RequestPasswordReset/RequestPasswordReset.style.ts b/apps/client/src/app/sceens/RequestPasswordReset/RequestPasswordReset.style.ts new file mode 100644 index 0000000..b3f2527 --- /dev/null +++ b/apps/client/src/app/sceens/RequestPasswordReset/RequestPasswordReset.style.ts @@ -0,0 +1,52 @@ +import Lock from '@mui/icons-material/Lock'; +import { Avatar, Box, Button, TextField, Typography } from '@mui/material'; +import styled from '@emotion/styled'; + +export const StyledPageBox = styled(Box)` + display: flex; + flex-direction: column; + align-items: center; +`; +export const StyledSectionBox = styled(Box)` + margin: 80px 0 0; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + width: 90%; +`; +export const StyledAvatar = styled(Avatar)` + margin: 8px; + background-color: #4caf50; + width: 70px; + height: 70px; + @media (max-width: 480px) { + width: 40px; + height: 40px; + } +`; +export const StyledAvatarLock = styled(Lock)` + font-size: 48px; + color: #fff; + @media (max-width: 480px) { + font-size: 24px; + } +`; +export const StyledTypographyTop = styled(Typography)` + font-size: 48px; + color: #000; + @media (max-width: 480px) { + font-size: 24px; + } +`; +export const StyledFormStyle = styled.form` + width: 100%; +`; +export const StyledFormTextField = styled(TextField)` + width: 100%; + margin: 10px 0; +`; +export const StyledButtonSend = styled(Button)` + width: 100%; + color: #fff; +`; diff --git a/apps/client/src/app/sceens/RequestPasswordReset/RequestPasswordReset.tsx b/apps/client/src/app/sceens/RequestPasswordReset/RequestPasswordReset.tsx index bc49ac1..57e45f1 100644 --- a/apps/client/src/app/sceens/RequestPasswordReset/RequestPasswordReset.tsx +++ b/apps/client/src/app/sceens/RequestPasswordReset/RequestPasswordReset.tsx @@ -1,3 +1,42 @@ +import { + StyledPageBox, + StyledSectionBox, + StyledAvatar, + StyledAvatarLock, + StyledTypographyTop, + StyledFormStyle, + StyledFormTextField, + StyledButtonSend, +} from './RequestPasswordReset.style'; +import { useState } from 'react'; + export const RequestPasswordReset = () => { - return
RequestPasswordReset
; + const [email, setEmail] = useState(''); + + return ( + + + + + + + + Forgot Password? + + + console.log('sent')}> + setEmail(e.target.value)} + /> + + Send Email + + + + + ); }; diff --git a/apps/client/src/app/sceens/ResetPassword/ResetPassword.style.ts b/apps/client/src/app/sceens/ResetPassword/ResetPassword.style.ts new file mode 100644 index 0000000..3489654 --- /dev/null +++ b/apps/client/src/app/sceens/ResetPassword/ResetPassword.style.ts @@ -0,0 +1,51 @@ +import Lock from '@mui/icons-material/Lock'; +import Avatar from '@mui/material/Avatar'; +import Box from '@mui/material/Box'; +import Button from '@mui/material/Button'; +import TextField from '@mui/material/TextField'; +import styled from '@emotion/styled'; + +export const StyledPageBox = styled(Box)` + display: flex; + flex-direction: column; + align-items: center; +`; +export const StyledSectionBox = styled(Box)` + margin: 80px 0 0; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + width: 90%; +`; +export const StyledAvatar = styled(Avatar)` + margin: 8px; + background-color: #4caf50; + width: 70px; + height: 70px; + @media (max-width: 480px) { + width: 40px; + height: 40px; + } +`; +export const StyledAvatarLock = styled(Lock)` + font-size: 48px; + color: #fff; + @media (max-width: 480px) { + font-size: 24px; + } +`; +export const StyledFormStyle = styled.form` + width: 100%; +`; +export const StyledFormTextField = styled(TextField)` + width: 100%; + margin: 10px 0; +`; +export const StyledErrorDiv = styled(Box)` + color: #ff0000; +`; +export const StyledButtonSend = styled(Button)` + width: 100%; + color: #fff; +`; diff --git a/apps/client/src/app/sceens/ResetPassword/ResetPassword.tsx b/apps/client/src/app/sceens/ResetPassword/ResetPassword.tsx index 8b74038..ee225c5 100644 --- a/apps/client/src/app/sceens/ResetPassword/ResetPassword.tsx +++ b/apps/client/src/app/sceens/ResetPassword/ResetPassword.tsx @@ -1,3 +1,56 @@ +import Typography from '@mui/material/Typography'; +import { + StyledPageBox, + StyledSectionBox, + StyledAvatar, + StyledAvatarLock, + StyledFormStyle, + StyledFormTextField, + StyledErrorDiv, + StyledButtonSend, +} from './ResetPassword.style'; +import { useState } from 'react'; + export const ResetPassword = () => { - return
ResetPassword
; + const [password, setPassword] = useState(''); + const [confirmPassword, setConfirmPassword] = useState(''); + + return ( + + + + + + + + Reset Password + + + console.log('sent')}> + setPassword(e.target.value)} + autoComplete='new-password' + /> + + setConfirmPassword(e.target.value)} + autoComplete='new-password' + /> + + + + Change Password + + + + + ); }; diff --git a/apps/client/src/app/sceens/Settings/Settings.style.ts b/apps/client/src/app/sceens/Settings/Settings.style.ts new file mode 100644 index 0000000..b48d571 --- /dev/null +++ b/apps/client/src/app/sceens/Settings/Settings.style.ts @@ -0,0 +1,59 @@ +import { + Button, + FormControl, + RadioGroup, + TextField, + Typography, +} from '@mui/material'; +import { Box } from '@mui/system'; +import styled from '@emotion/styled'; + +export const StyledPageBox = styled(Box)` + display: flex; + flex-direction: column; + align-items: center; + margin-bottom: 50px; +`; +export const StyledSectionBox = styled(Box)` + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + width: 90%; +`; +export const StyledMainHeader = styled(Typography)` + margin: 10px 0; +`; +export const StyledSecondHeader = styled(Typography)` + align-self: start; + margin-bottom: 10px; +`; +export const StyledRadioBox = styled(Box)` + align-self: start; + margin-left: 30px; +`; +export const StyledRadioGroup = styled(RadioGroup)` + display: flex; + flex-direction: row; +`; +export const StyledTextField = styled(TextField)` + width: 100%; + margin-bottom: 10px; +`; +export const StyledMarginBox = styled(Box)` + margin-bottom: 10px; +`; +export const StyledHalfWidth = styled(FormControl)` + width: 50%; +`; +export const StyledFullWidth = styled(FormControl)` + width: 100%; + margin-bottom: 10px; +`; +export const StyledButtonDelete = styled(Button)` + width: 100%; + margin-bottom: 10px; +`; +export const StyledButtonSave = styled(Button)` + width: 50%; +`; diff --git a/apps/client/src/app/sceens/Settings/Settings.tsx b/apps/client/src/app/sceens/Settings/Settings.tsx index 0381375..d2d778a 100644 --- a/apps/client/src/app/sceens/Settings/Settings.tsx +++ b/apps/client/src/app/sceens/Settings/Settings.tsx @@ -1,3 +1,210 @@ +import { + FormControlLabel, + FormHelperText, + InputAdornment, + OutlinedInput, + Radio, +} from '@mui/material'; +import { Box } from '@mui/system'; +import { + StyledTextField, + StyledHalfWidth, + StyledMainHeader, + StyledMarginBox, + StyledPageBox, + StyledRadioBox, + StyledRadioGroup, + StyledSecondHeader, + StyledSectionBox, + StyledFullWidth, + StyledButtonDelete, + StyledButtonSave, +} from './Settings.style'; + export const Settings = () => { - return
settings
; + return ( + + + Settings + + Profile + + + + } + label='Female' + /> + } + label='Male' + /> + + + + + + + + + kg + + } + /> + + Weight + + + + + + cm + + } + /> + + Height + + + + + + Daily goals + + + + kcal + } + /> + + Calorie needs + + + + + + + g + + } + /> + + Proteins + + + + + + % + + } + /> + + Proteins + + + + + + + + g + + } + /> + + Fats + + + + + + % + + } + /> + + Fats + + + + + + + + g + + } + /> + + Carbs + + + + + + % + + } + /> + + Carbs + + + + + + Account information + + + + + + Delete account + + + Save + + + + ); };