diff --git a/public/index.html b/public/index.html index 5f090e4..a582741 100644 --- a/public/index.html +++ b/public/index.html @@ -3,6 +3,9 @@ + + + Driven.t diff --git a/src/components/Dashboard/NavigationBar/index.js b/src/components/Dashboard/NavigationBar/index.js index 86a6da9..a7e75f7 100644 --- a/src/components/Dashboard/NavigationBar/index.js +++ b/src/components/Dashboard/NavigationBar/index.js @@ -29,28 +29,28 @@ export default function NavigationBar() { - + Pagamento - + Hotel - + Atividades - + Certificado diff --git a/src/components/Message.js b/src/components/Message.js new file mode 100644 index 0000000..22c693c --- /dev/null +++ b/src/components/Message.js @@ -0,0 +1,27 @@ +import styled from 'styled-components'; + +export default function Message({ text }) { + return ( + + {text} + + ); +} + +const Container = styled.div` + height: 85%; + width: 100%; + + display: flex; + align-items: center; + justify-content: center; +`; + +const Text = styled.p` + font-family: 'Roboto', sans-serif; + max-width: 388px; + text-align: center; + font-size: 20px; + font-weight: 400; + color: #8E8E8E; +`; diff --git a/src/components/PersonalInformationForm/index.js b/src/components/PersonalInformationForm/index.js index 97eb837..c6b3a83 100644 --- a/src/components/PersonalInformationForm/index.js +++ b/src/components/PersonalInformationForm/index.js @@ -22,6 +22,7 @@ import { InputWrapper } from './InputWrapper'; import { ErrorMsg } from './ErrorMsg'; import { ufList } from './ufList'; import FormValidations from './FormValidations'; +import { useNavigate } from 'react-router'; dayjs.extend(CustomParseFormat); @@ -30,6 +31,7 @@ export default function PersonalInformationForm() { const { getCep } = useCep(); const { enrollment } = useEnrollment(); const { saveEnrollmentLoading, saveEnrollment } = useSaveEnrollment(); + const navigate = useNavigate(); const { handleSubmit, @@ -45,7 +47,7 @@ export default function PersonalInformationForm() { const newData = { name: data.name, cpf: data.cpf.replaceAll('.', '').replaceAll('-', ''), - birthday: dayjs(data.birthday).toISOString(), + birthday: await dayjs(data.birthday).toISOString(), address: { cep: data.cep, street: data.street, @@ -60,6 +62,7 @@ export default function PersonalInformationForm() { try { await saveEnrollment(newData); + navigate('/dashboard/payment'); toast('Informações salvas com sucesso!'); } catch (err) { toast('Não foi possível salvar suas informações!'); diff --git a/src/components/TicketAndPaymentForm/ButtonOption.js b/src/components/TicketAndPaymentForm/ButtonOption.js new file mode 100644 index 0000000..88cbeef --- /dev/null +++ b/src/components/TicketAndPaymentForm/ButtonOption.js @@ -0,0 +1,47 @@ +import styled from 'styled-components'; + +export default function ButtonOption({ size, height, text, value, selected, setSelected, type }) { + return ( + { + selected[type] = text; + setSelected({ ...selected }); + } + } + > + {text} +

{value}

+
+ ); +} + +const ClickButton = styled.div` + width: ${({ size }) => size}px; + height: ${({ size, height }) => (height)? height : size}px; + + border-radius: 20px; + ${({ text, selected, type }) => (selected[type] === text)? + 'background-color: #FFEED2;': + 'border: 1px solid #CECECE;' +} + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + gap: 3px; + + font-family: 'Roboto', sans-serif; + font-size: 14px; + font-weight: 400; + color: #8E8E8E; + + span { + font-size: 16px; + color: #454545; + } + + &:hover{ + cursor: pointer; + } +`; + diff --git a/src/components/TicketAndPaymentForm/index.js b/src/components/TicketAndPaymentForm/index.js new file mode 100644 index 0000000..b17bbfa --- /dev/null +++ b/src/components/TicketAndPaymentForm/index.js @@ -0,0 +1,88 @@ +import styled from 'styled-components'; +import Typography from '@material-ui/core/Typography'; +import Message from '../Message'; +import useEnrollment from '../../hooks/api/useEnrollment'; +import ButtonOption from './ButtonOption'; +import { useState } from 'react'; + +export default function TicketAndPaymentForm() { + const { enrollment } = useEnrollment(); + + const [selected, setSelected] = useState({ + modality: '', + hotel: '' + }); + + return ( + + Ingresso e pagamento + {(enrollment)? + + Primeiro, escolha sua modalidade de ingresso + + + + + Ótimo! Agora escolha sua modalidade de hospedagem + + : + } + + ); +} + +const Container = styled.div` + width: 100%; + height: 100%; + + display: flex; + flex-direction: column; + align-items: start; + gap: 37px; +`; + +const TicketForm = styled.div` + width: 100%; + + display: flex; + flex-direction: column; + align-items: start; + gap:17px; +`; + +const Options = styled.div` + width: 100%; + + display: flex; + justify-content: flex-start; + gap: 24px; + + margin-bottom: 45px; +`; + +const StyledTypography = styled(Typography)` + margin-bottom: 20px!important; +`; + +const StyleLabel = styled.p` + font-family: 'Roboto', sans-serif; + font-size: 20px; + font-weight: 400; + color: #8E8E8E; +`; diff --git a/src/hooks/useForm.js b/src/hooks/useForm.js index da47dd2..e76029c 100644 --- a/src/hooks/useForm.js +++ b/src/hooks/useForm.js @@ -15,6 +15,7 @@ export const useForm = (options) => { const customHandleChange = (key, sanitizeFn) => (inputValue) => { const value = sanitizeFn ? sanitizeFn(inputValue) : inputValue; + setData({ ...data, [key]: value, diff --git a/src/pages/Dashboard/Payment/index.js b/src/pages/Dashboard/Payment/index.js index 1046e22..70aa332 100644 --- a/src/pages/Dashboard/Payment/index.js +++ b/src/pages/Dashboard/Payment/index.js @@ -1,3 +1,8 @@ +import TicketAndPaymentForm from '../../../components/TicketAndPaymentForm'; + export default function Payment() { - return 'Pagamento: Em breve!'; + return ( + + ); } + diff --git a/src/pages/Dashboard/index.js b/src/pages/Dashboard/index.js index 7e9dff6..9ff26b1 100644 --- a/src/pages/Dashboard/index.js +++ b/src/pages/Dashboard/index.js @@ -10,11 +10,10 @@ import DashboardLayout from '../../layouts/Dashboard'; export default function Dashboard() { const { eventInfo } = useContext(EventInfoContext); - + return ( -