diff --git a/susconecta/app/agenda/page.tsx b/susconecta/app/agenda/page.tsx index 36cc1cc..f4212da 100644 --- a/susconecta/app/agenda/page.tsx +++ b/susconecta/app/agenda/page.tsx @@ -4,12 +4,40 @@ import { useRouter } from "next/navigation"; import { CalendarRegistrationForm } from "@/components/forms/calendar-registration-form"; import HeaderAgenda from "@/components/agenda/HeaderAgenda"; import FooterAgenda from "@/components/agenda/FooterAgenda"; +import { useState } from "react"; + +interface FormData { + patientName?: string; + cpf?: string; + rg?: string; + birthDate?: string; + phoneCode?: string; + phoneNumber?: string; + email?: string; + convenio?: string; + matricula?: string; + validade?: string; + documentos?: string; + professionalName?: string; + unit?: string; + appointmentDate?: string; + startTime?: string; + endTime?: string; + requestingProfessional?: string; + appointmentType?: string; + notes?: string; +} export default function NovoAgendamentoPage() { const router = useRouter(); + const [formData, setFormData] = useState({}); - const handleSave = (data: any) => { - console.log("Salvando novo agendamento...", data); + const handleFormChange = (data: FormData) => { + setFormData(data); + }; + + const handleSave = () => { + console.log("Salvando novo agendamento...", formData); alert("Novo agendamento salvo (simulado)!"); router.push("/consultas"); }; @@ -23,12 +51,11 @@ export default function NovoAgendamentoPage() {
- + ); } \ No newline at end of file diff --git a/susconecta/app/financeiro/page.tsx b/susconecta/app/financeiro/page.tsx index bb14865..07c8cc7 100644 --- a/susconecta/app/financeiro/page.tsx +++ b/susconecta/app/financeiro/page.tsx @@ -53,7 +53,7 @@ export default function FinanceiroPage() { @@ -63,7 +63,7 @@ export default function FinanceiroPage() { @@ -81,7 +81,7 @@ export default function FinanceiroPage() {
- @@ -91,7 +91,7 @@ export default function FinanceiroPage() {
- @@ -106,7 +106,7 @@ export default function FinanceiroPage() {
diff --git a/susconecta/components/agenda/FooterAgenda.tsx b/susconecta/components/agenda/FooterAgenda.tsx index 54aa9c4..37a6fa6 100644 --- a/susconecta/components/agenda/FooterAgenda.tsx +++ b/susconecta/components/agenda/FooterAgenda.tsx @@ -5,9 +5,13 @@ import { Button } from "../ui/button"; import { Label } from "../ui/label"; import { Switch } from "../ui/switch"; import { useState } from "react"; -import Link from "next/link"; -export default function FooterAgenda() { +interface FooterAgendaProps { + onSave: () => void; + onCancel: () => void; +} + +export default function FooterAgenda({ onSave, onCancel }: FooterAgendaProps) { const [bloqueio, setBloqueio] = useState(false); return ( @@ -18,6 +22,8 @@ export default function FooterAgenda() {
+ +
diff --git a/susconecta/components/agenda/HeaderAgenda.tsx b/susconecta/components/agenda/HeaderAgenda.tsx index 829dfc9..64b229f 100644 --- a/susconecta/components/agenda/HeaderAgenda.tsx +++ b/susconecta/components/agenda/HeaderAgenda.tsx @@ -8,17 +8,10 @@ export default function HeaderAgenda() { const pathname = usePathname(); const router = useRouter(); - const isAg = pathname?.startsWith("/agendamento"); + const isAg = pathname?.startsWith("/agenda"); const isPr = pathname?.startsWith("/procedimento"); const isFi = pathname?.startsWith("/financeiro"); - const tabCls = (active: boolean, extra = "") => - `px-4 py-1.5 text-[13px] border ${ - active - ? "border-blue-500 bg-blue-50 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 font-medium" - : "text-muted-foreground hover:bg-muted border-border" - } ${extra}`; - return (
@@ -33,24 +26,33 @@ export default function HeaderAgenda() { Agendamento Procedimento Financeiro @@ -60,7 +62,7 @@ export default function HeaderAgenda() { type="button" aria-label="Histórico" onClick={() => router.back()} - className="inline-flex h-8 w-8 items-center justify-center rounded-md border border-border bg-background text-muted-foreground hover:bg-muted" + className="inline-flex h-8 w-8 items-center justify-center rounded-md border border-border bg-background text-muted-foreground hover:bg-primary hover:text-white hover:border-primary transition-colors" > diff --git a/susconecta/components/forms/calendar-registration-form.tsx b/susconecta/components/forms/calendar-registration-form.tsx index 8091f3c..667eb13 100644 --- a/susconecta/components/forms/calendar-registration-form.tsx +++ b/susconecta/components/forms/calendar-registration-form.tsx @@ -1,9 +1,7 @@ "use client"; -import { useState, useEffect } from "react"; -import dynamic from 'next/dynamic'; -import { Button } from "@/components/ui/button"; +import { useState } from "react"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Textarea } from "@/components/ui/textarea"; @@ -32,9 +30,8 @@ interface FormData { } interface CalendarRegistrationFormProperties { - initialData?: FormData; - onSave: (data: FormData) => void; - onCancel: () => void; + formData: FormData; + onFormChange: (data: FormData) => void; } const formatValidityDate = (value: string) => { @@ -48,79 +45,69 @@ const formatValidityDate = (value: string) => { return cleaned; }; -export function CalendarRegistrationForm({ initialData, onSave, onCancel }: CalendarRegistrationFormProperties) { - const [formData, setFormData] = useState(initialData || {}); +export function CalendarRegistrationForm({ formData, onFormChange }: CalendarRegistrationFormProperties) { const [isAdditionalInfoOpen, setIsAdditionalInfoOpen] = useState(false); - useEffect(() => { - setFormData(initialData || {}); - }, [initialData]); - const handleChange = (event: React.ChangeEvent) => { const { name, value } = event.target; if (name === 'validade') { const formattedValue = formatValidityDate(value); - setFormData((previousState) => ({ ...previousState, [name]: formattedValue })); + onFormChange({ ...formData, [name]: formattedValue }); } else { - setFormData((previousState) => ({ ...previousState, [name]: value })); + onFormChange({ ...formData, [name]: value }); } }; - const handleSubmit = (event: React.FormEvent) => { - event.preventDefault(); - onSave(formData); - }; - return ( -
+

Informações do paciente

- +
- - + +
- - + +
- - + +
- +
- - +
- - + +
- +
- @@ -133,27 +120,27 @@ export function CalendarRegistrationForm({ initialData, onSave, onCancel }: Cale
- - + +
- - + +
-
+
setIsAdditionalInfoOpen(!isAdditionalInfoOpen)} > -

Informações adicionais

- + +
{isAdditionalInfoOpen && ( -
- -