"use client" import { useState } from "react" import Link from "next/link" import { useRouter } from "next/navigation" import { toast } from "sonner" import { useTranslations } from "next-intl" import { ArrowLeft, Send } from "lucide-react" import { Button } from "@/shared/components/ui/button" import { Card, CardContent, CardFooter, CardHeader, CardTitle } from "@/shared/components/ui/card" import { Input } from "@/shared/components/ui/input" import { Label } from "@/shared/components/ui/label" import { Textarea } from "@/shared/components/ui/textarea" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/shared/components/ui/select" import { sendMessageAction } from "../actions" import type { RecipientOption } from "../types" export function MessageCompose({ recipients, parentMessageId, defaultReceiverId, defaultSubject, backHref = "/messages", }: { recipients: RecipientOption[] parentMessageId?: string defaultReceiverId?: string defaultSubject?: string backHref?: string }) { const t = useTranslations("messages") const router = useRouter() const [isWorking, setIsWorking] = useState(false) const [receiverId, setReceiverId] = useState(defaultReceiverId ?? "") const handleSubmit = async (formData: FormData) => { if (!receiverId) { toast.error(t("messages.selectRecipient")) return } formData.set("receiverId", receiverId) if (parentMessageId) { formData.set("parentMessageId", parentMessageId) } setIsWorking(true) try { const res = await sendMessageAction(null, formData) if (res.success) { toast.success(res.message) router.push("/messages") router.refresh() } else { toast.error(res.message || t("messages.sendFailed")) } } catch { toast.error(t("messages.sendFailed")) } finally { setIsWorking(false) } } return (
{parentMessageId ? t("title.reply") : t("title.newMessage")}