diff --git a/frontend/src/lib/components/DocumentTable.svelte b/frontend/src/lib/components/DocumentTable.svelte new file mode 100644 index 0000000..c658d8a --- /dev/null +++ b/frontend/src/lib/components/DocumentTable.svelte @@ -0,0 +1,142 @@ + + +
+ +
+ {#each columns as col} + + {/each} +
+ + + {#each sortedItems() as doc} + + {/each} +
diff --git a/frontend/src/routes/documents/+page.svelte b/frontend/src/routes/documents/+page.svelte index 9f7b3a9..4c95469 100644 --- a/frontend/src/routes/documents/+page.svelte +++ b/frontend/src/routes/documents/+page.svelte @@ -4,11 +4,20 @@ import { api } from '$lib/api'; import { addToast } from '$lib/stores/ui'; import { Info } from 'lucide-svelte'; + import { List, LayoutGrid } from 'lucide-svelte'; import DocumentCard from '$lib/components/DocumentCard.svelte'; + import DocumentTable from '$lib/components/DocumentTable.svelte'; import PreviewPanel from '$lib/components/PreviewPanel.svelte'; import DocumentViewer from '$lib/components/DocumentViewer.svelte'; import UploadDropzone from '$lib/components/UploadDropzone.svelte'; + // 뷰 모드 (localStorage 기억) + let viewMode = $state(typeof localStorage !== 'undefined' ? (localStorage.getItem('viewMode') || 'card') : 'card'); + function toggleViewMode() { + viewMode = viewMode === 'card' ? 'table' : 'card'; + if (typeof localStorage !== 'undefined') localStorage.setItem('viewMode', viewMode); + } + let documents = $state([]); let total = $state(0); let loading = $state(true); @@ -168,6 +177,18 @@ + {#if selectedDoc}