Display proper product discovery tasks if Woo is active

[MAILPOET-4827]
This commit is contained in:
Rostislav Wolny
2023-01-06 13:15:47 +01:00
committed by Aschepikov
parent 18c2e53af8
commit c1b552b5ff
4 changed files with 43 additions and 29 deletions

View File

@@ -10,9 +10,10 @@ type Props = {
};
export function ProductDiscovery({ onHide }: Props): JSX.Element {
const { tasksStatus } = useSelect(
const { tasksStatus, isWooCommerceActive } = useSelect(
(select) => ({
tasksStatus: select(storeName).getProductDiscoveryTasksStatus(),
isWooCommerceActive: select(storeName).getIsWooCommerceActive(),
}),
[],
);
@@ -36,6 +37,9 @@ export function ProductDiscovery({ onHide }: Props): JSX.Element {
isDone={tasksStatus.addSubscriptionForm}
doneMessage={MailPoet.I18n.t('addSubscriptionFormDone')}
/>,
);
if (!isWooCommerceActive) {
tasks.push(
<DiscoveryTask
key="sendFirstNewsletter"
title={MailPoet.I18n.t('sendFirstNewsletter')}
@@ -45,6 +49,9 @@ export function ProductDiscovery({ onHide }: Props): JSX.Element {
isDone={tasksStatus.sendFirstNewsletter}
doneMessage={MailPoet.I18n.t('sendFirstNewsletterDone')}
/>,
);
} else {
tasks.push(
<DiscoveryTask
key="setUpAbandonedCartEmail"
title={MailPoet.I18n.t('setUpAbandonedCartEmail')}
@@ -64,7 +71,7 @@ export function ProductDiscovery({ onHide }: Props): JSX.Element {
doneMessage={MailPoet.I18n.t('brandWooEmailsDone')}
/>,
);
}
return (
<div className="mailpoet-homepage-section__container">
<div className="mailpoet-homepage-section__heading">

View File

@@ -1,3 +1,4 @@
import { MailPoet } from 'mailpoet';
import { State } from './types';
export function getInitialState(): State {
@@ -14,5 +15,6 @@ export function getInitialState(): State {
isHidden: window.mailpoet_homepage_data.product_discovery_dismissed,
tasksStatus: window.mailpoet_homepage_data.product_discovery_status,
},
isWooCommerceActive: MailPoet.isWoocommerceActive,
};
}

View File

@@ -31,6 +31,10 @@ export function getIsProductDiscoveryHidden(state: State): boolean {
return state.productDiscovery.isHidden;
}
export function getIsWooCommerceActive(state: State): boolean {
return state.isWooCommerceActive;
}
export function getCurrentTask(state: State): TaskType | null {
if (!state.taskList.tasksStatus.senderSet) return 'senderSet';
if (!state.taskList.tasksStatus.mssConnected) return 'mssConnected';

View File

@@ -30,4 +30,5 @@ export type TaskType = keyof TaskListTasksStatus;
export type State = {
taskList: TaskListState;
productDiscovery: ProductDiscoveryState;
isWooCommerceActive: boolean;
};