diff --git a/src/components/HeroSection/HeroItemsGroup.tsx b/src/components/HeroSection/HeroItemsGroup.tsx index d3c63ce6d..3bfa6c077 100644 --- a/src/components/HeroSection/HeroItemsGroup.tsx +++ b/src/components/HeroSection/HeroItemsGroup.tsx @@ -1,4 +1,4 @@ -import type { ReactNode } from 'react'; +import { useEffect, useState, type ReactNode } from 'react'; import { cn } from '../../lib/classname'; import { HeroTitle } from './HeroTitle'; @@ -23,15 +23,19 @@ export function HeroItemsGroup(props: HeroItemsGroupProps) { className, } = props; - const isCollapsed = isAllCollapsed || isLoading; + const [isCollapsed, setIsCollapsed] = useState(isLoading || isAllCollapsed); + + useEffect(() => { + setIsCollapsed(isAllCollapsed || isLoading); + }, [isAllCollapsed, isLoading]); return (
{ + setIsCollapsed(!isCollapsed); + }} /> {!isCollapsed && (
diff --git a/src/components/HeroSection/HeroTitle.tsx b/src/components/HeroSection/HeroTitle.tsx index e0521d6fa..7d321177b 100644 --- a/src/components/HeroSection/HeroTitle.tsx +++ b/src/components/HeroSection/HeroTitle.tsx @@ -9,6 +9,7 @@ type HeroTitleProps = { title: string | ReactNode; rightContent?: ReactNode; isCollapsed?: boolean; + onToggleCollapse?: () => void; }; export function HeroTitle(props: HeroTitleProps) { @@ -18,6 +19,7 @@ export function HeroTitle(props: HeroTitleProps) { icon, rightContent, isCollapsed = false, + onToggleCollapse, } = props; return ( @@ -32,6 +34,7 @@ export function HeroTitle(props: HeroTitleProps) { {title} {!isLoading && (
); }