/** * WordPress dependencies */ import { createInterpolateElement } from '@safe-wordpress/element'; import { sprintf, _x } from '@safe-wordpress/i18n'; /** * External dependencies */ import { ConversionActionScopeView } from '@nab/components'; import type { CAViewProps, ConversionActionScope } from '@nab/types'; /** * Internal dependencies */ import type { Attributes } from './types'; export const View = ( props: CAViewProps< Attributes > ): JSX.Element => ( <>
${ value }`
),
{ code: }
) }
>
);
case 'start':
return (
<>
{ createInterpolateElement(
sprintf(
getStartLabel( scope ),
`${ value }`
),
{ code: }
) }
>
);
case 'end':
return (
<>
{ createInterpolateElement(
sprintf(
getEndLabel( scope ),
`${ value }`
),
{ code: }
) }
>
);
case 'regex':
return (
<>
{ createInterpolateElement(
sprintf(
getRegexLabel( scope ),
`${ value }`
),
{ code: }
) }
>
);
case 'exact':
return (
<>
{ createInterpolateElement(
sprintf(
getExactLabel( scope ),
`${ value }`
),
{ code: }
) }
>
);
}
};
// =======
// HELPERS
// =======
function getLinkLabel( scope: ConversionActionScope ): string {
switch ( scope.type ) {
case 'all-pages':
return _x(
'A visitor clicks on a link on any page.',
'text',
'nelio-ab-testing'
);
case 'test-scope':
return _x(
'A visitor clicks on a link on a tested page.',
'text',
'nelio-ab-testing'
);
case 'urls':
case 'post-ids':
case 'php-function':
return _x(
'A visitor clicks on a link on certain pages.',
'text',
'nelio-ab-testing'
);
}
}
function getPartialLabel( scope: ConversionActionScope ): string {
switch ( scope.type ) {
case 'all-pages':
/* translators: %s: Some text that might appear in a URL, such as "wordpress", or "amazon", or "nelio". */
return _x(
'A visitor clicks on a link containing %s on any page.',
'text',
'nelio-ab-testing'
);
case 'test-scope':
/* translators: %s: Some text that might appear in a URL, such as "wordpress", or "amazon", or "nelio". */
return _x(
'A visitor clicks on a link containing %s on a tested page.',
'text',
'nelio-ab-testing'
);
case 'urls':
case 'post-ids':
case 'php-function':
/* translators: %s: Some text that might appear in a URL, such as "wordpress", or "amazon", or "nelio". */
return _x(
'A visitor clicks on a link containing %s on certain pages.',
'text',
'nelio-ab-testing'
);
}
}
function getStartLabel( scope: ConversionActionScope ): string {
switch ( scope.type ) {
case 'all-pages':
/* translators: %s: URL fragment, such as "https://nelio". */
return _x(
'A visitor clicks on a link starting with %s on any page.',
'text',
'nelio-ab-testing'
);
case 'test-scope':
/* translators: %s: URL fragment, such as "https://nelio". */
return _x(
'A visitor clicks on a link starting with %s on a tested page.',
'text',
'nelio-ab-testing'
);
case 'urls':
case 'post-ids':
case 'php-function':
/* translators: %s: URL fragment, such as "https://nelio". */
return _x(
'A visitor clicks on a link starting with %s on certain pages.',
'text',
'nelio-ab-testing'
);
}
}
function getEndLabel( scope: ConversionActionScope ): string {
switch ( scope.type ) {
case 'all-pages':
/* translators: %s: URL fragment, such as "/blog/". */
return _x(
'A visitor clicks on a link ending with %s on any page.',
'text',
'nelio-ab-testing'
);
case 'test-scope':
/* translators: %s: URL fragment, such as "/blog/". */
return _x(
'A visitor clicks on a link ending with %s on a tested page.',
'text',
'nelio-ab-testing'
);
case 'urls':
case 'post-ids':
case 'php-function':
/* translators: %s: URL fragment, such as "/blog/". */
return _x(
'A visitor clicks on a link ending with %s on certain pages.',
'text',
'nelio-ab-testing'
);
}
}
function getRegexLabel( scope: ConversionActionScope ): string {
switch ( scope.type ) {
case 'all-pages':
/* translators: %s: JavaScript regular expression. */
return _x(
'A visitor clicks on a link matching regex %s on any page.',
'text',
'nelio-ab-testing'
);
case 'test-scope':
/* translators: %s: JavaScript regular expression. */
return _x(
'A visitor clicks on a link matching regex %s on a tested page.',
'text',
'nelio-ab-testing'
);
case 'urls':
case 'post-ids':
case 'php-function':
/* translators: %s: JavaScript regular expression. */
return _x(
'A visitor clicks on a link matching regex %s on certain pages.',
'text',
'nelio-ab-testing'
);
}
}
function getExactLabel( scope: ConversionActionScope ): string {
switch ( scope.type ) {
case 'all-pages':
/* translators: %s: URL such as "https://wordpress.org/plugins/nelio-ab-testing/". */
return _x(
'A visitor clicks on a link to %s on any page.',
'text',
'nelio-ab-testing'
);
case 'test-scope':
/* translators: %s: URL such as "https://wordpress.org/plugins/nelio-ab-testing/". */
return _x(
'A visitor clicks on a link to %s on a tested page.',
'text',
'nelio-ab-testing'
);
case 'urls':
case 'post-ids':
case 'php-function':
/* translators: %s: URL such as "https://wordpress.org/plugins/nelio-ab-testing/". */
return _x(
'A visitor clicks on a link to %s on certain pages.',
'text',
'nelio-ab-testing'
);
}
}