diff --git a/app/api/documents.py b/app/api/documents.py index 862b9cd..ff11fe0 100644 --- a/app/api/documents.py +++ b/app/api/documents.py @@ -72,6 +72,7 @@ class DocumentUpdate(BaseModel): ai_sub_group: str | None = None ai_tags: list | None = None user_note: str | None = None + is_read: bool | None = None edit_url: str | None = None source_channel: str | None = None data_origin: str | None = None diff --git a/frontend/src/routes/news/+page.svelte b/frontend/src/routes/news/+page.svelte index 7c57eea..0ad1fb0 100644 --- a/frontend/src/routes/news/+page.svelte +++ b/frontend/src/routes/news/+page.svelte @@ -22,6 +22,8 @@ let showUnreadOnly = $state(false); let sources = $state([]); let currentPage = $state(1); + let noteEditing = $state(false); + let noteText = $state(''); onMount(async () => { try { @@ -79,6 +81,20 @@ } } + async function saveNote() { + try { + await api(`/documents/${selectedArticle.id}`, { + method: 'PATCH', + body: JSON.stringify({ user_note: noteText }), + }); + selectedArticle.user_note = noteText; + noteEditing = false; + addToast('success', '저장됨'); + } catch (e) { + addToast('error', '저장 실패'); + } + } + function timeAgo(dateStr) { const diff = Date.now() - new Date(dateStr).getTime(); const mins = Math.floor(diff / 60000); @@ -172,26 +188,83 @@ {/if} + + {#if total > 30} +
+ {#each Array(Math.ceil(total / 30)) as _, i} + + {/each} +
+ {/if} + {#if selectedArticle} -
-

{selectedArticle.title}

-
- {selectedArticle.ai_sub_group} - · - {timeAgo(selectedArticle.created_at)} +
+ +
+
+ {selectedArticle.ai_sub_group} + · + {timeAgo(selectedArticle.created_at)} + · + {selectedArticle.file_format} +
+
+ {#if selectedArticle.edit_url} + 원문 보기 → + {/if} + 상세 + +
-
- {@html renderMd(selectedArticle.extracted_text || '')} + + +
+

{selectedArticle.title}

+
+ {@html renderMd(selectedArticle.extracted_text || '')} +
+ + + {#if noteEditing} +
+

본문 / 메모 입력

+ +
+ + +
+
+ {:else} + + {#if selectedArticle.user_note} +
+ {selectedArticle.user_note} +
+ {/if} + {/if}
- {#if selectedArticle.edit_url} - 원문 보기 → - {/if}
{/if}