/** * WordPress dependencies */ import { createInterpolateElement } from '@safe-wordpress/element'; import { sprintf, _x } from '@safe-wordpress/i18n'; /** * External dependencies */ import type { SRViewProps } from '@nab/types'; /** * Internal dependencies */ import type { Attributes } from './types'; export const View = ( { attributes: { condition, value, interval }, }: SRViewProps< Attributes > ): JSX.Element => { switch ( condition ) { case 'is-greater-than': return createInterpolateElement( sprintf( /* translators: %s: Number. */ _x( 'Window width is greater than %s pixels.', 'text', 'nelio-ab-testing' ), `${ value ?? 0 }` ), { strong: } ); case 'is-less-than': return createInterpolateElement( sprintf( /* translators: %s: Number. */ _x( 'Window width is less than %s pixels.', 'text', 'nelio-ab-testing' ), `${ value ?? 0 }` ), { strong: } ); case 'between': const { min, max } = interval; if ( undefined === min || undefined === max || min >= max ) { return ( <> { _x( 'Window width interval to be defined.', 'text', 'nelio-ab-testing' ) } ); } return createInterpolateElement( sprintf( /* translators: %1$s: Number. %2$s: Number. */ _x( 'Window width is between %1$s and %2$s pixels.', 'text', 'nelio-ab-testing' ), `${ min }`, `${ max }` ), { strong: } ); } };