diff --git a/src/components/Header.tsx b/src/components/Header.tsx index a51efc9..8f39513 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -4,6 +4,7 @@ import { Bell } from 'lucide-react'; import { useAuth } from '@/contexts/auth'; import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; import { Skeleton } from '@/components/ui/skeleton'; +import { useIsMobile } from '@/hooks/use-mobile'; const Header: React.FC = () => { const { @@ -12,6 +13,7 @@ const Header: React.FC = () => { const userName = user?.user_metadata?.username || '익명'; const [imageLoaded, setImageLoaded] = useState(false); const [imageError, setImageError] = useState(false); + const isMobile = useIsMobile(); // 이미지 프리로딩 처리 useEffect(() => { diff --git a/src/components/analytics/SummaryCards.tsx b/src/components/analytics/SummaryCards.tsx index 46ef474..5c0286d 100644 --- a/src/components/analytics/SummaryCards.tsx +++ b/src/components/analytics/SummaryCards.tsx @@ -24,36 +24,90 @@ const SummaryCards: React.FC = ({ return (
-
- -

예산

-
-

- {formatCurrency(totalBudget)} -

-
-
-
- -

지출

-
-

- {formatCurrency(totalExpense)} -

-
-
-
- -

잔액

-
- {isOverBudget ? ( -

- 초과액: {formatCurrency(Math.abs(remainingBudget))} -

+ {isMobile ? ( + // 모바일 레이아웃 (1줄: 아이콘, 제목, 금액 가로배치) +
+
+ +

예산

+
+

+ {formatCurrency(totalBudget)} +

+
) : ( -

- {formatCurrency(remainingBudget)} -

+ // 데스크탑 레이아웃 (2줄: 아이콘과 제목이 첫째 줄, 금액이 둘째 줄) + <> +
+ +

예산

+
+

+ {formatCurrency(totalBudget)} +

+ + )} +
+
+ {isMobile ? ( + // 모바일 레이아웃 (1줄: 아이콘, 제목, 금액 가로배치) +
+
+ +

지출

+
+

+ {formatCurrency(totalExpense)} +

+
+ ) : ( + // 데스크탑 레이아웃 (2줄: 아이콘과 제목이 첫째 줄, 금액이 둘째 줄) + <> +
+ +

지출

+
+

+ {formatCurrency(totalExpense)} +

+ + )} +
+
+ {isMobile ? ( + // 모바일 레이아웃 (1줄: 아이콘, 제목, 금액 가로배치) +
+
+ +

잔액

+
+ {isOverBudget ? ( +

+ 초과액: {formatCurrency(Math.abs(remainingBudget))} +

+ ) : ( +

+ {formatCurrency(remainingBudget)} +

+ )} +
+ ) : ( + // 데스크탑 레이아웃 (2줄: 아이콘과 제목이 첫째 줄, 금액이 둘째 줄) + <> +
+ +

잔액

+
+ {isOverBudget ? ( +

+ 초과액: {formatCurrency(Math.abs(remainingBudget))} +

+ ) : ( +

+ {formatCurrency(remainingBudget)} +

+ )} + )}