From 3b4640f127a42c0b2f05524d41d53c4268a495e7 Mon Sep 17 00:00:00 2001 From: Dominik Hryshaiev Date: Mon, 30 Dec 2024 03:53:42 +0200 Subject: [PATCH] fix(calendar): correct retrieval date from entries map in cells (#144) * fix(calendar): correct retrieval date from entries map in cells * refactor: useFetchOnAuth --- .../calendar-month/CalendarCell.tsx | 5 +- src/components/header/Header.tsx | 19 ++++++- src/helpers/calendar.ts | 55 +++++++++++++++++++ src/hooks/useFetchOnAuth.ts | 17 ++++-- src/models/occurrence.model.ts | 4 +- src/stores/habits.store.ts | 2 +- src/stores/notes.store.ts | 2 +- src/stores/occurrences.store.ts | 10 ++-- src/stores/traits.store.ts | 2 +- 9 files changed, 97 insertions(+), 19 deletions(-) diff --git a/src/components/calendar-month/CalendarCell.tsx b/src/components/calendar-month/CalendarCell.tsx index 3cb7933..a6c1438 100644 --- a/src/components/calendar-month/CalendarCell.tsx +++ b/src/components/calendar-month/CalendarCell.tsx @@ -1,3 +1,4 @@ +import { isCalendarDay } from '@helpers'; import { useScreenSize } from '@hooks'; import { Button, Tooltip } from '@nextui-org/react'; import { @@ -68,9 +69,9 @@ const CalendarCell = ({ const screenSize = useScreenSize(); const date = format( new Date(fullYear, monthNumber - 1, dateNumber), - 'yyyy-MM-dd' + 'yyyy-MM-d' ); - const occurrences = occurrencesByDate[date] || []; + const occurrences = isCalendarDay(date) ? occurrencesByDate[date] || [] : []; const isMobile = screenSize < 768; const hasNote = notes.some((note) => note.day === date); diff --git a/src/components/header/Header.tsx b/src/components/header/Header.tsx index e1ba845..db8d573 100644 --- a/src/components/header/Header.tsx +++ b/src/components/header/Header.tsx @@ -1,6 +1,6 @@ import { AuthModalButton } from '@components'; import { useFetchOnAuth, useScreenSize } from '@hooks'; -import { Button, Tooltip } from '@nextui-org/react'; +import { Button, Spinner, Tooltip } from '@nextui-org/react'; import { GithubLogo } from '@phosphor-icons/react'; import React from 'react'; import { Link } from 'react-router-dom'; @@ -8,11 +8,26 @@ import { Link } from 'react-router-dom'; import ThemeToggle from './ThemeToggle'; const Header = () => { - useFetchOnAuth(); + const { hasFetched } = useFetchOnAuth(); const screenSize = useScreenSize(); return (
+ {!hasFetched && ( +
+
+ +
+
+ )}