From 5aaaf7d3e508116a31644b698f00e7960a600ba6 Mon Sep 17 00:00:00 2001 From: pedrofedericoo Date: Thu, 20 Nov 2025 14:58:38 -0300 Subject: [PATCH] Disponibilidades Atualizadas --- package-lock.json | 31 -- src/components/doctors/DoctorForm.css | 11 + src/components/doctors/DoctorForm.jsx | 25 +- .../doctors/HorariosDisponibilidade.css | 14 + .../doctors/HorariosDisponibilidade.jsx | 36 +- src/pages/DisponibilidadesDoctorPage.jsx | 326 ++++++--------- src/pages/DoctorEditPage.jsx | 389 ++++++++++++++---- src/pages/DoctorTable.jsx | 6 +- src/pages/style/Agendamento.css | 23 +- .../style/DisponibilidadesDoctorPage.css | 28 +- src/pages/style/FilaEspera.css | 9 + src/pages/style/TableDoctor.css | 11 + src/pages/style/TablePaciente.css | 10 + .../perfil_secretaria/PerfilSecretaria.jsx | 4 +- 14 files changed, 577 insertions(+), 346 deletions(-) diff --git a/package-lock.json b/package-lock.json index b9a1a503..bb50c8d1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31871,23 +31871,6 @@ "node": ">= 0.8.0" } }, - "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "license": "MIT", - "optional": true, - "peer": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, "node_modules/pretty-bytes": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", @@ -33013,20 +32996,6 @@ "node": ">=14.0.0" } }, - "node_modules/react-scripts/node_modules/yaml": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", - "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", - "license": "ISC", - "optional": true, - "peer": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - } - }, "node_modules/react-toastify": { "version": "11.0.5", "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-11.0.5.tgz", diff --git a/src/components/doctors/DoctorForm.css b/src/components/doctors/DoctorForm.css index d5f23798..81ef2e44 100644 --- a/src/components/doctors/DoctorForm.css +++ b/src/components/doctors/DoctorForm.css @@ -198,4 +198,15 @@ font-size: 1.1rem; padding: 0.6rem 1.2rem; } +} + +@media (max-width: 576px) { + .doctor-form-container { padding: 0.75rem; } + .doctor-form-title { font-size: 1.75rem; } + .form-section { padding: 0.75rem; } + .section-header { font-size: 1.25rem; } + .form-label { font-size: 1rem; } + .form-control-custom { font-size: 1rem; } + .btns-container { display: flex; flex-direction: column; gap: 8px; } + .btn-submit, .btn-cancel { width: 100%; margin-right: 0; } } \ No newline at end of file diff --git a/src/components/doctors/DoctorForm.jsx b/src/components/doctors/DoctorForm.jsx index 8f553ab1..f11e8354 100644 --- a/src/components/doctors/DoctorForm.jsx +++ b/src/components/doctors/DoctorForm.jsx @@ -135,14 +135,11 @@ function DoctorForm({ onSave, onCancel, formData, setFormData, isLoading }) { } }; - const handleAvailabilityUpdate = useCallback((newAvailability) => { - setFormData((prev) => { - if (JSON.stringify(prev.availability) !== JSON.stringify(newAvailability)) { +const handleAvailabilityUpdate = useCallback((newAvailability) => { + setFormData((prev) => { return { ...prev, availability: newAvailability }; - } - return prev; }); - }, []); +}, [setFormData]); const handleCepBlur = async () => { const cep = formData.cep?.replace(/\D/g, ""); @@ -326,17 +323,9 @@ function DoctorForm({ onSave, onCancel, formData, setFormData, isLoading }) { } try { - const savedDoctor = await onSave({ ...formData }); - - if (formData.availability && formData.availability.length > 0 && savedDoctor.id) { - if (formData.availabilityId) { - - await handlePatchAvailability(formData.availabilityId, formData.availability); - } else { - - await handleCreateAvailability(savedDoctor.id, formData.availability); - } - } + // Chama a função onSave (handleSave no DoctorEditPage) com o formData completo. + // A lógica de salvamento do médico e da disponibilidade é responsabilidade do componente pai. + await onSave({ ...formData }); } catch (error) { console.error("Erro ao salvar médico ou disponibilidade:", error); @@ -760,7 +749,7 @@ function DoctorForm({ onSave, onCancel, formData, setFormData, isLoading }) { Defina seus horários de atendimento para cada dia da semana. Marque um dia para começar a adicionar blocos de tempo.
Carregando médicos...
Carregando horários para edição...
Nenhum médico encontrado
+ Carregando dados do médico ID: {effectiveId || "..."} +