From 1575168d9dfe38ecfa61b1a5f2580d93c788f37f Mon Sep 17 00:00:00 2001 From: ReaSlyn Date: Fri, 16 May 2025 10:36:41 +0200 Subject: [PATCH] feat: add accepted task badges --- app/components/talks/PendingTalksList.tsx | 29 ----------------------- app/components/talks/TalksList.tsx | 4 ---- app/components/talks/TalksSchedule.tsx | 10 -------- app/pages/index.tsx | 28 ++++++++++------------ 4 files changed, 12 insertions(+), 59 deletions(-) diff --git a/app/components/talks/PendingTalksList.tsx b/app/components/talks/PendingTalksList.tsx index 604e021..8b4ab75 100644 --- a/app/components/talks/PendingTalksList.tsx +++ b/app/components/talks/PendingTalksList.tsx @@ -21,35 +21,6 @@ import StatusBadge from './StatusBadge'; import StatusDialog from './StatusDialog'; import TalkDialog from './TalkDialog'; -// Mock data for rooms (you should replace this with your actual data) -// const rooms = [ -// { -// name: 'Salle Amphithéâtre', -// capacity: 300, -// description: 'Grande salle principale pour les keynotes et sessions populaires', -// }, -// { -// name: 'Salle Ateliers', -// capacity: 100, -// description: 'Salle équipée pour les ateliers pratiques et hands-on labs', -// }, -// { -// name: 'Salle Conférences A', -// capacity: 150, -// description: 'Salle de conférence standard pour les présentations techniques', -// }, -// { -// name: 'Salle Conférences B', -// capacity: 150, -// description: 'Salle de conférence standard pour les présentations techniques', -// }, -// { -// name: 'Salle Innovation', -// capacity: 80, -// description: 'Espace dédié aux démonstrations et nouvelles technologies', -// }, -// ]; - interface PendingTalksListProps { talks: Talk[]; onAddTalk: (talk: Omit) => void; diff --git a/app/components/talks/TalksList.tsx b/app/components/talks/TalksList.tsx index 973a9a0..b08220f 100644 --- a/app/components/talks/TalksList.tsx +++ b/app/components/talks/TalksList.tsx @@ -25,9 +25,7 @@ interface TalksListProps { onAddTalk: (talk: Omit) => void; onUpdateTalk: (talk: Talk) => void; onDeleteTalk: (talkId: string) => void; - // scheduledTalks: ScheduledTalk[]; rooms?: Room[]; - // topics: string[]; } // Helper to generate Google Calendar event link @@ -57,9 +55,7 @@ export default function TalksList({ onAddTalk, onUpdateTalk, onDeleteTalk, - // scheduledTalks, rooms = [], - // topics, }: TalksListProps) { const session = useSession(); diff --git a/app/components/talks/TalksSchedule.tsx b/app/components/talks/TalksSchedule.tsx index de5e834..70884a7 100644 --- a/app/components/talks/TalksSchedule.tsx +++ b/app/components/talks/TalksSchedule.tsx @@ -50,14 +50,6 @@ interface TalksScheduleProps { onScheduleTalk: (talkId: string, slotId: string) => void; } -// interface ScheduledSlot { -// id: number; -// roomId: number; -// startTime: string; -// endTime: string; -// talk: Talk; -// } - export default function TalksSchedule({ talks, onScheduleTalk }: TalksScheduleProps) { const session = useSession(); @@ -67,7 +59,6 @@ export default function TalksSchedule({ talks, onScheduleTalk }: TalksSchedulePr const [selectedTalk, setSelectedTalk] = useState(''); const [selectedSlot, setSelectedSlot] = useState(''); const [isScheduling, setIsScheduling] = useState(false); - // const [scheduledSlots, setScheduledSlots] = useState([]); // — new state — const [rooms, setRooms] = useState([]); @@ -79,7 +70,6 @@ export default function TalksSchedule({ talks, onScheduleTalk }: TalksSchedulePr Promise.all([ fetch(`/api/rooms/availability?date=${dateParam}`).then((r) => r.json()), fetch(`/api/schedules?date=${dateParam}`).then((r) => r.json()), - // .then((data: { schedules: ScheduledSlot[] }) => setScheduledSlots(data.schedules)), ]).catch((err) => { console.error(err); alert('Erreur de chargement'); diff --git a/app/pages/index.tsx b/app/pages/index.tsx index 0417b47..b60c93e 100644 --- a/app/pages/index.tsx +++ b/app/pages/index.tsx @@ -67,14 +67,6 @@ export default function TalksPage() { const updatedSlot = { ...slot, talkId: talk.id }; setTalks((prev) => prev.map((t) => (t.id === talk.id ? updatedTalk : t))); - // setScheduledTalks((prev) => [ - // ...prev, - // { - // talk: updatedTalk, - // slot: updatedSlot, - // room: mockData.rooms.find((r) => r.id === slot.roomId)!, - // }, - // ]); return { updatedTalk, updatedSlot }; }; @@ -99,12 +91,8 @@ export default function TalksPage() { } else { const err = await res.json(); console.error('Failed to delete talk:', err.error); - // optionally show a toast/snackbar here } }; - // const changeTalkStatus = (talkId: string, newStatus: Talk['status']) => { - // setTalks((prev) => prev.map((t) => (t.id === talkId ? { ...t, status: newStatus } : t))); - // }; async function changeTalkStatus(talkId: string, newStatus: TalkStatus) { const res = await fetch(`/api/talks/${talkId}/status`, { @@ -148,7 +136,18 @@ export default function TalksPage() { Tous les talks Tous les talks en attente - Planification + + Planification + talk.status === 'accepted').length === 0 + ? 'bg-gray-400 text-white' + : 'bg-red-600 text-white' + }`} + > + {talks.filter((talk) => talk.status === 'accepted').length} + + )} @@ -185,9 +184,6 @@ export default function TalksPage() { {/* Tab: Planification */} talk.status === 'accepted')} onScheduleTalk={scheduleTalk} />