fix(events): show proposed FAQs on pending revision review

Surface revision-payload FAQs on the pending card so admins can review
another host's FAQ changes alongside title/slug.
This commit is contained in:
alisaza 2026-09-11 18:03:08 +03:30
parent ffa2e2b904
commit 116d1be258
2 changed files with 20 additions and 3 deletions

View File

@ -13,7 +13,8 @@ interface AdminEventPendingRevisionCardProps {
}
const AdminEventPendingRevisionCard = ({ pendingId, revision, onApprove, onReject }: AdminEventPendingRevisionCardProps) => {
const { title, slug } = revision.payload
const { title, slug, faqs } = revision.payload
const proposedFaqs = Array.isArray(faqs) ? faqs : []
return (
<Card className="admin-surface">
@ -43,6 +44,21 @@ const AdminEventPendingRevisionCard = ({ pendingId, revision, onApprove, onRejec
) : null}
</dl>
{proposedFaqs.length > 0 ? (
<div className="space-y-2 text-right">
<p className="text-xs text-secondary-30">سوالات متداول پیشنهادی ({proposedFaqs.length.toLocaleString('fa-IR')})</p>
{proposedFaqs.map((faq, index) => (
<div
key={`${faq.question}-${index}`}
className="rounded-xl border border-secondary-40 bg-secondary-50/60 p-3"
>
<h3 className="text-sm font-bold text-secondary-20">{faq.question}</h3>
<p className="mt-1 whitespace-pre-line text-xs leading-6 text-secondary-30">{faq.answer}</p>
</div>
))}
</div>
) : null}
<div className="flex flex-wrap items-center justify-end gap-2">
<Button
isLoading={pendingId === 'approve-revision'}

View File

@ -9,8 +9,9 @@ export type EventFaq = EventFaqResponseDto
const eventExtrasApi = getEventExtras()
/**
* Shared public list endpoints backend allows admin reads for event detail/edit.
* No dedicated admin media/FAQ list routes exist in OpenAPI.
* Shared public list endpoints after backend admin bypass on list reads,
* authenticated admins can load media/FAQs for any non-deleted event
* (detail + edit pages for another host's event).
*/
export async function fetchEventMedia(eventId: string): Promise<EventMedia[]> {
const response = await eventExtrasApi.eventMediaControllerList(eventId)