Skip to content
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
3 changes: 2 additions & 1 deletion src/common/constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -103,4 +103,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 TBV3_ANNOUNCEMENT_URL = 'https://openconceptlab.org/blog/letter-to-the-ocl-community?utm_source=tbv3&utm_medium=banner&utm_campaign=preview_launch'
export const TBV3_ANNOUNCEMENT_LETTER_URL = 'https://openconceptlab.org/blog/letter-to-the-ocl-community?utm_source=tbv3&utm_medium=banner&utm_campaign=subscription_dates'
export const TBV3_ANNOUNCEMENT_PRICING_URL = 'https://openconceptlab.org/pricing?utm_source=tbv3&utm_medium=banner&utm_campaign=subscription_dates'
23 changes: 17 additions & 6 deletions src/components/app/AnnouncementBanner.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -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 { TBV3_ANNOUNCEMENT_URL } from '../../common/constants';
import { TBV3_ANNOUNCEMENT_LETTER_URL, TBV3_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 the Mapper 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 = 'tbv3-public-preview-2026-09-v2';
const ANNOUNCEMENT_ID = 'subscription-dates-2026-10';

// Shown in this order after announcement.text, separated by a middle dot.
const ANNOUNCEMENT_LINKS = [
{ labelKey: 'announcement.link_label', href: TBV3_ANNOUNCEMENT_LETTER_URL },
{ labelKey: 'announcement.pricing_label', href: TBV3_ANNOUNCEMENT_PRICING_URL },
];

const DISMISSED_KEY = 'announcementDismissed';

Expand Down Expand Up @@ -95,10 +101,15 @@ const AnnouncementBanner = () => {
{t('announcement.title')}
</Typography>
<Typography variant='body2' sx={{ color: 'surface.contrastText' }}>
{t('announcement.text')}{' '}
<Link href={TBV3_ANNOUNCEMENT_URL} target='_blank' rel='noopener noreferrer' sx={{ fontWeight: 600, '&:hover, &:focus': { color: 'primary.main' } }}>
{t('announcement.link_label')}
</Link>
{t('announcement.text')}
{ANNOUNCEMENT_LINKS.map(({ labelKey, href }, i) => (
<React.Fragment key={href}>
{i ? ' · ' : ' '}
<Link href={href} target='_blank' rel='noopener noreferrer' sx={{ fontWeight: 600, whiteSpace: 'nowrap', '&:hover, &:focus': { color: 'primary.main' } }}>
{t(labelKey)}
</Link>
</React.Fragment>
))}
</Typography>
</Box>
<IconButton size='small' aria-label={t('announcement.dismiss')} onClick={onClose}>
Expand Down
5 changes: 3 additions & 2 deletions src/i18n/locales/en/translations.json
Original file line number Diff line number Diff line change
Expand Up @@ -1078,9 +1078,10 @@
"clear": "Reset Sort"
},
"announcement": {
"title": "Welcome to the public preview of the new OCL TermBrowser v3!",
"text": "Your content is already here, and you can switch back to TBv2 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"
},
"quota": {
Expand Down
5 changes: 3 additions & 2 deletions src/i18n/locales/es/translations.json
Original file line number Diff line number Diff line change
Expand Up @@ -577,9 +577,10 @@
"clear": "Restablecer orden"
},
"announcement": {
"title": "¡Te damos la bienvenida a la vista previa pública del nuevo OCL TermBrowser v3!",
"text": "Tu contenido ya está aquí, y puedes volver a TBv2 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"
},
"quota": {
Expand Down
5 changes: 3 additions & 2 deletions src/i18n/locales/zh/translations.json
Original file line number Diff line number Diff line change
Expand Up @@ -665,9 +665,10 @@
"view_canonical_url_registry": "查看规范型 URL 注册库"
},
"announcement": {
"title": "欢迎体验全新 OCL TermBrowser v3 公开预览版!",
"text": "您的内容已在这里,并可随时切换回 TBv2。",
"title": "订阅将于 11 月 1 日开放。",
"text": "使用高级功能的现有账户可享受宽限期至 12 月 1 日。",
"link_label": "了解更多",
"pricing_label": "查看价格",
"dismiss": "关闭"
},
"quota": {
Expand Down
Loading