) => ({
choices_count: t('cc.validation.choices_count').toString(),
required: t('cc.validation.required').toString(),
min_length: t('cc.validation.min_length').toString(),
+ min_choices_count: t('cc.validation.min_choices_count').toString(),
+ at_least_one: t('cc.validation.at_least_one').toString(),
},
})
diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json
index 7278887..63c7ac9 100644
--- a/src/i18n/locales/ca.json
+++ b/src/i18n/locales/ca.json
@@ -70,7 +70,9 @@
"validation": {
"choices_count": "Has de seleccionar {{ count }} opcions",
"min_length": "Aquest camp ha de tenir com a mínim {{ min }} caràcters",
- "required": "Aquest camp és obligatori"
+ "required": "Aquest camp és obligatori",
+ "min_choices_count": "Selecciona un mínim de {{ count }} opcions",
+ "at_least_one": "Has de seleccionar almenys una opció"
},
"vote": {
"abstain": "Abstenció",
@@ -78,7 +80,9 @@
"button_update": "Torna a enviar el vot",
"confirm": "Confirma les teves seleccions:",
"sign": "Signa abans de votar",
+ "not_able_to_vote": "No pots votar en aquest procés",
"voted_description": "Per verificar el teu vot, pots utilitzar aquesta identificació única: {{ id }}",
+ "voted_description_multielection": "Per verificar el teu vot, pots utilitzar aquestes identificacions úniques: {{ ids }}",
"voted_title": "El teu vot s'ha registrat amb èxit!"
}
},
@@ -183,7 +187,9 @@
"success_modal": {
"btn": "Finalitzar",
"text": "El teu vot ha estat emès i emmagatzemat de forma segura a la cadena de blocs de Vocdoni. Pots comprovar-ho aquí.
La democràcia és important, la pots compartir amb la teva comunitat i amics:
",
- "title": "Vot emès correctament!"
+ "title": "Vot emès correctament!",
+ "multi_election_text": "El teu vot ha estat emès i emmagatzemat de forma segura a la cadena de blocs de Vocdoni. Comprovants de vot:
",
+ "multi_election_share": "La democràcia és important, la pots compartir amb la teva comunitat i amics:
"
},
"total_census_size": "{{maxCensusSize}} electors permesos de {{censusSize}} totals en el cens",
"total_census_size_tooltip": "El nombre màxim d'electors permesos està limitat a {{maxCensusSize}} d'un cens de {{censusSize}} ({{percent}}% del total). Només els primers {{maxCensusSize}} electors poden votar.",
diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json
index f5f5157..b64f0df 100644
--- a/src/i18n/locales/es.json
+++ b/src/i18n/locales/es.json
@@ -70,7 +70,9 @@
"validation": {
"choices_count": "Debes seleccionar {{ count }} opciones",
"min_length": "Este campo debe tener al menos {{ min }} caracteres",
- "required": "Este campo es obligatorio"
+ "required": "Este campo es obligatorio",
+ "min_choices_count": "Selecciona un minimo de {{ count }} opciones",
+ "at_least_one": "Tienes q seleccionar al menos una opción"
},
"vote": {
"abstain": "Abstenerse",
@@ -78,7 +80,9 @@
"button_update": "Reenviar voto",
"confirm": "Confirma tus selecciones:",
"sign": "Firma antes de votar",
+ "not_able_to_vote": "No puedes votar en este proceso",
"voted_description": "Para verificar tu voto, puedes utilizar este identificador único: {{ id }}",
+ "voted_description_multielection": "Para verificar tu voto, puedes utilizar estos identificadores únicos: {{ ids }}",
"voted_title": "¡Tu voto se ha registrado con éxito!"
}
},
@@ -183,7 +187,9 @@
"success_modal": {
"btn": "Finalizar",
"text": "Tu voto ha sido emitido y almacenado de forma segura en la cadena de bloques de Vocdoni. Puedes comprobarlo aquí.
La democracia es importante, puedes compartirla con tu comunidad y amigos:
",
- "title": "Voto emitido correctamente!"
+ "title": "Voto emitido correctamente!",
+ "multi_election_text": "Tu voto ha sido emitido y almacenado de forma segura en la cadena de bloques de Vocdoni. Comprobantes de voto:
",
+ "multi_election_share": "La democracia es importante, puedes compartirla con tu comunidad y amigos:
"
},
"total_census_size": "{{maxCensusSize}} votantes permitidos de {{censusSize}} totales en el censo",
"total_census_size_tooltip": "El número máximo de votantes permitidos está limitado a {{maxCensusSize}} de un censo de {{censusSize}} ({{percent}}% del total). Solo los primeros {{maxCensusSize}} votantes pueden votar.",
diff --git a/src/theme/components/Questions.ts b/src/theme/components/Questions.ts
index b66e077..75961e3 100644
--- a/src/theme/components/Questions.ts
+++ b/src/theme/components/Questions.ts
@@ -1,6 +1,6 @@
+import checkIcon from '/assets/check-icon.png'
import { createMultiStyleConfigHelpers } from '@chakra-ui/react'
import { questionsAnatomy } from '@vocdoni/chakra-components'
-import checkIcon from '/assets/check-icon.png'
const { defineMultiStyleConfig, definePartsStyle } = createMultiStyleConfigHelpers(questionsAnatomy)
@@ -32,6 +32,8 @@ const baseStyle = definePartsStyle({
alertTitle: {
fontSize: 'lg',
mb: 3,
+ whiteSpace: 'normal',
+ overflowWrap: 'break-word',
},
alertDescription: {
@@ -42,6 +44,14 @@ const baseStyle = definePartsStyle({
alignItems: { md: 'center' },
whiteSpace: { base: 'pre-wrap', lg2: 'nowrap' },
},
+ alertDescriptionWrapper: {
+ display: 'flex',
+ gap: 2,
+ flexDirection: 'column',
+ justifyContent: 'center',
+ alignItems: { md: 'center' },
+ whiteSpace: { base: 'pre-wrap', lg2: 'nowrap' },
+ },
alertLink: {
display: 'block',
@@ -62,11 +72,9 @@ const baseStyle = definePartsStyle({
},
wrapper: {
- '& > form': {
- display: 'flex',
- flexDirection: 'column',
- gap: 10,
- },
+ display: 'flex',
+ flexDirection: 'column',
+ gap: 10,
},
question: {
diff --git a/src/theme/components/SpreadSheet.ts b/src/theme/components/SpreadSheet.ts
index 3134ead..c94557c 100644
--- a/src/theme/components/SpreadSheet.ts
+++ b/src/theme/components/SpreadSheet.ts
@@ -5,14 +5,16 @@ const { defineMultiStyleConfig, definePartsStyle } = createMultiStyleConfigHelpe
const baseStyle = definePartsStyle({
button: {
- w: '100%',
+ w: '60%',
borderRadius: 30,
fontSize: { base: 'lg', xl: 'md' },
bgColor: 'process.aside.vote_btn_bg',
-
_hover: {
bgColor: 'process.aside.vote_btn_bg',
},
+ mb: 4,
+ py: 3,
+ height: '50px',
},
disconnect: {
diff --git a/src/util/rainbowkit.ts b/src/util/rainbowkit.ts
index d311fc7..a840a29 100644
--- a/src/util/rainbowkit.ts
+++ b/src/util/rainbowkit.ts
@@ -25,6 +25,7 @@ import {
export const config = getDefaultConfig({
appName: 'Vocdoni Voting Page',
projectId: 'b78ba61f132db687dc6ec6d61b7e34d5',
+ // @ts-ignore
chains: [
arbitrum,
avalanche,
diff --git a/src/util/wagmi-adapters.ts b/src/util/wagmi-adapters.ts
index d811b32..5533ecc 100644
--- a/src/util/wagmi-adapters.ts
+++ b/src/util/wagmi-adapters.ts
@@ -1,9 +1,16 @@
import { providers } from 'ethers'
import { useMemo } from 'react'
-import type { Account, Chain, Client, Transport } from 'viem'
+import type { Account, Chain } from 'viem'
import { Config, useConnectorClient } from 'wagmi'
+import { ExternalProvider, JsonRpcFetchFunc } from '@ethersproject/providers'
-export function clientToSigner(client: Client) {
+type CustomClient = {
+ transport: ExternalProvider | JsonRpcFetchFunc
+ chain: Chain
+ account: Account
+}
+
+export function clientToSigner(client: CustomClient) {
const { account, chain, transport } = client
const network = {
chainId: chain.id,
diff --git a/tsconfig.json b/tsconfig.json
index 0d54ff0..e5c34c6 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -8,7 +8,7 @@
"skipLibCheck": true,
"esModuleInterop": false,
"allowSyntheticDefaultImports": true,
- "strict": true,
+ "strict": false,
"forceConsistentCasingInFileNames": true,
"module": "ESNext",
"moduleResolution": "Node",