Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: date validity in Alert block #795

Merged
merged 17 commits into from
Oct 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions locales/de/LC_MESSAGES/volto.po
Original file line number Diff line number Diff line change
Expand Up @@ -744,6 +744,46 @@ msgstr ""
msgid "advandedSectionsFilters"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Pubblicazione attiva.
msgid "alert_activeDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Non visibile. C'è un errore sulle date: la data di scadenza è anteriore alla data d'inizio
msgid "alert_errorDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Non visibile. E' scaduto il {date}.
msgid "alert_expiredDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Non visibile. Verà pubblicato il {date}
msgid "alert_futureDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Scadrà il {date}
msgid "alert_willExpire"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/Sidebar
# defaultMessage: Periodo di visualizzazione
msgid "alertblock_dateTitle"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/Sidebar
# defaultMessage: Scadenza
msgid "alertblock_endDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/Sidebar
# defaultMessage: Inizio
msgid "alertblock_startDate"
msgstr ""

#: components/ItaliaTheme/Blocks/IconBlocks/Sidebar
# defaultMessage: Centrare i card
msgid "alignCards"
Expand Down
40 changes: 40 additions & 0 deletions locales/en/LC_MESSAGES/volto.po
Original file line number Diff line number Diff line change
Expand Up @@ -729,6 +729,46 @@ msgstr ""
msgid "advandedSectionsFilters"
msgstr "Go to advanced search by sections"

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Pubblicazione attiva.
msgid "alert_activeDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Non visibile. C'è un errore sulle date: la data di scadenza è anteriore alla data d'inizio
msgid "alert_errorDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Non visibile. E' scaduto il {date}.
msgid "alert_expiredDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Non visibile. Verà pubblicato il {date}
msgid "alert_futureDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Scadrà il {date}
msgid "alert_willExpire"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/Sidebar
# defaultMessage: Periodo di visualizzazione
msgid "alertblock_dateTitle"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/Sidebar
# defaultMessage: Scadenza
msgid "alertblock_endDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/Sidebar
# defaultMessage: Inizio
msgid "alertblock_startDate"
msgstr ""

#: components/ItaliaTheme/Blocks/IconBlocks/Sidebar
# defaultMessage: Centrare i card
msgid "alignCards"
Expand Down
40 changes: 40 additions & 0 deletions locales/es/LC_MESSAGES/volto.po
Original file line number Diff line number Diff line change
Expand Up @@ -738,6 +738,46 @@ msgstr ""
msgid "advandedSectionsFilters"
msgstr "Ir a búsqueda avanzada por secciones"

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Pubblicazione attiva.
msgid "alert_activeDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Non visibile. C'è un errore sulle date: la data di scadenza è anteriore alla data d'inizio
msgid "alert_errorDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Non visibile. E' scaduto il {date}.
msgid "alert_expiredDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Non visibile. Verà pubblicato il {date}
msgid "alert_futureDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Scadrà il {date}
msgid "alert_willExpire"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/Sidebar
# defaultMessage: Periodo di visualizzazione
msgid "alertblock_dateTitle"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/Sidebar
# defaultMessage: Scadenza
msgid "alertblock_endDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/Sidebar
# defaultMessage: Inizio
msgid "alertblock_startDate"
msgstr ""

#: components/ItaliaTheme/Blocks/IconBlocks/Sidebar
# defaultMessage: Centrare i card
msgid "alignCards"
Expand Down
40 changes: 40 additions & 0 deletions locales/fr/LC_MESSAGES/volto.po
Original file line number Diff line number Diff line change
Expand Up @@ -746,6 +746,46 @@ msgstr ""
msgid "advandedSectionsFilters"
msgstr "Aller à la recherche avancée par rubrique"

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Pubblicazione attiva.
msgid "alert_activeDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Non visibile. C'è un errore sulle date: la data di scadenza è anteriore alla data d'inizio
msgid "alert_errorDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Non visibile. E' scaduto il {date}.
msgid "alert_expiredDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Non visibile. Verà pubblicato il {date}
msgid "alert_futureDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Scadrà il {date}
msgid "alert_willExpire"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/Sidebar
# defaultMessage: Periodo di visualizzazione
msgid "alertblock_dateTitle"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/Sidebar
# defaultMessage: Scadenza
msgid "alertblock_endDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/Sidebar
# defaultMessage: Inizio
msgid "alertblock_startDate"
msgstr ""

