Skip to content

Commit 54116a4

Browse files
committed
refactor(frontend): simplify onboarding tour step navigation
- Remove `setTourStep` method in favor of `advanceTourStep` - Simplify tour step progression across dashboard and media routes - Update hook return values to use more direct step advancement method
1 parent 595865b commit 54116a4

File tree

3 files changed

+11
-27
lines changed

3 files changed

+11
-27
lines changed

apps/frontend/app/lib/state/general.tsx

+5-11
Original file line numberDiff line numberDiff line change
@@ -84,16 +84,11 @@ export const useOnboardingTour = () => {
8484
setOpenedSidebarLinks(defaultSidebarLinksState);
8585
setTourState({ currentStepIndex: 0 });
8686
};
87-
const setTourStep = (stepTarget: OnboardingTourStepTargets) => {
88-
const index = onboardingTourSteps.findIndex(
89-
(step) => step.target === `.${stepTarget}`,
90-
);
91-
setTourState({ currentStepIndex: index });
87+
88+
const advanceTourStep = () => {
89+
const currentStepIndex = tourState?.currentStepIndex || 0;
90+
setTourState({ currentStepIndex: currentStepIndex + 1 });
9291
};
93-
const incrementStep = () =>
94-
setTourState((prev) => ({
95-
currentStepIndex: (prev?.currentStepIndex || 0) + 1,
96-
}));
9792

9893
useEffect(() => {
9994
const completed = localStorage.getItem(OnboardingTourCompletedKey);
@@ -102,9 +97,8 @@ export const useOnboardingTour = () => {
10297
}, []);
10398

10499
return {
105-
setTourStep,
106100
isTourStarted,
107-
incrementStep,
101+
advanceTourStep,
108102
stepIndex: tourState?.currentStepIndex,
109103
};
110104
};

apps/frontend/app/routes/_dashboard.media.$action.$lot.tsx

+3-9
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ export default function Page() {
258258
] = useDisclosure(false);
259259
const navigate = useNavigate();
260260
const bulkEditingCollection = useBulkEditCollection();
261-
const { isTourStarted, setTourStep } = useOnboardingTour();
261+
const { isTourStarted, advanceTourStep } = useOnboardingTour();
262262

263263
const bulkEditingState = bulkEditingCollection.state;
264264
const mediaSearch = loaderData.mediaSearch;
@@ -293,10 +293,7 @@ export default function Page() {
293293
),
294294
);
295295
if (v === "search" && isTourStarted) {
296-
setTimeout(
297-
() => setTourStep(OnboardingTourStepTargets.Four),
298-
400,
299-
);
296+
setTimeout(() => advanceTourStep(), 400);
300297
}
301298
}
302299
}}
@@ -423,10 +420,7 @@ export default function Page() {
423420
? {
424421
target: OnboardingTourStepTargets.Four,
425422
onTargetInteract: () => {
426-
setTimeout(
427-
() => setTourStep(OnboardingTourStepTargets.Five),
428-
2000,
429-
);
423+
setTimeout(() => advanceTourStep(), 2000);
430424
},
431425
}
432426
: undefined

apps/frontend/app/routes/_dashboard.tsx

+3-7
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ export default function Layout() {
337337
useMeasurementsDrawerOpen();
338338
const closeMeasurementsDrawer = () => setMeasurementsDrawerOpen(false);
339339
const bulkEditingCollection = useBulkEditCollection();
340-
const { isTourStarted, stepIndex, setTourStep } = useOnboardingTour();
340+
const { isTourStarted, stepIndex, advanceTourStep } = useOnboardingTour();
341341

342342
const mediaLinks = [
343343
...userPreferences.featuresEnabled.media.specific.map((f) => {
@@ -349,10 +349,7 @@ export default function Layout() {
349349
? ({
350350
target: OnboardingTourStepTargets.Two,
351351
onTargetInteract: () => {
352-
setTimeout(
353-
() => setTourStep(OnboardingTourStepTargets.Three),
354-
1000,
355-
);
352+
setTimeout(() => advanceTourStep(), 1000);
356353
},
357354
} as TourControl)
358355
: undefined,
@@ -641,8 +638,7 @@ export default function Layout() {
641638
opened={openedSidebarLinks.media || false}
642639
tourControl={{
643640
target: OnboardingTourStepTargets.One,
644-
onTargetInteract: () =>
645-
setTourStep(OnboardingTourStepTargets.Two),
641+
onTargetInteract: () => advanceTourStep(),
646642
}}
647643
setOpened={(k) =>
648644
setOpenedSidebarLinks(

0 commit comments

Comments
 (0)