Fetch task list status only when task list is displayed

[MAILPOET-4827]
This commit is contained in:
Rostislav Wolny
2023-01-05 17:46:45 +01:00
committed by Aschepikov
parent ce8191ad6c
commit f50dcd3bd1
4 changed files with 14 additions and 5 deletions

View File

@ -179,7 +179,7 @@ interface Window {
mssConnected: boolean; mssConnected: boolean;
subscribersAdded: boolean; subscribersAdded: boolean;
wooSubscribersImported: boolean; wooSubscribersImported: boolean;
}; } | null;
woo_customers_count: number; woo_customers_count: number;
subscribers_count: number; subscribers_count: number;
}; };

View File

@ -1,6 +1,6 @@
export type TaskListState = { export type TaskListState = {
isTaskListHidden: boolean; isTaskListHidden: boolean;
tasksStatus: TaskListTasksStatus; tasksStatus: TaskListTasksStatus | null;
canImportWooCommerceSubscribers: boolean; canImportWooCommerceSubscribers: boolean;
hasImportedSubscribers: boolean; hasImportedSubscribers: boolean;
}; };

View File

@ -36,10 +36,11 @@ class HomepageDataController {
public function getPageData(): array { public function getPageData(): array {
$subscribersCount = $this->subscribersRepository->getTotalSubscribers(); $subscribersCount = $this->subscribersRepository->getTotalSubscribers();
$formsCount = $this->formsRepository->count(); $formsCount = $this->formsRepository->count();
$showTaskList = !$this->settingsController->get('homepage.task_list_dismissed', false);
return [ 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), '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(), 'woo_customers_count' => $this->wooCommerceHelper->getCustomersCount(),
'subscribers_count' => $subscribersCount, 'subscribers_count' => $subscribersCount,
]; ];

View File

@ -5,6 +5,7 @@ namespace MailPoet\Homepage;
use MailPoet\Entities\FormEntity; use MailPoet\Entities\FormEntity;
use MailPoet\Entities\SettingEntity; use MailPoet\Entities\SettingEntity;
use MailPoet\Entities\SubscriberEntity; use MailPoet\Entities\SubscriberEntity;
use MailPoet\Settings\SettingsController;
use MailPoet\Test\DataFactories\Form; use MailPoet\Test\DataFactories\Form;
use MailPoet\Test\DataFactories\Subscriber; use MailPoet\Test\DataFactories\Subscriber;
@ -30,7 +31,7 @@ class HomepageDataControllerTest extends \MailPoetTest {
} }
public function testItFetchesSenderTaskListStatus(): void { public function testItFetchesSenderTaskListStatus(): void {
$settings = $this->diContainer->get(\MailPoet\Settings\SettingsController::class); $settings = $this->diContainer->get(SettingsController::class);
$settings->set('sender', null); $settings->set('sender', null);
$data = $this->homepageDataController->getPageData(); $data = $this->homepageDataController->getPageData();
@ -48,6 +49,13 @@ class HomepageDataControllerTest extends \MailPoetTest {
expect($taskListStatus['senderSet'])->true(); 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 { public function testItFetchesSubscribersAddedTaskListStatus(): void {
$data = $this->homepageDataController->getPageData(); $data = $this->homepageDataController->getPageData();
$taskListStatus = $data['task_list_status']; $taskListStatus = $data['task_list_status'];