'use client' import type { AdminEventDetailData } from './types' import { useState } from 'react' import Input from '@/components/formElements/Input' import Modal from '@/components/modals/Modal' import { coerceToString } from '@/helpers' import { rejectEventAsAdmin } from '@/services/events' import useAdminAction from '@/hooks/useAdminAction' interface AdminEventRejectModalProps { eventId: string isOpen: boolean onOpenChange: (open: boolean) => void onRejected: (updated: AdminEventDetailData) => void } const AdminEventRejectModal = ({ eventId, isOpen, onOpenChange, onRejected }: AdminEventRejectModalProps) => { const [rejectionReason, setRejectionReason] = useState('') const { pendingId, runAction } = useAdminAction() const reset = () => { setRejectionReason('') } const handleReject = () => runAction( 'reject', async () => { const updated = (await rejectEventAsAdmin(eventId, rejectionReason.trim())) as AdminEventDetailData onRejected(updated) onOpenChange(false) reset() }, 'رویداد رد شد و برای اصلاح به پیش‌نویس بازگشت' ) return ( void handleReject()} onOpenChange={(open) => { onOpenChange(open) if (!open) reset() }} onReject={() => { onOpenChange(false) reset() }} >

دلیل رد برای میزبان ارسال می‌شود تا بتواند رویداد را اصلاح و دوباره برای بررسی ارسال کند.

{ setRejectionReason(coerceToString(value)) }} />
) } export default AdminEventRejectModal