diff --git a/src/common/constants.js b/src/common/constants.js index b54a60f4..30eb9ddf 100644 --- a/src/common/constants.js +++ b/src/common/constants.js @@ -81,4 +81,5 @@ export const DEFAULT_CASCADE_PARAMS = { export const ALL = '*'; -export const TBV2_ANNOUNCEMENT_URL = 'https://openconceptlab.org/blog/letter-to-the-ocl-community?utm_source=tbv2&utm_medium=banner&utm_campaign=preview_launch' +export const TBV2_ANNOUNCEMENT_LEARN_MORE_URL = 'https://openconceptlab.org/blog/letter-to-the-ocl-community?utm_source=tbv2&utm_medium=banner&utm_campaign=subscription_dates' +export const TBV2_ANNOUNCEMENT_PRICING_URL = 'https://openconceptlab.org/pricing?utm_source=tbv2&utm_medium=banner&utm_campaign=subscription_dates' diff --git a/src/components/app/AnnouncementBanner.jsx b/src/components/app/AnnouncementBanner.jsx index 7d4142bb..bb83368c 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 { TBV2_ANNOUNCEMENT_URL } from '../../common/constants'; +import { TBV2_ANNOUNCEMENT_LEARN_MORE_URL, TBV2_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 the Mapper. 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 = 'tbv2-tbv3-public-preview-2026-09-v2'; +const ANNOUNCEMENT_ID = 'subscription-dates-2026-10'; + +// Shown in this order after the text, separated by " · ". +const ANNOUNCEMENT_LINKS = [ + { labelKey: 'announcement.link_label', href: TBV2_ANNOUNCEMENT_LEARN_MORE_URL }, + { labelKey: 'announcement.pricing_label', href: TBV2_ANNOUNCEMENT_PRICING_URL }, +]; const DISMISSED_KEY = 'announcementDismissed'; @@ -98,23 +104,30 @@ 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 1a022522..2ffce97f 100644 --- a/src/i18n/locales/en/translations.json +++ b/src/i18n/locales/en/translations.json @@ -176,9 +176,10 @@ } }, "announcement": { - "title": "Try the new OCL TermBrowser v3, now in public preview!", - "text": "Your content is already there, and you can switch back any time.", + "title": "Subscriptions open November 1.", + "text": "Existing accounts using premium features have a grace period until December 1.", "link_label": "Learn more", + "pricing_label": "See pricing", "dismiss": "Dismiss" } } diff --git a/src/i18n/locales/es/translations.json b/src/i18n/locales/es/translations.json index 5ea505c8..bf64766f 100644 --- a/src/i18n/locales/es/translations.json +++ b/src/i18n/locales/es/translations.json @@ -175,9 +175,10 @@ } }, "announcement": { - "title": "¡Pruebe el nuevo OCL TermBrowser v3, ahora en vista previa pública!", - "text": "Su contenido ya está allí, y puede volver en cualquier momento.", + "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_label": "Ver precios", "dismiss": "Descartar" } } diff --git a/src/i18n/locales/zh/translations.json b/src/i18n/locales/zh/translations.json index 289490d1..0ab6c252 100644 --- a/src/i18n/locales/zh/translations.json +++ b/src/i18n/locales/zh/translations.json @@ -175,9 +175,10 @@ } }, "announcement": { - "title": "试用全新 OCL TermBrowser v3,现已开放公开预览!", - "text": "您的内容已在其中,并可随时切换回来。", + "title": "订阅将于 11 月 1 日开放。", + "text": "使用高级功能的现有账户可享受宽限期至 12 月 1 日。", "link_label": "了解更多", + "pricing_label": "查看价格", "dismiss": "关闭" } }