Browse Source

feat: quando adiciona um médico, atualiza a lista em tempo real

master
Henrique-Sousa 2 weeks ago
parent
commit
a71b90046f
3 changed files with 82 additions and 62 deletions
  1. +6
    -28
      ui/src/components/CadastrarMedicosModal.jsx
  2. +1
    -21
      ui/src/components/ListaMedicos.jsx
  3. +75
    -13
      ui/src/containers/DashboardContainer/index.jsx

+ 6
- 28
ui/src/components/CadastrarMedicosModal.jsx View File

@ -2,7 +2,12 @@ import { Modal, Form, Input, Button } from 'antd';
import _service from '@netuno/service-client';
function CadastrarMedicosModal({isCadastrarMedicosModalOpen, setIsCadastrarMedicosModalOpen}) {
function CadastrarMedicosModal({isCadastrarMedicosModalOpen,
setIsCadastrarMedicosModalOpen,
onFinish,
onFinishFailed,
}) {
const handleCadastrarMedicosOk = () => {
setIsCadastrarMedicosModalOpen(false);
};
@ -10,33 +15,6 @@ function CadastrarMedicosModal({isCadastrarMedicosModalOpen, setIsCadastrarMedic
setIsCadastrarMedicosModalOpen(false);
};
const onFinish = values => {
console.log('Values:', values);
_service({
url: "/services/medicos",
method: "POST",
data: {...values, especialidades: [], convenios: [] },
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': `Bearer ${localStorage.getItem('access_token')}`
},
success: (response) => {
if (response.json) {
console.log("Service Response", response.json);
}
setIsCadastrarMedicosModalOpen(false);
},
fail: (e) => {
console.log("Service Error", e);
}
});
};
const onFinishFailed = errorInfo => {
console.log('Failed:', errorInfo);
};
return (
<>


+ 1
- 21
ui/src/components/ListaMedicos.jsx View File

@ -8,27 +8,7 @@ import { Popconfirm, Button, Table } from 'antd';
import _service from '@netuno/service-client';
function ListaMedicos() {
const [medicos, setMedicos] = useState([]);
useEffect(() => {
carregarMedicos();
}, []);
const carregarMedicos = () => {
setMedicos([]);
_service({
url: "/services/medicos",
success: (response) => {
setMedicos(response.json);
},
fail: (e) => {
console.error("Serviço de medicos falhou.", e);
message.error("Serviço de medicos falhou.", e);
}
});
};
function ListaMedicos({ medicos, setMedicos }) {
const handleDelete = record => {
_service({
url: `/services/medicos?uid=${record.uid}`,


+ 75
- 13
ui/src/containers/DashboardContainer/index.jsx View File

@ -2,6 +2,8 @@ import { useState, useEffect } from "react";
import { Button, Tabs } from 'antd';
import _service from '@netuno/service-client';
import ListaMedicos from "../../components/ListaMedicos.jsx";
import ListaPacientes from "../../components/ListaPacientes.jsx";
import CadastrarMedicosModal from "../../components/CadastrarMedicosModal.jsx";
@ -9,22 +11,41 @@ import LoginModal from "../../components/LoginModal.jsx";
import "./index.less";
const items = [
{
key: '1',
label: 'Lista de pacientes',
children: <ListaPacientes />
},
{
key: '2',
label: 'Lista de médicos',
children: <ListaMedicos />
},
];
function DashboardContainer() {
const [isCadastrarMedicosModalOpen, setIsCadastrarMedicosModalOpen] = useState(false);
const [isLoginModalOpen, setIsLoginModalOpen] = useState(false);
const [medicos, setMedicos] = useState([]);
useEffect(() => {
carregarMedicos();
}, []);
const carregarMedicos = () => {
setMedicos([]);
_service({
url: "/services/medicos",
success: (response) => {
setMedicos(response.json);
},
fail: (e) => {
console.error("Serviço de medicos falhou.", e);
message.error("Serviço de medicos falhou.", e);
}
});
};
const items = [
{
key: '1',
label: 'Lista de pacientes',
children: <ListaPacientes />
},
{
key: '2',
label: 'Lista de médicos',
children: <ListaMedicos medicos={medicos} setMedicos={setMedicos} />
},
];
const showCadastrarMedicosModal = () => {
setIsCadastrarMedicosModalOpen(true);
@ -34,6 +55,45 @@ function DashboardContainer() {
setIsLoginModalOpen(true);
};
const onFinish = values => {
_service({
url: "/services/medicos",
method: "POST",
data: {...values, especialidades: [], convenios: [] },
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': `Bearer ${localStorage.getItem('access_token')}`
},
success: (response) => {
if (response.json) {
console.log("Service Response", response.json);
}
_service({
url: `/services/medicos?crm=${values.crm}`,
success: (response) => {
values.uid = response.json[0].uid;
setMedicos([...medicos, values]);
setIsCadastrarMedicosModalOpen(false);
},
fail: (e) => {
console.error("Serviço de medicos falhou.", e);
message.error("Serviço de medicos falhou.", e);
}
});
},
fail: (e) => {
console.log("Service Error", e);
}
});
};
const onFinishFailed = errorInfo => {
console.log('Failed:', errorInfo);
};
return (
<>
<Button type="primary" onClick={showCadastrarMedicosModal}>
@ -46,6 +106,8 @@ function DashboardContainer() {
<CadastrarMedicosModal
isCadastrarMedicosModalOpen={isCadastrarMedicosModalOpen}
setIsCadastrarMedicosModalOpen={setIsCadastrarMedicosModalOpen}
onFinish={onFinish}
onFinishFailed={onFinishFailed}
/>
<LoginModal
isLoginModalOpen={isLoginModalOpen}


Loading…
Cancel
Save