diff --git a/attached_assets/image_1755349302710.png b/attached_assets/image_1755349302710.png new file mode 100644 index 0000000..8eb1e2e Binary files /dev/null and b/attached_assets/image_1755349302710.png differ diff --git a/client/src/components/AnnouncementCard.tsx b/client/src/components/AnnouncementCard.tsx index 7716baf..8fbc87c 100644 --- a/client/src/components/AnnouncementCard.tsx +++ b/client/src/components/AnnouncementCard.tsx @@ -4,7 +4,7 @@ import { useStore } from "@/components/Layout"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; -import { Megaphone, Plus, X, AlertTriangle, Info, Bell } from "lucide-react"; +import { Megaphone, Plus, X, AlertTriangle, Clock, Circle } from "lucide-react"; import { useState } from "react"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from "@/components/ui/dialog"; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "@/components/ui/form"; @@ -199,20 +199,40 @@ export default function AnnouncementCard() { ); } + const getPriorityConfig = (priority: string) => { + switch (priority) { + case 'urgent': + return { + color: 'destructive' as const, + icon: AlertTriangle, + label: 'Urgente' + }; + case 'important': + return { + color: 'default' as const, + icon: Clock, + label: 'Importante' + }; + case 'normal': + default: + return { + color: 'secondary' as const, + icon: Circle, + label: 'Normale' + }; + } + }; + return ( Informations - - - - {user?.role === 'admin' && ( -
+
+ {user?.role === 'admin' && ( - @@ -318,9 +338,11 @@ export default function AnnouncementCard() { -
- )} - + )} + +
+ + {announcements.length === 0 ? (
@@ -331,6 +353,9 @@ export default function AnnouncementCard() { ) : (
{announcements.map((announcement) => { + const priorityConfig = getPriorityConfig(announcement.priority); + const PriorityIcon = priorityConfig.icon; + return (
@@ -338,26 +363,25 @@ export default function AnnouncementCard() {

{announcement.title}

- - - {getPriorityIcon(announcement.priority)} - {announcement.priority === 'urgent' ? 'Urgent' : - announcement.priority === 'important' ? 'Important' : 'Normal'} - + + + {priorityConfig.label}
-

- {announcement.content} -

+ {announcement.content && ( +

+ {announcement.content} +

+ )}
- Par {announcement.author.firstName} {announcement.author.lastName} - {announcement.group && ` • ${announcement.group.name}`} + {safeFormat(safeDate(announcement.createdAt), 'dd/MM à HH:mm')} - {safeFormat(safeDate(announcement.createdAt), 'dd/MM HH:mm')} + {announcement.author.firstName} {announcement.author.lastName} + {announcement.group && ` • ${announcement.group.name}`}