Skip to content

Commit b2a0aea

Browse files
committed
feat(frontend): add sidebar links state management
- Introduce OpenedSidebarLinks type for tracking sidebar section states - Create openedSidebarLinksAtom with persistent storage - Implement useOpenedSidebarLinks hook for managing sidebar link states
1 parent 634ca2b commit b2a0aea

File tree

1 file changed

+24
-24
lines changed

1 file changed

+24
-24
lines changed

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

+24-24
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,30 @@ import { atomWithStorage } from "jotai/utils";
33
import { useEffect } from "react";
44
import type { Step } from "react-joyride";
55

6+
type OpenedSidebarLinks = {
7+
media: boolean;
8+
fitness: boolean;
9+
settings: boolean;
10+
collection: boolean;
11+
};
12+
13+
const openedSidebarLinksAtom = atomWithStorage<OpenedSidebarLinks>(
14+
"OpenedSidebarLinks",
15+
{
16+
media: false,
17+
fitness: false,
18+
settings: false,
19+
collection: false,
20+
},
21+
);
22+
23+
export const useOpenedSidebarLinks = () => {
24+
const [openedSidebarLinks, setOpenedSidebarLinks] = useAtom(
25+
openedSidebarLinksAtom,
26+
);
27+
return { openedSidebarLinks, setOpenedSidebarLinks };
28+
};
29+
630
export const OnboardingTourStepTargets = {
731
One: "tour-step-1",
832
Two: "tour-step-2",
@@ -57,27 +81,3 @@ export const useOnboardingTour = () => {
5781
stepIndex: tourState?.currentStepIndex,
5882
};
5983
};
60-
61-
type OpenedSidebarLinks = {
62-
media: boolean;
63-
fitness: boolean;
64-
settings: boolean;
65-
collection: boolean;
66-
};
67-
68-
const openedSidebarLinksAtom = atomWithStorage<OpenedSidebarLinks>(
69-
"OpenedSidebarLinks",
70-
{
71-
media: false,
72-
fitness: false,
73-
settings: false,
74-
collection: false,
75-
},
76-
);
77-
78-
export const useOpenedSidebarLinks = () => {
79-
const [openedSidebarLinks, setOpenedSidebarLinks] = useAtom(
80-
openedSidebarLinksAtom,
81-
);
82-
return { openedSidebarLinks, setOpenedSidebarLinks };
83-
};

0 commit comments

Comments
 (0)