From 2729fdc86899cb3d2155b08f289a3343b9e4a517 Mon Sep 17 00:00:00 2001 From: Jonas Francisco Date: Wed, 5 Nov 2025 22:59:35 -0300 Subject: [PATCH] =?UTF-8?q?Remove=20ListaEspera=20e=20bot=C3=B5es=20Proced?= =?UTF-8?q?imento/Financeiro?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/(main-routes)/calendar/page.tsx | 81 +++---------------- .../features/general/event-manager.tsx | 62 ++++++++++++-- 2 files changed, 64 insertions(+), 79 deletions(-) diff --git a/susconecta/app/(main-routes)/calendar/page.tsx b/susconecta/app/(main-routes)/calendar/page.tsx index c4afdea..8d261c9 100644 --- a/susconecta/app/(main-routes)/calendar/page.tsx +++ b/susconecta/app/(main-routes)/calendar/page.tsx @@ -2,37 +2,19 @@ // Imports mantidos import { useEffect, useState } from "react"; -import dynamic from "next/dynamic"; -import Link from "next/link"; // --- Imports do EventManager (NOVO) - MANTIDOS --- import { EventManager, type Event } from "@/components/features/general/event-manager"; import { v4 as uuidv4 } from 'uuid'; // Usado para IDs de fallback // Imports mantidos -import { Sidebar } from "@/components/layout/sidebar"; -import { PagesHeader } from "@/components/features/dashboard/header"; import { Button } from "@/components/ui/button"; -import { mockWaitingList } from "@/lib/mocks/appointment-mocks"; import "./index.css"; -import { - DropdownMenu, - DropdownMenuContent, - DropdownMenuItem, - DropdownMenuTrigger, -} from "@/components/ui/dropdown-menu"; import { ThreeDWallCalendar, CalendarEvent } from "@/components/ui/three-dwall-calendar"; // Calendário 3D mantido -const ListaEspera = dynamic( - () => import("@/components/features/agendamento/ListaEspera"), - { ssr: false } -); - export default function AgendamentoPage() { const [appointments, setAppointments] = useState([]); - const [waitingList, setWaitingList] = useState(mockWaitingList); - const [activeTab, setActiveTab] = useState<"calendar" | "espera" | "3d">("calendar"); - + const [activeTab, setActiveTab] = useState<"calendar" | "3d">("calendar"); const [threeDEvents, setThreeDEvents] = useState([]); // --- NOVO ESTADO --- @@ -42,15 +24,8 @@ export default function AgendamentoPage() { useEffect(() => { document.addEventListener("keydown", (event) => { - if (event.key === "c") { - setActiveTab("calendar"); - } - if (event.key === "f") { - setActiveTab("espera"); - } - if (event.key === "3") { - setActiveTab("3d"); - } + if (event.key === "c") setActiveTab("calendar"); + if (event.key === "3") setActiveTab("3d"); }); }, []); @@ -146,10 +121,6 @@ export default function AgendamentoPage() { } }; - const handleNotifyPatient = (patientId: string) => { - console.log(`Notificando paciente ${patientId}`); - }; - const handleAddEvent = (event: CalendarEvent) => { setThreeDEvents((prev) => [...prev, event]); }; @@ -173,23 +144,6 @@ export default function AgendamentoPage() {

- - - Opções » - - - - Agendamento - - - Procedimento - - - Financeiro - - - -
- -
@@ -244,16 +190,9 @@ export default function AgendamentoPage() { onRemoveEvent={handleRemoveEvent} /> - ) : ( - // A Lista de Espera foi MANTIDA - {}} - /> - )} - - - - ); -} \ No newline at end of file + ) : null} + + + + ); + } \ No newline at end of file diff --git a/susconecta/components/features/general/event-manager.tsx b/susconecta/components/features/general/event-manager.tsx index 1a9cac6..e8e0bf3 100644 --- a/susconecta/components/features/general/event-manager.tsx +++ b/susconecta/components/features/general/event-manager.tsx @@ -72,6 +72,11 @@ export function EventManager({ availableTags = ["Important", "Urgent", "Work", "Personal", "Team", "Client"], }: EventManagerProps) { const [events, setEvents] = useState(initialEvents) + // controla dias expandidos no MonthView (key = YYYY-MM-DD) + const [expandedDays, setExpandedDays] = useState>({}) + const toggleExpandedDay = useCallback((dayKey: string) => { + setExpandedDays((prev) => ({ ...prev, [dayKey]: !prev[dayKey] })) + }, []) const [currentDate, setCurrentDate] = useState(new Date()) const [view, setView] = useState<"month" | "week" | "day" | "list">(defaultView) const [selectedEvent, setSelectedEvent] = useState(null) @@ -702,6 +707,8 @@ export function EventManager({ onDragEnd={() => handleDragEnd()} onDrop={handleDrop} getColorClasses={getColorClasses} + expandedDays={expandedDays} + toggleExpandedDay={toggleExpandedDay} /> )} @@ -1144,6 +1151,8 @@ function MonthView({ onDragEnd, onDrop, getColorClasses, + expandedDays, + toggleExpandedDay, }: { currentDate: Date events: Event[] @@ -1152,6 +1161,8 @@ function MonthView({ onDragEnd: () => void onDrop: (date: Date) => void getColorClasses: (color: string) => { bg: string; text: string } + expandedDays: Record + toggleExpandedDay: (dayKey: string) => void }) { const firstDayOfMonth = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1) const lastDayOfMonth = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0) @@ -1177,6 +1188,9 @@ function MonthView({ }) } + const formatTime = (date: Date) => + date.toLocaleTimeString("pt-BR", { hour: "2-digit", minute: "2-digit" }) + return (
@@ -1224,16 +1238,48 @@ function MonthView({ variant="compact" /> ))} - {dayEvents.length > 3 && ( + {dayEvents.length > 3 && (
+{dayEvents.length - 3} mais
)} -
- - ) - })} - -
- ) + {(() => { + const dayKey = day.toISOString().slice(0, 10) + const isExpanded = !!expandedDays?.[dayKey] + const eventsToShow = isExpanded ? dayEvents : dayEvents.slice(0, 3) + return ( + <> + {eventsToShow.map((event) => ( + + ))} + + {dayEvents.length > 3 && ( +
+ +
+ )} + + ) + })()} + + + ) + })} + + + ) } // Week View Component