/** * WordPress dependencies */ import { _x } from '@safe-wordpress/i18n'; /** * External dependencies */ import type { Account, AccountWithSubscription } from '@nelio-content/types'; export type TitleProps = { readonly plan: Account[ 'plan' ]; readonly period: AccountWithSubscription[ 'period' ]; readonly isCanceled: boolean; readonly isInvitation: boolean; }; export const Title = ( { plan, period, isCanceled, isInvitation, }: TitleProps ): JSX.Element => (

{ getTitle( plan ) ?? getTitle( 'basic' ) } { isInvitation && _x( 'Invitation', 'text', 'nelio-content' ) } { ! isInvitation && 'month' === period && _x( 'Monthly', 'text', 'nelio-content' ) } { ! isInvitation && 'year' === period && _x( 'Yearly', 'text', 'nelio-content' ) } { isCanceled && ( { _x( 'Canceled', 'text (account state)', 'nelio-content' ) } ) }

); function getTitle( plan: Account[ 'plan' ] ) { switch ( plan ) { case 'free': return _x( 'Nelio Content (Free)', 'text', 'nelio-content' ); case 'plus': return _x( 'Nelio Content Plus', 'text', 'nelio-content' ); case 'standard': return _x( 'Nelio Content Standard', 'text', 'nelio-content' ); case 'basic': return _x( 'Nelio Content Basic', 'text', 'nelio-content' ); } }