refactor: 사이드바를 전역 레이아웃으로 이동

- +layout.svelte: 사이드바 + 상단 nav 통합 (로그인/셋업 제외)
- 각 페이지 중복 nav 제거 (dashboard, documents, detail, inbox, settings)
- 모바일 drawer + ESC 닫기 전역 처리

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-04-03 09:00:20 +09:00
parent 87747866b6
commit 1a2b3b49af
6 changed files with 191 additions and 212 deletions

View File

@@ -2,8 +2,7 @@
import { onMount } from 'svelte';
import { goto } from '$app/navigation';
import { api } from '$lib/api';
import { isAuthenticated, user, logout } from '$lib/stores/auth';
import { sidebarOpen, addToast } from '$lib/stores/ui';
import { addToast } from '$lib/stores/ui';
let dashboard = null;
let loading = true;
@@ -19,25 +18,8 @@
});
</script>
<div class="min-h-screen">
<!-- 상단 네비게이션 -->
<nav class="flex items-center justify-between px-6 py-3 border-b border-[var(--border)] bg-[var(--surface)]">
<div class="flex items-center gap-4">
<button onclick={() => sidebarOpen.update(v => !v)} class="text-[var(--text-dim)] hover:text-[var(--text)]">
&#9776;
</button>
<h1 class="text-lg font-semibold">hyungi Document Server</h1>
</div>
<div class="flex items-center gap-4">
<a href="/documents" class="text-sm text-[var(--text-dim)] hover:text-[var(--text)]">문서</a>
<a href="/inbox" class="text-sm text-[var(--text-dim)] hover:text-[var(--text)]">Inbox</a>
<span class="text-sm text-[var(--text-dim)]">{$user?.username}</span>
<button onclick={() => { logout(); goto('/login'); }} class="text-sm text-[var(--error)] hover:underline">로그아웃</button>
</div>
</nav>
<!-- 대시보드 -->
<div class="max-w-6xl mx-auto p-6">
<div class="p-4 lg:p-6">
<div class="max-w-6xl mx-auto">
<h2 class="text-xl font-bold mb-6">대시보드</h2>
{#if loading}