diff --git a/frontend/src/lib/components/CommentThread.svelte b/frontend/src/lib/components/CommentThread.svelte
index d9b0a8c7..d8decb91 100644
--- a/frontend/src/lib/components/CommentThread.svelte
+++ b/frontend/src/lib/components/CommentThread.svelte
@@ -17,6 +17,7 @@ type Props = {
canAdmin: boolean;
targetCommentId?: string | null;
quotedText?: string | null;
+ showCompose?: boolean;
onCountChange?: (count: number) => void;
};
@@ -31,6 +32,7 @@ let {
canAdmin,
targetCommentId = null,
quotedText = null,
+ showCompose = true,
onCountChange
}: Props = $props();
@@ -357,7 +359,7 @@ onMount(async () => {
{/each}
- {#if canComment}
+ {#if canComment && showCompose}
-
- {#if commentOpen}
-
-
-
- {m.comment_section_title()}
-
-
-
-
-
- {/if}
+
+
+
+
diff --git a/frontend/src/lib/components/TranscriptionBlock.svelte.spec.ts b/frontend/src/lib/components/TranscriptionBlock.svelte.spec.ts
index bd536d4d..7489ed52 100644
--- a/frontend/src/lib/components/TranscriptionBlock.svelte.spec.ts
+++ b/frontend/src/lib/components/TranscriptionBlock.svelte.spec.ts
@@ -16,7 +16,6 @@ function renderBlock(overrides: Record = {}) {
saveState: 'idle' as const,
canComment: true,
currentUserId: 'user-1',
- commentCount: 0,
onTextChange: vi.fn(),
onFocus: vi.fn(),
onDeleteClick: vi.fn(),
diff --git a/frontend/src/lib/components/TranscriptionEditView.svelte b/frontend/src/lib/components/TranscriptionEditView.svelte
index 31c40f5f..4bb02688 100644
--- a/frontend/src/lib/components/TranscriptionEditView.svelte
+++ b/frontend/src/lib/components/TranscriptionEditView.svelte
@@ -30,34 +30,9 @@ let activeBlockId: string | null = $state(null);
let saveStates = new SvelteMap();
let debounceTimers = new SvelteMap>();
let pendingTexts = new SvelteMap();
-let commentCounts = new SvelteMap();
-
let sortedBlocks = $derived([...blocks].sort((a, b) => a.sortOrder - b.sortOrder));
let hasBlocks = $derived(blocks.length > 0);
-async function loadCommentCounts() {
- for (const block of blocks) {
- try {
- const res = await fetch(
- `/api/documents/${documentId}/transcription-blocks/${block.id}/comments`
- );
- if (res.ok) {
- const comments = (await res.json()) as Array<{ replies: unknown[] }>;
- const total = comments.reduce((s, c) => s + 1 + (c.replies?.length ?? 0), 0);
- commentCounts.set(block.id, total);
- }
- } catch {
- // ignore
- }
- }
-}
-
-$effect(() => {
- if (blocks.length > 0) {
- loadCommentCounts();
- }
-});
-
function getSaveState(blockId: string): SaveState {
return saveStates.get(blockId) ?? 'idle';
}
@@ -191,7 +166,6 @@ $effect(() => {
saveState={getSaveState(block.id)}
canComment={canComment}
currentUserId={currentUserId}
- commentCount={commentCounts.get(block.id) ?? 0}
onTextChange={(text) => handleTextChange(block.id, text)}
onFocus={() => handleFocus(block.id)}
onDeleteClick={() => handleDelete(block.id)}