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;
subscribersAdded: boolean;
wooSubscribersImported: boolean;
};
} | null;
woo_customers_count: number;
subscribers_count: number;
};

View File

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

View File

@ -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,
];

View File

@ -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'];