From 7ee5ebd50646b9d5c43f1bdbaf28463c98197d0b Mon Sep 17 00:00:00 2001 From: jcchoi Date: Thu, 1 Oct 2026 20:26:45 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B8=80=EC=9E=90=20=ED=99=95=EB=8C=80=20?= =?UTF-8?q?=EC=B6=95=EC=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/components/src/ui/header/index.tsx | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/packages/common/components/src/ui/header/index.tsx b/packages/common/components/src/ui/header/index.tsx index e1318a6d4..2d3209aa2 100644 --- a/packages/common/components/src/ui/header/index.tsx +++ b/packages/common/components/src/ui/header/index.tsx @@ -2,6 +2,7 @@ import "./header.css"; import { useEffect, useCallback, useState, useRef } from "react"; import { useQuery } from "@tanstack/react-query"; +import { Minus, Plus } from "lucide-react"; import { images } from "@common/assets"; import type { AuthService, TokenManager } from "@common/auth"; import { getRemainingMs } from "@common/auth"; @@ -383,6 +384,7 @@ export function Header({ {/* 데스크톱에서 오른쪽 요소들 */}
+ {mounted ? ( isLoggedIn && ( @@ -411,6 +413,48 @@ export function Header({ ); } +function ScreenZoomControls() { + const [scale, setScale] = useState(1); + + const updateScale = (nextScale: number) => { + const boundedScale = Math.min(2, Math.max(0.5, nextScale)); + document.body.style.zoom = String(boundedScale); + setScale(boundedScale); + }; + + return ( +
+ + + {Math.round(scale * 100)}% + + +
+ ); +} + function UserMenuContent({ remainingMs, onLogout,