diff --git a/src/common/constants.js b/src/common/constants.js index d06becc..c3c85f1 100644 --- a/src/common/constants.js +++ b/src/common/constants.js @@ -72,4 +72,5 @@ export const DEFAULT_CASCADE_PARAMS = { export const ALL = '*'; export const URL_REGISTRY_DOC_LINK = 'https://docs.openconceptlab.org/en/latest/oclapi/apireference/urlregistry.html' export const MATCHING_ALGORITHMS_DOC_LINK = 'https://docs.openconceptlab.org/en/latest/oclmap/matching-algorithms.html' -export const MAPPER_ANNOUNCEMENT_URL = 'https://openconceptlab.org/blog/letter-to-the-ocl-community?utm_source=oclmap&utm_medium=banner&utm_campaign=preview_launch' +export const MAPPER_ANNOUNCEMENT_LETTER_URL = 'https://openconceptlab.org/blog/letter-to-the-ocl-community?utm_source=oclmap&utm_medium=banner&utm_campaign=subscription_dates' +export const MAPPER_ANNOUNCEMENT_PRICING_URL = 'https://openconceptlab.org/pricing?utm_source=oclmap&utm_medium=banner&utm_campaign=subscription_dates' diff --git a/src/components/app/AnnouncementBanner.jsx b/src/components/app/AnnouncementBanner.jsx index 1b14647..e97a08a 100644 --- a/src/components/app/AnnouncementBanner.jsx +++ b/src/components/app/AnnouncementBanner.jsx @@ -6,14 +6,20 @@ import Link from '@mui/material/Link'; import Typography from '@mui/material/Typography'; import CampaignOutlinedIcon from '@mui/icons-material/CampaignOutlined'; import CloseIcon from '@mui/icons-material/Close'; -import { MAPPER_ANNOUNCEMENT_URL } from '../../common/constants'; +import { MAPPER_ANNOUNCEMENT_LETTER_URL, MAPPER_ANNOUNCEMENT_PRICING_URL } from '../../common/constants'; // OCL Online-wide announcement strip, fixed above the app bar and styled like // the community site's AnnouncementBanner, so it reads as sitting above the // tool rather than inside it. Same component in TBv3 and TBv2. Update // announcement.* in the locale bundles (and bump ANNOUNCEMENT_ID) to re-show a // new announcement to visitors who dismissed a previous one. -const ANNOUNCEMENT_ID = 'mapper-public-preview-2026-09-v2'; +const ANNOUNCEMENT_ID = 'subscription-dates-2026-10'; + +// Shown after announcement.text in this order, separated by a middle dot. +const ANNOUNCEMENT_LINKS = [ + { labelKey: 'announcement.link_label', href: MAPPER_ANNOUNCEMENT_LETTER_URL }, + { labelKey: 'announcement.pricing_link_label', href: MAPPER_ANNOUNCEMENT_PRICING_URL }, +]; const DISMISSED_KEY = 'announcementDismissed'; @@ -95,10 +101,15 @@ const AnnouncementBanner = () => { {t('announcement.title')} - {t('announcement.text')}{' '} - - {t('announcement.link_label')} - + {t('announcement.text')} + {ANNOUNCEMENT_LINKS.map(({ labelKey, href }, i) => ( + + {i ? ' · ' : ' '} + + {t(labelKey)} + + + ))} diff --git a/src/i18n/locales/en/translations.json b/src/i18n/locales/en/translations.json index 7a089db..7e59445 100644 --- a/src/i18n/locales/en/translations.json +++ b/src/i18n/locales/en/translations.json @@ -775,9 +775,10 @@ }, "unknown_error": "Unknown error", "announcement": { - "title": "Welcome to the public preview of the OCL Mapper!", - "text": "Try it now, ahead of the full release coming soon.", + "title": "Subscriptions open November 1.", + "text": "Existing accounts using premium features have a grace period until December 1.", "link_label": "Learn more", + "pricing_link_label": "See pricing", "dismiss": "Dismiss" }, "quota": { diff --git a/src/i18n/locales/es/translations.json b/src/i18n/locales/es/translations.json index bc856db..d2d21e8 100644 --- a/src/i18n/locales/es/translations.json +++ b/src/i18n/locales/es/translations.json @@ -769,9 +769,10 @@ }, "unknown_error": "Error desconocido", "announcement": { - "title": "¡Te damos la bienvenida a la vista previa pública de OCL Mapper!", - "text": "Pruébalo ahora, antes del lanzamiento completo que llegará pronto.", + "title": "Las suscripciones abren el 1 de noviembre.", + "text": "Las cuentas existentes que usan funciones premium tienen un periodo de gracia hasta el 1 de diciembre.", "link_label": "Más información", + "pricing_link_label": "Ver precios", "dismiss": "Descartar" }, "quota": { diff --git a/src/i18n/locales/zh/translations.json b/src/i18n/locales/zh/translations.json index a835a20..fcb6e14 100644 --- a/src/i18n/locales/zh/translations.json +++ b/src/i18n/locales/zh/translations.json @@ -767,9 +767,10 @@ }, "unknown_error": "未知错误", "announcement": { - "title": "欢迎体验 OCL Mapper 公开预览版!", - "text": "正式版即将推出,现在就来抢先试用吧。", + "title": "订阅将于 11 月 1 日开放。", + "text": "使用高级功能的现有账户可享受宽限期至 12 月 1 日。", "link_label": "了解更多", + "pricing_link_label": "查看价格", "dismiss": "关闭" }, "quota": {