From 80d69dd051a66e3cbd32d7ad85a99dfef3f7489b Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Fri, 23 Aug 2024 12:04:02 +0100 Subject: [PATCH] Add streaks --- .../AccountStreak/AccountStreak.tsx | 51 ++++++++++++++----- src/components/AccountStreak/StreakDay.tsx | 24 ++++----- 2 files changed, 51 insertions(+), 24 deletions(-) diff --git a/src/components/AccountStreak/AccountStreak.tsx b/src/components/AccountStreak/AccountStreak.tsx index 904e8ea08..50240329f 100644 --- a/src/components/AccountStreak/AccountStreak.tsx +++ b/src/components/AccountStreak/AccountStreak.tsx @@ -5,6 +5,12 @@ import { useToast } from '../../hooks/use-toast'; import { Flame, X } from 'lucide-react'; import { useOutsideClick } from '../../hooks/use-outside-click'; import { StreakDay } from './StreakDay'; +import { + navigationDropdownOpen, + roadmapsDropdownOpen, +} from '../../stores/page.ts'; +import { useStore } from '@nanostores/react'; +import { cn } from '../../lib/classname.ts'; type StreakResponse = { count: number; @@ -29,6 +35,15 @@ export function AccountStreak(props: AccountStreakProps) { }); const [showDropdown, setShowDropdown] = useState(false); + const $roadmapsDropdownOpen = useStore(roadmapsDropdownOpen); + const $navigationDropdownOpen = useStore(navigationDropdownOpen); + + useEffect(() => { + if ($roadmapsDropdownOpen || $navigationDropdownOpen) { + setShowDropdown(false); + } + }, [$roadmapsDropdownOpen, $navigationDropdownOpen]); + const loadAccountStreak = async () => { if (!isLoggedIn()) { return; @@ -76,7 +91,12 @@ export function AccountStreak(props: AccountStreakProps) { return (