import Image from 'next/image'; import {useTranslation} from 'next-i18next'; import {CSSProperties, useEffect, useState} from 'react'; import {faArrowRight} from '@fortawesome/free-solid-svg-icons'; import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; import Button from '@components/Button'; import ButtonCopy from '@components/ButtonCopy'; import Share from '@components/Share'; import ErrorMessage from '@components/Error'; import AdminModalEmail from '@components/admin/AdminModalEmail'; import {ElectionCreatedPayload, ErrorPayload} from '@services/api'; import {AppTypes, useAppContext} from '@services/context'; import {getUrl, RouteTypes} from '@services/routes'; import urne from '../public/urne.svg'; import star from '../public/star.svg'; import {Container} from 'reactstrap'; import {useRouter} from 'next/router'; import {getLocaleShort} from '@services/utils'; export interface WaitingBallotInterface { election?: ElectionCreatedPayload; error?: ErrorPayload; } interface InfoElectionInterface extends WaitingBallotInterface { display: string; } const InfoElection = ({election, error, display}: InfoElectionInterface) => { const {t} = useTranslation(); const router = useRouter(); const [modal, setModal] = useState(false); const toggleModal = () => setModal((m) => !m); if (!election) return null; const locale = getLocaleShort(router); const urlVote = getUrl(RouteTypes.VOTE, locale, election.ref); const urlResults = getUrl(RouteTypes.RESULTS, locale, election.ref); return (
{error && error.detail ? ( {error.detail[0].msg} ) : null} {election && election.ref ? ( <>

{t('admin.success-election')}

{election && election.restricted ? (
{t('admin.success-emails')}
) : (
)}
) : null}
); }; export default ({election, error}: WaitingBallotInterface) => { const [_, dispatch] = useAppContext(); const [urneProperties, setUrne] = useState({ width: 0, height: 0, marginBottom: 0, }); const [starProperties, setStar] = useState({ width: 0, height: 0, marginLeft: 100, marginBottom: 0, }); const [urneContainerProperties, setUrneContainer] = useState({ height: '100vh', }); const [electionProperties, setElection] = useState({ display: 'none', }); useEffect(() => { dispatch({type: AppTypes.FULLPAGE, value: true}); setUrne((urne) => ({ ...urne, width: 300, height: 300, })); const timer = setTimeout(() => { setStar((star) => ({ ...star, width: 150, height: 150, marginLeft: 150, marginBottom: 300, })); }, 1000); const timer2 = setTimeout(() => { // setElection({display: "block"}); setUrneContainer((urneContainer) => ({ ...urneContainer, height: '50vh', })); setStar((star) => ({ ...star, width: 100, height: 100, marginLeft: 100, marginBottom: 200, })); setUrne((urne) => ({ ...urne, width: 200, height: 200, })); }, 3000); const timer3 = setTimeout(() => { setElection({display: 'grid'}); }, 4500); return () => { clearTimeout(timer); clearTimeout(timer2); clearTimeout(timer3); }; }, []); return (
urne
urne
); };