Skip to content

Commit ade0ca8

Browse files
committed
Profile menu refresh when selected year changes
1 parent cfee3e2 commit ade0ca8

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

hooks/useUserData.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ interface UseUserDataReturn extends UserData {
88
isLoading: boolean;
99
}
1010

11-
export const useUserData = (): UseUserDataReturn & {
11+
export const useUserData = (
12+
selectedYearRange?: string
13+
): UseUserDataReturn & {
1214
refetchUserData: () => void;
1315
} => {
1416
const { data: session, status } = useSession();
@@ -34,18 +36,16 @@ export const useUserData = (): UseUserDataReturn & {
3436
const today = new Date();
3537
const currentYear =
3638
today.getMonth() >= 8 ? today.getFullYear() : today.getFullYear() - 1;
37-
const selectedYearRange = `${currentYear} - ${currentYear + 1}`;
39+
const yearRange =
40+
selectedYearRange ?? `${currentYear} - ${currentYear + 1}`;
3841

3942
setFetchedUserData({
4043
id: user.id,
4144
name: `${user.firstName} ${user.lastName}`,
4245
email: user.email,
4346
image: user.profilePicture ?? undefined,
4447
role: user.role as Role,
45-
usedAbsences: getSelectedYearAbsences(
46-
user.absences,
47-
selectedYearRange
48-
),
48+
usedAbsences: getSelectedYearAbsences(user.absences, yearRange),
4949
});
5050
} catch (error) {
5151
console.error('Failed to fetch user data:', error);
@@ -55,7 +55,7 @@ export const useUserData = (): UseUserDataReturn & {
5555
} else if (status !== 'loading') {
5656
setIsLoading(false);
5757
}
58-
}, [session?.user?.id, status]);
58+
}, [session?.user?.id, status, selectedYearRange]);
5959

6060
useEffect(() => {
6161
fetchUser();

src/pages/dashboard.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,14 @@ import TotalAbsencesCard from '../components/TotalAbsencesCard';
99
import UserManagementCard from '../components/UserManagementCard';
1010
export default function DashboardPage() {
1111
const theme = useTheme();
12-
const userData = useUserData();
1312
const router = useRouter();
1413
const currentYear = new Date().getFullYear();
1514

1615
const [selectedYearRange, setSelectedYearRange] = useState(
1716
`${currentYear - 1} - ${currentYear}`
1817
);
18+
const userData = useUserData(selectedYearRange);
19+
1920
const [absenceData, setAbsenceData] = useState<YearlyAbsenceData[]>([]);
2021
const [loading, setLoading] = useState(true);
2122
const [startYear, endYear] = selectedYearRange.split(' - ');

0 commit comments

Comments
 (0)