diff --git a/assets/js/src/segments/dynamic/dynamic_segments_filters/email_opens_absolute_count.tsx b/assets/js/src/segments/dynamic/dynamic_segments_filters/email_opens_absolute_count.tsx index 36b6d9749a..f4f9632f95 100644 --- a/assets/js/src/segments/dynamic/dynamic_segments_filters/email_opens_absolute_count.tsx +++ b/assets/js/src/segments/dynamic/dynamic_segments_filters/email_opens_absolute_count.tsx @@ -17,6 +17,12 @@ interface Props { item: EmailFormItem; } +function replaceElementsInDaysSentence(fn): JSX.Element[] { + return MailPoet.I18n.t('emailActionOpensDaysSentence') + .split(/({days})/gim) + .map(fn); +} + export const EmailOpensAbsoluteCountFields: React.FunctionComponent = ({ onChange, item, @@ -76,6 +82,35 @@ export const EmailOpensAbsoluteCountFields: React.FunctionComponent = ({ } )} + + {replaceElementsInDaysSentence( + (match) => { + if (match === '{days}') { + return ( + compose([ + onChange, + assign(item), + ])({ days: e.target.value })} + min="0" + placeholder={MailPoet.I18n.t('emailActionDays')} + /> + ); + } + if ((typeof match === 'string') && match.trim().length > 1) { + return ( +
+ {match} +
+ ); + } + return null; + } + )} +
); }; diff --git a/assets/js/src/segments/dynamic/types.ts b/assets/js/src/segments/dynamic/types.ts index 78358d9112..0ab52ab145 100644 --- a/assets/js/src/segments/dynamic/types.ts +++ b/assets/js/src/segments/dynamic/types.ts @@ -43,6 +43,7 @@ export interface EmailFormItem extends FormItem { link_id?: string; operator?: string; opens?: string; + days?: string; } export type AnyFormItem = WordpressRoleFormItem | WooCommerceFormItem | EmailFormItem; diff --git a/views/segments.html b/views/segments.html index 517016d2d5..e67dfc87c5 100644 --- a/views/segments.html +++ b/views/segments.html @@ -136,7 +136,9 @@ 'emailActionOpened': _x('opened', 'Dynamic segment creation: when newsletter was opened'), 'emailActionOpensAbsoluteCount': __('# of opens'), 'emailActionOpens': __('opens'), + 'emailActionDays': __('days'), 'emailActionOpensSentence': _x('{condition} {opens} opens', 'The result will be "more than 20 opens"'), + 'emailActionOpensDaysSentence': _x('in the last {days} days', 'The result will be "in the last 5 days"'), 'moreThan': __('more than'), 'lessThan': __('less than'), 'emailActionNotOpened': _x('not opened', 'Dynamic segment creation: when newsletter was not opened'),