Skip to content

Commit 23c829e

Browse files
committed
Fix sectioned task list
1 parent b8a8e9d commit 23c829e

File tree

1 file changed

+36
-1
lines changed

1 file changed

+36
-1
lines changed

plugins/woocommerce-admin/client/two-column-tasks/task-list-item.tsx

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,12 @@ import {
77
getNewPath,
88
updateQueryString,
99
} from '@woocommerce/navigation';
10-
import { OPTIONS_STORE_NAME, TaskType } from '@woocommerce/data';
10+
import {
11+
ONBOARDING_STORE_NAME,
12+
OPTIONS_STORE_NAME,
13+
TaskType,
14+
useUserPreferences,
15+
} from '@woocommerce/data';
1116
import { recordEvent } from '@woocommerce/tracks';
1217
import { TaskItem, useSlot } from '@woocommerce/experimental';
1318
import { useCallback } from '@wordpress/element';
@@ -32,16 +37,46 @@ export const TaskListItem: React.FC< TaskListItemProps > = ( {
3237
snoozeTask,
3338
undoSnoozeTask,
3439
} = useDispatch( OPTIONS_STORE_NAME );
40+
const { visitedTask } = useDispatch( ONBOARDING_STORE_NAME );
3541

3642
const slot = useSlot(
3743
`woocommerce_onboarding_task_list_item_${ task.id }`
3844
);
3945
const hasFills = Boolean( slot?.fills?.length );
4046

47+
const userPreferences = useUserPreferences();
48+
49+
const getTaskStartedCount = () => {
50+
const trackedStartedTasks =
51+
userPreferences.task_list_tracked_started_tasks;
52+
if ( ! trackedStartedTasks || ! trackedStartedTasks[ task.id ] ) {
53+
return 0;
54+
}
55+
return trackedStartedTasks[ task.id ];
56+
};
57+
58+
const updateTrackStartedCount = () => {
59+
const newCount = getTaskStartedCount() + 1;
60+
const trackedStartedTasks =
61+
userPreferences.task_list_tracked_started_tasks || {};
62+
63+
visitedTask( task.id );
64+
userPreferences.updateUserPreferences( {
65+
task_list_tracked_started_tasks: {
66+
...( trackedStartedTasks || {} ),
67+
[ task.id ]: newCount,
68+
},
69+
} );
70+
};
71+
4172
const trackClick = () => {
4273
recordEvent( `${ eventPrefix }click`, {
4374
task_name: task.id,
4475
} );
76+
77+
if ( ! task.isComplete ) {
78+
updateTrackStartedCount();
79+
}
4580
};
4681

4782
const onTaskSelected = () => {

0 commit comments

Comments
 (0)