+ return
{initialComment && initialTarget &&
การสนทนาจากการแจ้งเตือน
feed.refresh({ silent: true })} />
}
-
+
ไกด์หรือรอบ Stygian
item.label} itemToStringValue={(item) => item.value}
searchNames={(item) => [item.label]} autoHighlight>
@@ -49,27 +44,35 @@ export function AdminCommentInbox({ initial, targets, initialTarget, initialComm
ไม่พบไกด์ที่ตรงกัน{(item: TargetOption) => {item.label.slice(0, 2)}{item.label}}
- การแสดงผล { if (values[0]) setStatus(values[0]); }} variant="outline" aria-label="กรองการแสดงผลความคิดเห็น">
+ การแสดงผล { if (values[0]) setStatus(values[0]); }} variant="outline" aria-label="กรองการแสดงผลความคิดเห็น">
ทั้งหมดแสดงอยู่ซ่อนอยู่
- การตอบกลับจากผู้ดูแล { if (values[0]) setAnswered(values[0]); }} variant="outline" aria-label="กรองการตอบกลับจากผู้ดูแล">
+ การตอบกลับจากผู้ดูแล { if (values[0]) setAnswered(values[0]); }} variant="outline" aria-label="กรองการตอบกลับจากผู้ดูแล">
ทุกความคิดเห็นยังไม่ได้ตอบ
+
-
{feed.error && {feed.error}}
- {Array.from(groups, ([targetKey, items]) =>
-
- {items[0].targetImage && <>
- {/* eslint-disable-next-line @next/next/no-img-element */}
-
- >}
- {items[0].targetName}
-
- {items.map((item) => feed.refresh({ silent: true, forceRevision: true })} revision={feed.revision} />)}
- )}
+ {feed.page.items.length > 0 &&
+
+ ความคิดเห็นเนื้อหา
+
+
+ {feed.page.items.map((item) =>
+
+
feed.refresh({ silent: true, forceRevision: true })} revision={feed.revision}
+ overview={item.target.startsWith("stygian:") ?
+ {item.targetName}
+ : item.targetImage &&
+ {/* eslint-disable-next-line @next/next/no-img-element */}
+
+ } />
+
+
+
)}
+ }
{!feed.page.items.length && !feed.busy && !feed.error && ไม่พบความคิดเห็นที่ตรงกันความคิดเห็นจากทุกไกด์และทุกรอบ Stygian จะแสดงที่นี่}
- {feed.busy && }
+ {feed.busy && }
{feed.page.nextCursor && }
;
}
diff --git a/components/comments/comment-card.tsx b/components/comments/comment-card.tsx
index 7fb66ed..373fd85 100644
--- a/components/comments/comment-card.tsx
+++ b/components/comments/comment-card.tsx
@@ -2,7 +2,7 @@
import { useRouter } from "next/navigation";
-import { useCallback, useEffect, useRef, useState, useSyncExternalStore } from "react";
+import { useCallback, useEffect, useRef, useState, useSyncExternalStore, type ReactNode } from "react";
import { ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, EllipsisVerticalIcon, HeartIcon, ThumbsDownIcon, ThumbsUpIcon } from "lucide-react";
import { toast } from "sonner";
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar";
@@ -116,8 +116,8 @@ function RevisionHistory({ id }: { id: string }) {
;
}
-export function CommentCard({ item, viewer, onChange, revision = 0, inbox = false, moderationDetails = false, replies = true, defaultExpanded = false, focusReplyId, highlighted = false }: {
- item: CommentItem; viewer: CommentViewer | null; onChange: () => void | Promise