diff --git a/CHANGELOG.md b/CHANGELOG.md index d4e975c9d..5634c7830 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6773,4 +6773,4 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - added onclick to viewAll button [`baa258a`](https://github.com/RedTurtle/design-volto-theme/commit/baa258a983f9619b18f9c8d9fb078fe9b17f338b) - todo [`7814f01`](https://github.com/RedTurtle/design-volto-theme/commit/7814f01e5dd883c83bca4ecf53425ada9942d9ab) - updated gitignore with .history [`e73a28c`](https://github.com/RedTurtle/design-volto-theme/commit/e73a28c94176a172219c1a740a97047b5e2fa400) -- Added nvmrc [`fd54a3c`](https://github.com/RedTurtle/design-volto-theme/commit/fd54a3cbcf8df22997f036919dfafda870f85db7) \ No newline at end of file +- Added nvmrc [`fd54a3c`](https://github.com/RedTurtle/design-volto-theme/commit/fd54a3cbcf8df22997f036919dfafda870f85db7) diff --git a/RELEASE.md b/RELEASE.md index eb2125d83..d1842d100 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -43,12 +43,28 @@ ## Versione X.X.X (dd/mm/yyyy) +### Migliorie + +- Nel blocco form è stata aggiunta una legenda per i campi obbligatori. + +### Novità + +- Aggiornato il plugin del blocco Form, adesso si ha la possibilità di aggiungere un pulsante per resettare i campi e nella sidebar è presente un nuovo campo per creare un messaggio personalizzato dopo l'invio della form, i campi di tipo: testo, email, data e textarea hanno un identificativo che può essere utilizzato per restituire il valore di quei campi nel messaggio personalizzato. + ### Fix - L'icona per aprire il menu in mobile è ora visibile anche quando l'header del sito è bianca. - La descrizione nelle card per i punti di contatto non mostrano più tutte le iniziali in maiuscolo. - Il colore dei link nel menu mobile è ora accessibile per tutti i temi. - Titolo e descrizione sistemati su blocco icone. Adesso quando il loro contenuto è cancellato non resta lo spazio vuoto sopra le icone. +- Migliorata l'accessibilità della sezione dedicata al feedback utente per tutti i contenuti del sito +- Rimosso il title dall'immagine di apertura dei contenuti +- Rimosso attributo title dall'immagine delle card: card con immagine, persona, blocco link completo, contenuto in evidenza, gallery a griglia, in evidenza +- Migliorata l'accessibilità del menu in versione mobile. +- Il layout dei campi di input "in errore" del blocco Form è stato uniformato. +- La tendina delle select nel blocco Form non si sovrappone più ai campi sottostanti. +- Sistemato alert di errore nel blocco Form che nascondeva il form quando un campo non era valido, ora continua a visualizzarsi anche la form. +- Migliorato il testo alternativo per il logo NextGenerationEU nel footer. ## Versione 11.5.1 (19/02/2024) @@ -65,7 +81,6 @@ ### Fix - Risolto un problema riguardante la visualizzazione delle date nelle card che rappresentano un CT Evento nei vari listati nel caso in cui l'evento si sviluppi su anni diversi - - Risolto un problema di visualizzazione per la sezione Date e Orari nel CT Evento quando l'evento si sviluppa su anni diversi, ora viene mostrato anche l'anno se si rientra in questa casistica - Nel blocco elenco, sono stati sistemati i filtri per percorso quando si clicca sul bottone configurato. diff --git a/locales/de/LC_MESSAGES/volto.po b/locales/de/LC_MESSAGES/volto.po index 11169f419..c2ed42f41 100644 --- a/locales/de/LC_MESSAGES/volto.po +++ b/locales/de/LC_MESSAGES/volto.po @@ -2071,6 +2071,11 @@ msgstr "" msgid "feedback_sent" msgstr "" +#: components/ItaliaTheme/CustomerSatisfaction/FeedbackForm +# defaultMessage: Valuta da 1 a 5 stelle +msgid "feedback_stars" +msgstr "" + #: components/ItaliaTheme/CustomerSatisfaction/FeedbackForm # defaultMessage: I ran into technical problems msgid "feedback_technical_problems" @@ -2115,6 +2120,16 @@ msgstr "" msgid "fine_termine" msgstr "" +#: overrideTranslations +# defaultMessage: Annulla +msgid "form_default_cancel_label" +msgstr "" + +#: overrideTranslations +# defaultMessage: Ricomincia +msgid "form_reset" +msgstr "" + #: components/ItaliaTheme/View/PersonaView/PersonaRuolo # defaultMessage: Foto dell'attività politica msgid "foto_attivita_politica" @@ -2275,6 +2290,11 @@ msgstr "" msgid "legami_strutture_figlie" msgstr "" +#: overrideTranslations +# defaultMessage: I campi contrassegnati da (*) sono obbligatori. +msgid "legend_required" +msgstr "" + #: components/ItaliaTheme/Blocks/SearchSections/SideBar # defaultMessage: Collegamento msgid "link" diff --git a/locales/en/LC_MESSAGES/volto.po b/locales/en/LC_MESSAGES/volto.po index d7e1395e1..34241408e 100644 --- a/locales/en/LC_MESSAGES/volto.po +++ b/locales/en/LC_MESSAGES/volto.po @@ -2056,6 +2056,11 @@ msgstr "" msgid "feedback_sent" msgstr "" +#: components/ItaliaTheme/CustomerSatisfaction/FeedbackForm +# defaultMessage: Valuta da 1 a 5 stelle +msgid "feedback_stars" +msgstr "Rate from 1 to 5 stars" + #: components/ItaliaTheme/CustomerSatisfaction/FeedbackForm # defaultMessage: I ran into technical problems msgid "feedback_technical_problems" @@ -2100,6 +2105,16 @@ msgstr "Search" msgid "fine_termine" msgstr "End of term" +#: overrideTranslations +# defaultMessage: Annulla +msgid "form_default_cancel_label" +msgstr "Cancel" + +#: overrideTranslations +# defaultMessage: Ricomincia +msgid "form_reset" +msgstr "Restart" + #: components/ItaliaTheme/View/PersonaView/PersonaRuolo # defaultMessage: Foto dell'attività politica msgid "foto_attivita_politica" @@ -2260,6 +2275,11 @@ msgstr "Association service or office" msgid "legami_strutture_figlie" msgstr "Internal services or offices" +#: overrideTranslations +# defaultMessage: I campi contrassegnati da (*) sono obbligatori. +msgid "legend_required" +msgstr "Fields marked with (*) are required." + #: components/ItaliaTheme/Blocks/SearchSections/SideBar # defaultMessage: Collegamento msgid "link" diff --git a/locales/es/LC_MESSAGES/volto.po b/locales/es/LC_MESSAGES/volto.po index aeeadfd4a..342b7f0ff 100644 --- a/locales/es/LC_MESSAGES/volto.po +++ b/locales/es/LC_MESSAGES/volto.po @@ -2065,6 +2065,11 @@ msgstr "" msgid "feedback_sent" msgstr "" +#: components/ItaliaTheme/CustomerSatisfaction/FeedbackForm +# defaultMessage: Valuta da 1 a 5 stelle +msgid "feedback_stars" +msgstr "" + #: components/ItaliaTheme/CustomerSatisfaction/FeedbackForm # defaultMessage: I ran into technical problems msgid "feedback_technical_problems" @@ -2109,6 +2114,16 @@ msgstr "Buscar" msgid "fine_termine" msgstr "Fin de los términos" +#: overrideTranslations +# defaultMessage: Annulla +msgid "form_default_cancel_label" +msgstr "" + +#: overrideTranslations +# defaultMessage: Ricomincia +msgid "form_reset" +msgstr "" + #: components/ItaliaTheme/View/PersonaView/PersonaRuolo # defaultMessage: Foto dell'attività politica msgid "foto_attivita_politica" @@ -2269,6 +2284,11 @@ msgstr "Servicio u oficina de la asociación" msgid "legami_strutture_figlie" msgstr "Servicios internos u oficinas" +#: overrideTranslations +# defaultMessage: I campi contrassegnati da (*) sono obbligatori. +msgid "legend_required" +msgstr "" + #: components/ItaliaTheme/Blocks/SearchSections/SideBar # defaultMessage: Collegamento msgid "link" diff --git a/locales/fr/LC_MESSAGES/volto.po b/locales/fr/LC_MESSAGES/volto.po index 742faab64..61c9a7bf9 100644 --- a/locales/fr/LC_MESSAGES/volto.po +++ b/locales/fr/LC_MESSAGES/volto.po @@ -2073,6 +2073,11 @@ msgstr "" msgid "feedback_sent" msgstr "" +#: components/ItaliaTheme/CustomerSatisfaction/FeedbackForm +# defaultMessage: Valuta da 1 a 5 stelle +msgid "feedback_stars" +msgstr "" + #: components/ItaliaTheme/CustomerSatisfaction/FeedbackForm # defaultMessage: I ran into technical problems msgid "feedback_technical_problems" @@ -2117,6 +2122,16 @@ msgstr "Rechercher" msgid "fine_termine" msgstr "Fin du mandat" +#: overrideTranslations +# defaultMessage: Annulla +msgid "form_default_cancel_label" +msgstr "" + +#: overrideTranslations +# defaultMessage: Ricomincia +msgid "form_reset" +msgstr "" + #: components/ItaliaTheme/View/PersonaView/PersonaRuolo # defaultMessage: Foto dell'attività politica msgid "foto_attivita_politica" @@ -2277,6 +2292,11 @@ msgstr "" msgid "legami_strutture_figlie" msgstr "" +#: overrideTranslations +# defaultMessage: I campi contrassegnati da (*) sono obbligatori. +msgid "legend_required" +msgstr "Les champs marqués d'une (*) sont obligatoires." + #: components/ItaliaTheme/Blocks/SearchSections/SideBar # defaultMessage: Collegamento msgid "link" diff --git a/locales/it/LC_MESSAGES/volto.po b/locales/it/LC_MESSAGES/volto.po index 66b703041..de8c40594 100644 --- a/locales/it/LC_MESSAGES/volto.po +++ b/locales/it/LC_MESSAGES/volto.po @@ -2056,6 +2056,11 @@ msgstr "Altro" msgid "feedback_sent" msgstr "Il tuo feedback è stato inviato!" +#: components/ItaliaTheme/CustomerSatisfaction/FeedbackForm +# defaultMessage: Valuta da 1 a 5 stelle +msgid "feedback_stars" +msgstr "" + #: components/ItaliaTheme/CustomerSatisfaction/FeedbackForm # defaultMessage: I ran into technical problems msgid "feedback_technical_problems" @@ -2100,6 +2105,16 @@ msgstr "Cerca" msgid "fine_termine" msgstr "Fine termine" +#: overrideTranslations +# defaultMessage: Annulla +msgid "form_default_cancel_label" +msgstr "Annulla" + +#: overrideTranslations +# defaultMessage: Ricomincia +msgid "form_reset" +msgstr "Ricomincia" + #: components/ItaliaTheme/View/PersonaView/PersonaRuolo # defaultMessage: Foto dell'attività politica msgid "foto_attivita_politica" @@ -2260,6 +2275,11 @@ msgstr "Unità organizzativa genitore" msgid "legami_strutture_figlie" msgstr "Servizi o uffici interni" +#: overrideTranslations +# defaultMessage: I campi contrassegnati da (*) sono obbligatori. +msgid "legend_required" +msgstr "I campi contrassegnati da (*) sono obbligatori." + #: components/ItaliaTheme/Blocks/SearchSections/SideBar # defaultMessage: Collegamento msgid "link" diff --git a/locales/volto.pot b/locales/volto.pot index 66dd1eaaa..a91fa9b7f 100644 --- a/locales/volto.pot +++ b/locales/volto.pot @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Plone\n" -"POT-Creation-Date: 2024-02-19T11:08:36.048Z\n" +"POT-Creation-Date: 2024-02-29T16:36:05.160Z\n" "Last-Translator: Plone i18n \n" "Language-Team: Plone i18n \n" "MIME-Version: 1.0\n" @@ -2058,6 +2058,11 @@ msgstr "" msgid "feedback_sent" msgstr "" +#: components/ItaliaTheme/CustomerSatisfaction/FeedbackForm +# defaultMessage: Valuta da 1 a 5 stelle +msgid "feedback_stars" +msgstr "" + #: components/ItaliaTheme/CustomerSatisfaction/FeedbackForm # defaultMessage: I ran into technical problems msgid "feedback_technical_problems" @@ -2102,6 +2107,16 @@ msgstr "" msgid "fine_termine" msgstr "" +#: overrideTranslations +# defaultMessage: Annulla +msgid "form_default_cancel_label" +msgstr "" + +#: overrideTranslations +# defaultMessage: Ricomincia +msgid "form_reset" +msgstr "" + #: components/ItaliaTheme/View/PersonaView/PersonaRuolo # defaultMessage: Foto dell'attività politica msgid "foto_attivita_politica" @@ -2262,6 +2277,11 @@ msgstr "" msgid "legami_strutture_figlie" msgstr "" +#: overrideTranslations +# defaultMessage: I campi contrassegnati da (*) sono obbligatori. +msgid "legend_required" +msgstr "" + #: components/ItaliaTheme/Blocks/SearchSections/SideBar # defaultMessage: Collegamento msgid "link" diff --git a/package.json b/package.json index 1cffd6c7f..f8a0fac41 100644 --- a/package.json +++ b/package.json @@ -146,7 +146,7 @@ "volto-dropdownmenu": "4.1.1", "volto-editablefooter": "5.0.3", "volto-feedback": "0.2.0", - "volto-form-block": "3.1.0", + "volto-form-block": "3.3.1", "volto-gdpr-privacy": "2.1.1", "volto-google-analytics": "2.0.0", "volto-multilingual-widget": "3.0.0", diff --git a/src/components/ItaliaTheme/Blocks/Listing/CardWithImageTemplate.jsx b/src/components/ItaliaTheme/Blocks/Listing/CardWithImageTemplate.jsx index a85db4a65..bedd83a4b 100644 --- a/src/components/ItaliaTheme/Blocks/Listing/CardWithImageTemplate.jsx +++ b/src/components/ItaliaTheme/Blocks/Listing/CardWithImageTemplate.jsx @@ -93,7 +93,7 @@ const CardWithImageTemplate = (props) => { ) : null; - const image = ListingImage({ item }); + const image = ListingImage({ item, showTitleAttr: false }); const showImage = (index < imagesToShow || always_show_image) && image != null; diff --git a/src/components/ItaliaTheme/Blocks/Listing/Commons/ListingImage.jsx b/src/components/ItaliaTheme/Blocks/Listing/Commons/ListingImage.jsx index cda17063d..f9e128e7a 100644 --- a/src/components/ItaliaTheme/Blocks/Listing/Commons/ListingImage.jsx +++ b/src/components/ItaliaTheme/Blocks/Listing/Commons/ListingImage.jsx @@ -8,24 +8,27 @@ const ListingImage = ({ showDefault = false, className = 'listing-image', responsive = true, + showTitleAttr = true, sizes = '(max-width:320px) 200px, (max-width:425px) 300px, (max-width:767px) 500px, 410px', ...imageProps }) => { const Image = config.getComponent({ name: 'Image' }).component; - // photogallery needs to check for null image - // https://stackoverflow.com/questions/33136399/is-there-a-way-to-tell-if-reactelement-renders-null - const image = Image({ + let commonImageProps = { item, 'aria-hidden': true, alt: '', role: 'presentation', className, loading, - title: item.title, responsive, sizes, ...imageProps, - }); + }; + if (showTitleAttr) + commonImageProps = { ...commonImageProps, title: item.title }; + // photogallery needs to check for null image + // https://stackoverflow.com/questions/33136399/is-there-a-way-to-tell-if-reactelement-renders-null + const image = Image(commonImageProps); if (image === null) return showDefault ? : null; diff --git a/src/components/ItaliaTheme/Blocks/Listing/CompleteBlockLinksTemplate.jsx b/src/components/ItaliaTheme/Blocks/Listing/CompleteBlockLinksTemplate.jsx index 6934686e1..9a137d09c 100644 --- a/src/components/ItaliaTheme/Blocks/Listing/CompleteBlockLinksTemplate.jsx +++ b/src/components/ItaliaTheme/Blocks/Listing/CompleteBlockLinksTemplate.jsx @@ -56,7 +56,12 @@ const CompleteBlockLinksTemplate = (props) => { )} {items.map((item, index) => { - const image = ListingImage({ item, className: '', sizes: '60px' }); + const image = ListingImage({ + item, + className: '', + sizes: '60px', + showTitleAttr: false, + }); const BlockExtraTags = getComponentWithFallback({ name: 'BlockExtraTags', diff --git a/src/components/ItaliaTheme/Blocks/Listing/ContentInEvidenceTemplate.jsx b/src/components/ItaliaTheme/Blocks/Listing/ContentInEvidenceTemplate.jsx index 105d6f663..63002c741 100644 --- a/src/components/ItaliaTheme/Blocks/Listing/ContentInEvidenceTemplate.jsx +++ b/src/components/ItaliaTheme/Blocks/Listing/ContentInEvidenceTemplate.jsx @@ -70,6 +70,7 @@ const ContentInEvidenceTemplate = (props) => { className: 'item-image', loading: 'eager', sizes: '(max-width:425px) 400px, (max-width:767px) 520px, 650px', + showTitleAttr: false, }); const icon = getItemIcon(item); const BlockExtraTags = getComponentWithFallback({ diff --git a/src/components/ItaliaTheme/Blocks/Listing/GridGalleryTemplate.jsx b/src/components/ItaliaTheme/Blocks/Listing/GridGalleryTemplate.jsx index 1e21911ad..0b311f313 100644 --- a/src/components/ItaliaTheme/Blocks/Listing/GridGalleryTemplate.jsx +++ b/src/components/ItaliaTheme/Blocks/Listing/GridGalleryTemplate.jsx @@ -58,6 +58,7 @@ const GridGalleryTemplate = ({ let image = ListingImage({ item, className: '', + showTitleAttr: false, }); let scale = null; if (index % 7 === 0 || index % 7 === 6 || index % 7 === 3) { diff --git a/src/components/ItaliaTheme/Blocks/Listing/InEvidenceTemplate.jsx b/src/components/ItaliaTheme/Blocks/Listing/InEvidenceTemplate.jsx index c67bfbb5b..869f1842b 100644 --- a/src/components/ItaliaTheme/Blocks/Listing/InEvidenceTemplate.jsx +++ b/src/components/ItaliaTheme/Blocks/Listing/InEvidenceTemplate.jsx @@ -89,6 +89,7 @@ const InEvidenceTemplate = (props) => { const image = ListingImage({ item, sizes: '(max-width:320px) 200px, 300px', + showTitleAttr: false, }); const category = getCategory(item, show_type, show_section, props); const topics = show_topics ? item.tassonomia_argomenti : null; diff --git a/src/components/ItaliaTheme/Cards/CardPersona.jsx b/src/components/ItaliaTheme/Cards/CardPersona.jsx index 922ce71d2..ac09a27b3 100644 --- a/src/components/ItaliaTheme/Cards/CardPersona.jsx +++ b/src/components/ItaliaTheme/Cards/CardPersona.jsx @@ -23,6 +23,7 @@ export const CardPersona = ({ const image = ListingImage({ item, sizes: '130px', + showTitleAttr: false, }); const hasImage = image !== null && showImage; diff --git a/src/components/ItaliaTheme/CustomerSatisfaction/FeedbackForm.jsx b/src/components/ItaliaTheme/CustomerSatisfaction/FeedbackForm.jsx index cbf73ecd1..6ab1b3741 100644 --- a/src/components/ItaliaTheme/CustomerSatisfaction/FeedbackForm.jsx +++ b/src/components/ItaliaTheme/CustomerSatisfaction/FeedbackForm.jsx @@ -1,4 +1,10 @@ -import React, { useState, useEffect, useCallback, useMemo } from 'react'; +import React, { + useState, + useEffect, + useLayoutEffect, + useCallback, + useMemo, +} from 'react'; import { useSelector, useDispatch } from 'react-redux'; import { useLocation } from 'react-router-dom'; import { useIntl, defineMessages } from 'react-intl'; @@ -9,7 +15,6 @@ import { Col, Spinner, Card, - Button, CardHeader, CardBody, } from 'design-react-kit'; @@ -25,7 +30,7 @@ import { import cx from 'classnames'; import AnswersStep from './Steps/AnswersStep'; import CommentsStep from './Steps/CommentsStep'; -import Rating from './Steps/Commons/Rating'; +import RTRating from './Steps/Commons/Rating'; import { PropTypes } from 'prop-types'; const messages = defineMessages({ @@ -111,6 +116,10 @@ const messages = defineMessages({ id: 'feedback_other_positive', defaultMessage: 'Other', }, + feedback: { + id: 'feedback_stars', + defaultMessage: 'Valuta da 1 a 5 stelle', + }, error: { id: 'feedback_error', defaultMessage: 'Error', @@ -134,12 +143,11 @@ const FeedbackForm = ({ contentType, pathname }) => { ? window.env.RAZZLE_HONEYPOT_FIELD : process.env.RAZZLE_HONEYPOT_FIELD; - const numberOfSteps = useMemo(() => getNumberOfSteps(), []); + const numberOfSteps = getNumberOfSteps(); const changeSatisfaction = (e) => { setSatisfaction(e); }; - const updateFormData = (field, value) => { if (field === 'comment') { if (value?.length > 200) setInvalidForm(true); @@ -154,12 +162,17 @@ const FeedbackForm = ({ contentType, pathname }) => { [field]: value, }); }; - const getFormFieldValue = (field) => formData?.[field] ?? undefined; - const nextStep = () => setStep(step + 1); + const nextStep = () => { + if (!invalidForm) setStep(step + 1); + }; - const prevStep = () => setStep(step - 1); + const prevStep = () => { + if (!invalidForm && step !== 0) { + setStep(step - 1); + } + }; useEffect(() => { setValidToken(null); @@ -171,6 +184,12 @@ const FeedbackForm = ({ contentType, pathname }) => { }, [path]); useEffect(() => { + const currentVote = getFormFieldValue('vote'); + if ( + (currentVote > threshold && satisfaction < threshold) || + (currentVote < threshold && satisfaction > threshold) + ) + updateFormData('answer', null); updateFormData('vote', satisfaction ?? null); setStep(0); // eslint-disable-next-line react-hooks/exhaustive-deps @@ -182,6 +201,25 @@ const FeedbackForm = ({ contentType, pathname }) => { // eslint-disable-next-line react-hooks/exhaustive-deps }, [fieldHoney]); + // Motivazioni del focus programmatico + // - su alcuni browser viene dichiarato "object replacement character" ai rerender di react + // che sono inevitabili mentre il focus rimane sul bottone ma non viene detto + // - replichiamo 1:1 il comportamento del secondo step, quando vai avanti hai autofocus sulla + // textarea per i commenti + // - essendo annunciato ora il titolo dello step, l'utente sr sa comunque benissimo dove si trova, + // anzi, il flow di compilazione del form kb+sr e' molto piu' agevole + useEffect(() => { + if (step === 0 && getFormFieldValue('answer')) { + const selectedAnswer = document.getElementById( + `${ + satisfaction > threshold ? 'positive' : 'negative' + }-${getFormFieldValue('answer')}`, + ); + selectedAnswer.focus(); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [step]); + const onVerifyCaptcha = useCallback( (token) => { if (satisfaction !== null && !validToken) { @@ -198,6 +236,7 @@ const FeedbackForm = ({ contentType, pathname }) => { }; const sendFormData = () => { + if (invalidForm) return; setStep(2); const data = { ...formData, @@ -220,7 +259,7 @@ const FeedbackForm = ({ contentType, pathname }) => { } return ( -
+
@@ -252,15 +291,31 @@ const FeedbackForm = ({ contentType, pathname }) => { : intl.formatMessage(messages.title)}
- threshold @@ -269,7 +324,7 @@ const FeedbackForm = ({ contentType, pathname }) => { } className="volto-feedback-rating mb-0" onChangeRating={changeSatisfaction} - legend=" " + legend={intl.formatMessage(messages.feedback)} wrapperClassName={'rating'} />
@@ -300,47 +355,61 @@ const FeedbackForm = ({ contentType, pathname }) => { />
- + + {step !== numberOfSteps - 1 && ( - + )} {step === numberOfSteps - 1 && ( - + )}
@@ -385,7 +454,7 @@ const FeedbackForm = ({ contentType, pathname }) => {
-
+ ); }; diff --git a/src/components/ItaliaTheme/CustomerSatisfaction/Steps/AnswersStep.jsx b/src/components/ItaliaTheme/CustomerSatisfaction/Steps/AnswersStep.jsx index a3c737172..bd37d7b9c 100644 --- a/src/components/ItaliaTheme/CustomerSatisfaction/Steps/AnswersStep.jsx +++ b/src/components/ItaliaTheme/CustomerSatisfaction/Steps/AnswersStep.jsx @@ -1,6 +1,6 @@ import React, { useState, useEffect, useMemo } from 'react'; import { usePrevious } from '@plone/volto/helpers'; -import { Form, FormGroup, Input, Label } from 'design-react-kit'; +import { Form, FormGroup, Label } from 'design-react-kit'; import { defineMessages } from 'react-intl'; import { FormHeader, @@ -76,6 +76,9 @@ const AnswersStep = ({ step={step + 1} totalSteps={totalSteps} className={'answers-header'} + hidden={ + userFeedback === null || userFeedback < threshold || step !== 0 + } />
@@ -85,14 +88,13 @@ const AnswersStep = ({ key={'positive-' + s} className="border-bottom border-light mb-4" > -