diff --git a/mailpoet/assets/js/src/automation/integrations/mailpoet/analytics/components/tabs/emails/rows.tsx b/mailpoet/assets/js/src/automation/integrations/mailpoet/analytics/components/tabs/emails/rows.tsx index 30d27e332d..f833723dee 100644 --- a/mailpoet/assets/js/src/automation/integrations/mailpoet/analytics/components/tabs/emails/rows.tsx +++ b/mailpoet/assets/js/src/automation/integrations/mailpoet/analytics/components/tabs/emails/rows.tsx @@ -1,10 +1,12 @@ import { Tooltip } from '@wordpress/components'; import { __, sprintf } from '@wordpress/i18n'; +import { addQueryArgs } from '@wordpress/url'; import { EmailStats } from '../../../store'; import { Actions } from './actions'; import { locale } from '../../../../../../config'; import { Cell } from './cell'; import { formattedPrice } from '../../../formatter'; +import { openTab } from '../../../navigation/open_tab'; const percentageFormatter = Intl.NumberFormat(locale.toString(), { style: 'percent', @@ -47,13 +49,6 @@ function percentageBadgeCalculation(percentage: number): { } export function transformEmailsToRows(emails: EmailStats[]) { - const openOrders = () => { - const tab: HTMLButtonElement | null = document.querySelector( - '.mailpoet-analytics-tab-orders', - ); - tab?.click(); - }; - return emails.map((email) => { // Shows the percentage of clicked emails compared to the number of sent emails const clickedPercentage = calculatePercentage( @@ -138,10 +133,12 @@ export function transformEmailsToRows(emails: EmailStats[]) { value={ { e.preventDefault(); - openOrders(); + openTab('orders'); }} > {`${email.orders}`} diff --git a/mailpoet/assets/js/src/automation/integrations/mailpoet/analytics/navigation/open_tab.ts b/mailpoet/assets/js/src/automation/integrations/mailpoet/analytics/navigation/open_tab.ts new file mode 100644 index 0000000000..eeeddea1b4 --- /dev/null +++ b/mailpoet/assets/js/src/automation/integrations/mailpoet/analytics/navigation/open_tab.ts @@ -0,0 +1,13 @@ +type ValidTabs = 'automation-flow' | 'emails' | 'orders' | 'subscribers'; +export function openTab(tab: ValidTabs): void { + const classMap: Record = { + 'automation-flow': 'mailpoet-analytics-tab-flow', + emails: 'mailpoet-analytics-tab-emails', + orders: 'mailpoet-analytics-tab-orders', + subscribers: 'mailpoet-analytics-tab-subscribers', + }; + const tabElement: HTMLButtonElement | null = document.querySelector( + `.${classMap[tab]}`, + ); + tabElement?.click(); +}