diff --git a/packages/client/src/components/gallery/GalleryCard.tsx b/packages/client/src/components/gallery/GalleryCard.tsx index a3da964..da9a4a6 100644 --- a/packages/client/src/components/gallery/GalleryCard.tsx +++ b/packages/client/src/components/gallery/GalleryCard.tsx @@ -77,7 +77,8 @@ function GalleryCardImpl({ }; }, [originalTags]); - return + return {isDeleted ? (
@@ -93,7 +94,7 @@ function GalleryCardImpl({ className="max-h-full max-w-full object-cover object-center transition-transform duration-300 group-hover:scale-105" />
- + {x.pagenum}
@@ -180,7 +181,7 @@ export function GalleryCardSkeleton({ }: { tagCount?: number; }) { - return + return
diff --git a/packages/client/src/components/gallery/TagInput.tsx b/packages/client/src/components/gallery/TagInput.tsx index 23774fb..44216ae 100644 --- a/packages/client/src/components/gallery/TagInput.tsx +++ b/packages/client/src/components/gallery/TagInput.tsx @@ -112,7 +112,7 @@ export default function TagInput({ )} onClick={() => inputRef.current?.focus()} > -
    +
      {tags.map((tag) =>
    • {tag}
    • )}
    setIsFocused(true)} onBlur={() => setIsFocused(false)} value={input} onChange={(e) => setInput(e.target.value)} onKeyDown={(e) => { if (e.key === "Enter") { @@ -172,7 +172,7 @@ export default function TagInput({
} { - tags.length > 0 && diff --git a/packages/client/src/components/layout/layout.tsx b/packages/client/src/components/layout/layout.tsx index 1dfaf8d..439ac7d 100644 --- a/packages/client/src/components/layout/layout.tsx +++ b/packages/client/src/components/layout/layout.tsx @@ -18,11 +18,11 @@ export default function Layout({ children }: LayoutProps) { "transition-all duration-300 ease-in-out", "border-r bg-background sticky top-0 h-screen", isSidebarOpen ? 'w-64' : 'w-16')}> -
+
{isSidebarOpen && ( -

Ionian

+

Ionian

)} - +
@@ -30,7 +30,7 @@ export default function Layout({ children }: LayoutProps) { {/* Main Content */} -
+
{children}
diff --git a/packages/client/src/components/layout/nav.tsx b/packages/client/src/components/layout/nav.tsx index 1d03ad7..9e2fe1d 100644 --- a/packages/client/src/components/layout/nav.tsx +++ b/packages/client/src/components/layout/nav.tsx @@ -10,7 +10,7 @@ import { useMemo } from "react"; import { useAtom, useAtomValue } from "jotai"; import { sidebarAtom } from "./sidebarAtom"; -const NAV_ICON_CLASS = "size-4"; +export const NAV_ICON_CLASS = "size-4"; const NAV_LINKS = { search: { to: "/search", Icon: SearchIcon }, @@ -103,16 +103,20 @@ export function NavList() { } // 사이드바 토글 버튼 -export function SidebarToggle() { +export function SidebarToggle({ + className, +}: { + className?: string; +}) { const [sidebarState, setSidebarState] = useAtom(sidebarAtom); - const isOpen = sidebarState.isCollapsed; + const isOpen = !sidebarState.isCollapsed; const onToggle = () => setSidebarState((s) => ({ ...s, isCollapsed: !s.isCollapsed })); return ( - @@ -131,7 +135,7 @@ export function MobileSidebarToggle() { return ( ); @@ -151,9 +155,9 @@ export function SidebarNavItem({ children, name, to, className, onClick }: Sideb const isCollapsed = sidebarState.isCollapsed; const buttonClass = cn( - buttonVariants({ variant: "ghost", size: "sm" }), - "rounded-none md:rounded-md", - isCollapsed ? "justify-center size-10 p-0" : "justify-start gap-3 h-10 px-3", + buttonVariants({ variant: "ghost", size: "lg" }), + "rounded-none md:rounded-md flex-1 md:min-h-10 min-h-12 touch-manipulation justify-center", + isCollapsed ? "p-0" : "md:justify-start gap-3 px-3", className ); @@ -205,7 +209,7 @@ export function SidebarNav() { return (
-