diff --git a/src/components/Process/Header.tsx b/src/components/Process/Header.tsx index 41e8de8..5f09261 100644 --- a/src/components/Process/Header.tsx +++ b/src/components/Process/Header.tsx @@ -60,7 +60,7 @@ const ProcessHeader = () => { h1: , }} /> - {!voted && Tria individualment els candidats que vols votar, o bé, vota en blanc.} + {!voted && {t('process.helper_candidates')}} diff --git a/src/components/Process/View.tsx b/src/components/Process/View.tsx index 9374b54..c3656c8 100644 --- a/src/components/Process/View.tsx +++ b/src/components/Process/View.tsx @@ -1,16 +1,24 @@ -import { Box, Link, Text } from '@chakra-ui/react' +import { Box, Link, Modal, ModalBody, ModalContent, ModalOverlay, Spinner, Text, VStack } from '@chakra-ui/react' import { Wallet } from '@ethersproject/wallet' import { QuestionsFormProvider } from '@vocdoni/chakra-components' import { useClient, useElection } from '@vocdoni/react-providers' import { ArchivedElection, VocdoniSDKClient } from '@vocdoni/sdk' import { useEffect } from 'react' +import { Trans, useTranslation } from 'react-i18next' import { ConfirmVoteModal } from './ConfirmVoteModal' import Header from './Header' import { Questions } from './Questions' import { SuccessVoteModal } from './SuccessVoteModal' export const ProcessView = () => { - const { connected, election, client: electionClient, setClient: setElectionClient, voted } = useElection() + const { + connected, + election, + client: electionClient, + setClient: setElectionClient, + voted, + loading: { voting }, + } = useElection() const { env, setClient, client, setSigner } = useClient() const shouldRender = !(election instanceof ArchivedElection) @@ -65,21 +73,46 @@ export const ProcessView = () => { {voted && ( - Ajuda'ns a conèixer-te millor!{' '} - - respon aquestes preguntes - + , + }} + /> - Inscriu-te a l'Assemblea General de Valls{' '} - - aquí - + , + }} + /> )} + ) } +const VotingVoteModal = () => { + const { t } = useTranslation() + const { + loading: { voting }, + } = useElection() + + return ( + {}}> + + + + + + + {t('process.voting')} + + + + ) +} diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json index 5f43969..2972aed 100644 --- a/src/i18n/locales/ca.json +++ b/src/i18n/locales/ca.json @@ -76,7 +76,7 @@ "confirm": "Confirma les teves seleccions:", "sign": "Signa abans de votar", "voted_description": "Per verificar el teu vot, pots utilitzar aquesta identificació única: {{ id }}", - "voted_title": "El teu vot ha estat registrat correctament. Els resultats electorals es coneixeran el 28 de juny durant l’Assemblea General a Valls." + "voted_title": "Els resultats electorals es coneixeran el 28 de juny durant l’Assemblea General a Valls." } }, "copy": { @@ -107,8 +107,7 @@ }, "menu": { "burger_aria_label": "menú d'usuari", - "connect": "Connectar", - "logout": "Tancar sessió" + "connect": "Connectar" }, "process": { "census_strategies": { @@ -136,21 +135,24 @@ "one_of_them": "(Almenys un d'ells)" }, "helper": "Un cop completat, recordeu prémer el botó “Finalitzar la votació” que es troba al final d’aquesta pàgina i confirmeu l’elecció.", + "helper_candidates": "Tria individualment els candidats que vols votar, o bé, vota en blanc.", "helper_error_one": "Has de contestar totes les votacions per poder finalitzar el procés. N'has respost {{ count }} de {{ count2 }}", "helper_error_many": "Has de contestar totes les votacions per poder finalitzar el procés. N'has respost {{ count }} de {{ count2 }}", "helper_error_other": "Has de contestar totes les votacions per poder finalitzar el procés. N'has respost {{ count }} de {{ count2 }}", "is_invalid": "Aquest procés té dades no vàlides i per tant no pot carregar-se", + "mark_all": "Votar tota la llista Òmnium 2026", + "omnium_link": { + "assembly": "Inscriu-te a l'Assemblea General de Valls aquí", + "you_know": "Ajuda'ns a conèixer-te millor! respon aquestes preguntes" + }, "share_title": "Comparteix a {{ network }}", "spreadsheet": { "confirm": { "abstain_count_one": "", "abstain_count_many": "", "abstain_count_other": "", - "blank_vote": "", - "header": "Confirma el teu vot", "description": "Estas a un pas de finalitzar la teva votació. Aquestes són les opcions que has triat:", - "option": "Opció: {{ answer }}", - "options": "Selecció: {{ answers }}", + "header": "Confirma el teu vot", "question": "{{ question }}: {{ answer }}" } }, @@ -162,11 +164,11 @@ "upcoming": "Previst" }, "success_modal": { - "btn": "Finalitzar", "text": "

El teu vot ha estat registrat correctament

Ajuda'ns a conèixer-te millor!

", "title": "Vot emès correctament!" }, - "voters": "Votants" + "voters": "Votants", + "voting": "Estem processant el teu vot. Aquest procés trigarà uns segons. Si us plau, no actualitzis aquesta pàgina." }, "process_actions": { "cancel": "Cancel·la", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index ad86a61..9942553 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -107,8 +107,7 @@ }, "menu": { "burger_aria_label": "menú de usuario", - "connect": "Conectar", - "logout": "Cerrar sesión" + "connect": "Conectar" }, "process": { "census_strategies": { @@ -136,20 +135,24 @@ "one_of_them": "(Al menos uno de ellos)" }, "helper": "Una vez completado, recuerden presionar el botón 'Finalizar la votación' que se encuentra al final de esta página y confirmar la elección.", + "helper_candidates": "", "helper_error_one": "Has de contestar todas las votaciones para poder finalizar el proceso. Has respondido {{count}} de {{count2}}.", "helper_error_many": "Has de contestar todas las votaciones para poder finalizar el proceso. Has respondido {{count}} de {{count2}}.", "helper_error_other": "Has de contestar todas las votaciones para poder finalizar el proceso. Has respondido {{count}} de {{count2}}.", "is_invalid": "Este proceso tiene datos no válidos y no se puede cargar", + "mark_all": "Votar tota la llista Òmnium 2026", + "omnium_link": { + "assembly": "", + "you_know": "" + }, "share_title": "Compartir en {{ network }}", "spreadsheet": { "confirm": { "abstain_count_one": "", "abstain_count_many": "", "abstain_count_other": "", - "blank_vote": "", "description": "Confrima tu voto", - "option": "Opción {{ number }}: {{ answer }}", - "options": "Selección: {{ answers }}", + "header": "", "question": "Pregunta {{ number }}: {{ answer }}" } }, @@ -161,11 +164,11 @@ "upcoming": "Próximo" }, "success_modal": { - "btn": "Finalizar", "text": "

Gracias por tu voto. Vuelve a la página principal para seguir y consultar los resultados finales cuando estén disponibles.

", "title": "Voto emitido correctamente!" }, - "voters": "Votantes" + "voters": "Votantes", + "voting": "" }, "process_actions": { "cancel": "Cancelar proceso",