diff --git a/mailpoet/assets/js/src/global.d.ts b/mailpoet/assets/js/src/global.d.ts index 2cc2d963f8..9f0dab2c97 100644 --- a/mailpoet/assets/js/src/global.d.ts +++ b/mailpoet/assets/js/src/global.d.ts @@ -179,7 +179,7 @@ interface Window { mssConnected: boolean; subscribersAdded: boolean; wooSubscribersImported: boolean; - }; + } | null; woo_customers_count: number; subscribers_count: number; }; diff --git a/mailpoet/assets/js/src/homepage/store/types.ts b/mailpoet/assets/js/src/homepage/store/types.ts index 64d291bce6..15c52b295c 100644 --- a/mailpoet/assets/js/src/homepage/store/types.ts +++ b/mailpoet/assets/js/src/homepage/store/types.ts @@ -1,6 +1,6 @@ export type TaskListState = { isTaskListHidden: boolean; - tasksStatus: TaskListTasksStatus; + tasksStatus: TaskListTasksStatus | null; canImportWooCommerceSubscribers: boolean; hasImportedSubscribers: boolean; }; diff --git a/mailpoet/lib/Homepage/HomepageDataController.php b/mailpoet/lib/Homepage/HomepageDataController.php index 7efb2e72bd..38e02f624e 100644 --- a/mailpoet/lib/Homepage/HomepageDataController.php +++ b/mailpoet/lib/Homepage/HomepageDataController.php @@ -36,10 +36,11 @@ class HomepageDataController { public function getPageData(): array { $subscribersCount = $this->subscribersRepository->getTotalSubscribers(); $formsCount = $this->formsRepository->count(); + $showTaskList = !$this->settingsController->get('homepage.task_list_dismissed', false); return [ - 'task_list_dismissed' => (bool)$this->settingsController->get('homepage.task_list_dismissed', false), + 'task_list_dismissed' => !$showTaskList, 'product_discovery_dismissed' => (bool)$this->settingsController->get('homepage.product_discovery_dismissed', false), - 'task_list_status' => $this->getTaskListStatus($subscribersCount, $formsCount), + 'task_list_status' => $showTaskList ? $this->getTaskListStatus($subscribersCount, $formsCount) : null, 'woo_customers_count' => $this->wooCommerceHelper->getCustomersCount(), 'subscribers_count' => $subscribersCount, ]; diff --git a/mailpoet/tests/integration/Homepage/HomepageDataControllerTest.php b/mailpoet/tests/integration/Homepage/HomepageDataControllerTest.php index cba4030899..f9a12c706f 100644 --- a/mailpoet/tests/integration/Homepage/HomepageDataControllerTest.php +++ b/mailpoet/tests/integration/Homepage/HomepageDataControllerTest.php @@ -5,6 +5,7 @@ namespace MailPoet\Homepage; use MailPoet\Entities\FormEntity; use MailPoet\Entities\SettingEntity; use MailPoet\Entities\SubscriberEntity; +use MailPoet\Settings\SettingsController; use MailPoet\Test\DataFactories\Form; use MailPoet\Test\DataFactories\Subscriber; @@ -30,7 +31,7 @@ class HomepageDataControllerTest extends \MailPoetTest { } public function testItFetchesSenderTaskListStatus(): void { - $settings = $this->diContainer->get(\MailPoet\Settings\SettingsController::class); + $settings = $this->diContainer->get(SettingsController::class); $settings->set('sender', null); $data = $this->homepageDataController->getPageData(); @@ -48,6 +49,13 @@ class HomepageDataControllerTest extends \MailPoetTest { expect($taskListStatus['senderSet'])->true(); } + public function testItDoesntFetchTaskListStatusWhenTaskListDismissed(): void { + $settings = $this->diContainer->get(SettingsController::class); + $settings->set('homepage.task_list_dismissed', true); + $data = $this->homepageDataController->getPageData(); + expect($data['task_list_status'])->null(); + } + public function testItFetchesSubscribersAddedTaskListStatus(): void { $data = $this->homepageDataController->getPageData(); $taskListStatus = $data['task_list_status'];