import React, { useState } from 'react';
import { Head } from '@inertiajs/react';
import AdminLayout from '../../../Layouts/AdminLayout';
import { Megaphone, Plus, Trash2, Send, CheckCircle2 } from 'lucide-react';
export default function Announcements() {
const [announcements, setAnnouncements] = useState([
{
id: 1,
title: 'New Visa Regulations Update',
content: 'The Ministry of Human Resources and Emiratisation has announced updated guidelines for domestic worker sponsorship starting this month.',
audience: 'Both',
created_at: 'May 10, 2026',
},
{
id: 2,
title: 'Enhanced OCR Verification Active',
content: 'We have deployed upgraded OCR passport verification to ensure 100% legal compliance for all worker profiles on the platform.',
audience: 'Employers',
created_at: 'May 1, 2026',
},
]);
const [isFormOpen, setIsFormOpen] = useState(false);
const [newAnnouncement, setNewAnnouncement] = useState({ title: '', content: '', audience: 'Both' });
const [errors, setErrors] = useState({});
const [toastMessage, setToastMessage] = useState(null);
const showToast = (message) => {
setToastMessage(message);
setTimeout(() => setToastMessage(null), 3000);
};
const handleCreate = (e) => {
e.preventDefault();
let newErrors = {};
if (!newAnnouncement.title.trim()) newErrors.title = 'Title is required';
if (!newAnnouncement.content.trim()) newErrors.content = 'Content is required';
if (Object.keys(newErrors).length > 0) {
setErrors(newErrors);
return;
}
const newEntry = {
id: announcements.length + 1,
title: newAnnouncement.title,
content: newAnnouncement.content,
audience: newAnnouncement.audience,
created_at: 'Just now',
};
setAnnouncements([newEntry, ...announcements]);
setNewAnnouncement({ title: '', content: '', audience: 'Both' });
setErrors({});
setIsFormOpen(false);
showToast('Announcement sent successfully');
};
const handleDelete = (id) => {
setAnnouncements(announcements.filter(a => a.id !== id));
showToast('Announcement deleted');
};
return (
Broadcast messages to employers and workers.
No announcements published yet.
{ann.content}