feat: Phase 1C — 프리뷰 패널 (문서 선택 시 우측 표시)
- PreviewPanel: AI 요약, 태그, 메타 정보, 처리 상태 표시 - DocumentCard: 선택 모드 지원 (클릭→프리뷰, 더블클릭 불필요) - 3-pane 완성: sidebar | document list | preview panel - 필터 변경 시 선택 자동 해제 - 데스크톱만 표시 (모바일은 detail 페이지로 이동) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
import FormatIcon from './FormatIcon.svelte';
|
||||
import TagPill from './TagPill.svelte';
|
||||
|
||||
let { doc, showDomain = true } = $props();
|
||||
let { doc, showDomain = true, selected = false, onselect = null } = $props();
|
||||
|
||||
function formatDate(dateStr) {
|
||||
if (!dateStr) return '';
|
||||
@@ -23,9 +23,13 @@
|
||||
}
|
||||
</script>
|
||||
|
||||
<a
|
||||
href="/documents/{doc.id}"
|
||||
class="flex items-start gap-3 p-3 bg-[var(--surface)] border border-[var(--border)] rounded-lg hover:border-[var(--accent)] transition-colors group"
|
||||
{@const Tag = onselect ? 'button' : 'a'}
|
||||
<svelte:element
|
||||
this={Tag}
|
||||
href={onselect ? undefined : `/documents/${doc.id}`}
|
||||
onclick={onselect ? (e) => { e.preventDefault(); onselect(doc); } : undefined}
|
||||
class="flex items-start gap-3 p-3 bg-[var(--surface)] border rounded-lg hover:border-[var(--accent)] transition-colors group w-full text-left
|
||||
{selected ? 'border-[var(--accent)] bg-[var(--accent)]/5' : 'border-[var(--border)]'}"
|
||||
>
|
||||
<!-- 포맷 아이콘 -->
|
||||
<div class="shrink-0 mt-0.5 text-[var(--text-dim)] group-hover:text-[var(--accent)]">
|
||||
@@ -76,4 +80,4 @@
|
||||
<span class="text-[var(--text-dim)]">{formatSize(doc.file_size)}</span>
|
||||
{/if}
|
||||
</div>
|
||||
</a>
|
||||
</svelte:element>
|
||||
|
||||
Reference in New Issue
Block a user