#: components/ItaliaTheme/Blocks/IconBlocks/Sidebar
# defaultMessage: Centrare i card
msgid "alignCards"
Expand Down
40 changes: 40 additions & 0 deletions locales/it/LC_MESSAGES/volto.po
Original file line number Diff line number Diff line change
Expand Up @@ -729,6 +729,46 @@ msgstr ""
msgid "advandedSectionsFilters"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Pubblicazione attiva.
msgid "alert_activeDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Non visibile. C'è un errore sulle date: la data di scadenza è anteriore alla data d'inizio
msgid "alert_errorDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Non visibile. E' scaduto il {date}.
msgid "alert_expiredDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Non visibile. Verà pubblicato il {date}
msgid "alert_futureDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Scadrà il {date}
msgid "alert_willExpire"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/Sidebar
# defaultMessage: Periodo di visualizzazione
msgid "alertblock_dateTitle"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/Sidebar
# defaultMessage: Scadenza
msgid "alertblock_endDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/Sidebar
# defaultMessage: Inizio
msgid "alertblock_startDate"
msgstr ""

#: components/ItaliaTheme/Blocks/IconBlocks/Sidebar
# defaultMessage: Centrare i card
msgid "alignCards"
Expand Down
42 changes: 41 additions & 1 deletion locales/volto.pot
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Plone\n"
"POT-Creation-Date: 2024-09-04T10:35:48.334Z\n"
"POT-Creation-Date: 2024-10-30T13:16:00.707Z\n"
"Last-Translator: Plone i18n <[email protected]>\n"
"Language-Team: Plone i18n <[email protected]>\n"
"MIME-Version: 1.0\n"
Expand Down Expand Up @@ -731,6 +731,46 @@ msgstr ""
msgid "advandedSectionsFilters"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Pubblicazione attiva.
msgid "alert_activeDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Non visibile. C'è un errore sulle date: la data di scadenza è anteriore alla data d'inizio
msgid "alert_errorDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Non visibile. E' scaduto il {date}.
msgid "alert_expiredDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Non visibile. Verà pubblicato il {date}
msgid "alert_futureDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/AlertWrapper
# defaultMessage: Scadrà il {date}
msgid "alert_willExpire"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/Sidebar
# defaultMessage: Periodo di visualizzazione
msgid "alertblock_dateTitle"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/Sidebar
# defaultMessage: Scadenza
msgid "alertblock_endDate"
msgstr ""

#: components/ItaliaTheme/Blocks/Alert/Sidebar
# defaultMessage: Inizio
msgid "alertblock_startDate"
msgstr ""

#: components/ItaliaTheme/Blocks/IconBlocks/Sidebar
# defaultMessage: Centrare i card
msgid "alignCards"
Expand Down
89 changes: 89 additions & 0 deletions src/components/ItaliaTheme/Blocks/Alert/AlertWrapper.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
import React from 'react';
import { useSelector } from 'react-redux';
import { Row, Container } from 'design-react-kit/dist/design-react-kit';
import { defineMessages, useIntl } from 'react-intl';

const messages = defineMessages({
expiredDate: {
id: 'alert_expiredDate',
defaultMessage: "Non visibile. E' scaduto il {date}.",
},
activeDate: {
id: 'alert_activeDate',
defaultMessage: 'Pubblicazione attiva.',
},
futureDate: {
id: 'alert_futureDate',
defaultMessage: 'Non visibile. Verà pubblicato il {date}',
},
errorDate: {
id: 'alert_errorDate',
defaultMessage:
"Non visibile. C'è un errore sulle date: la data di scadenza è anteriore alla data d'inizio",
},
willExpire: {
id: 'alert_willExpire',
defaultMessage: 'Scadrà il {date}',
},
});

const AlertWrapper = ({ data, children }) => {
const intl = useIntl();
const userLogged = useSelector((state) => state.userSession.token);

const isActive = () => {
const today = new Date().getTime();
const start = data.startDate ? new Date(data.startDate).getTime() : 0;
const end = data.endDate
? new Date(data.endDate).getTime()
: Number.MAX_SAFE_INTEGER;

const returnValue = {
active: false,
message: intl.formatMessage(messages.expiredDate, {
date: new Date(data.endDate).toLocaleString(),
}),
};

if (end < start) {
returnValue.message = intl.formatMessage(messages.errorDate);
} else if (today < start) {
returnValue.message = intl.formatMessage(messages.futureDate, {
date: new Date(data.startDate).toLocaleString(),
});
} else if (today < end) {
returnValue.message = intl.formatMessage(messages.activeDate);
if (data.endDate) {
returnValue.message +=
' ' +
intl.formatMessage(messages.willExpire, {
date: new Date(data.endDate).toLocaleString(),
});
}
returnValue.active = true;
}

return returnValue;
};

const activeStatus = isActive();

return (
<>
{(userLogged || activeStatus.active) && (
<>
{userLogged && (
<Container className="alert-info-dates">
<Row>
<p className="alert-info-text">{activeStatus.message}</p>
</Row>
</Container>
)}
{children}
</>
)}
</>
);
};

export default AlertWrapper;
Loading
Loading