Alterações nas rotas e login

This commit is contained in:
jp-lima 2025-10-02 09:32:56 -03:00
parent e6234093de
commit 84c14fdb06
7 changed files with 68 additions and 61 deletions

View File

@ -129,7 +129,7 @@
cursor: pointer;
}
.card:hover {
.highlight:hover {
transform: translateY(-6px);
box-shadow: 0 8px 20px rgba(30, 58, 138, 0.2);
background: #f8faff;

View File

@ -20,22 +20,22 @@ function UserDashboard() {
</div>
<div className="cards-container">
<div className="card">
<div className="card highlight">
<p className="card-label">Total de Usuários</p>
<p className="card-value">15</p>
<p className="card-extra positive">+3 este mês</p>
</div>
<div className="card">
<div className="card highlight">
<p className="card-label">Usuários Ativos</p>
<p className="card-value">12</p>
<p className="card-extra">80.0% do total</p>
</div>
<div className="card">
<div className="card highlight">
<p className="card-label">Tempo Médio Sessão</p>
<p className="card-value">2h 30min</p>
<p className="card-extra">Última semana</p>
</div>
<div className="card">
<div className="card highlight">
<p className="card-label">Usuários Hoje</p>
<p className="card-value">10</p>
<p className="card-extra positive">+2 desde ontem</p>

View File

@ -9,19 +9,6 @@
"url": "/admin/",
"icon": "house"
},
{
"name": "Cadastro de Pacientes",
"url": "/admin/pacientes/cadastro",
"icon": "heart-pulse-fill"
},
{
"name": "Cadastro do Médico",
"url": "/admin/medicos/cadastro",
"icon": "capsule"
},
{
"name": "Lista de Pacientes",
"icon": "clipboard-heart-fill",

View File

@ -95,7 +95,7 @@ function TableDoctor({ setCurrentPage, setPatientID }) {
<div className="card">
<div className="card-header d-flex justify-content-between align-items-center">
<h4 className="card-title mb-0">Médicos Cadastrados</h4>
<Link to={'/medicos/cadastro'}>
<Link to={'cadastro'}>
<button
className="btn btn-primary"

View File

@ -2,46 +2,17 @@ import React, { useState, useEffect } from 'react';
import { useNavigate } from 'react-router-dom';
import { FaUser, FaUserPlus, FaCalendarAlt, FaCalendarCheck } from 'react-icons/fa';
import './style/Inicio.css';
import { useAuth } from '../components/utils/AuthProvider';
import { Link } from 'react-router-dom';
function Inicio() {
const { authTokens, setAuthTokens } = useAuth();
const navigate = useNavigate();
const [pacientes, setPacientes] = useState([]);
const [agendamentos, setAgendamentos] = useState([]);
useEffect(() => {
var myHeaders = new Headers();
myHeaders.append("apikey", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inl1YW5xZnN3aGJlcmtvZXZ0bWZyIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTQ5NTQzNjksImV4cCI6MjA3MDUzMDM2OX0.g8Fm4XAvtX46zifBZnYVH4tVuQkqUH6Ia9CXQj4DztQ");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"email": "riseup@popcode.com.br",
"password": "riseup"
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://yuanqfswhberkoevtmfr.supabase.co/auth/v1/token?grant_type=password", requestOptions)
.then(response => response.json())
.then(result => {setAuthTokens(result); console.log(result)})
.catch(error => console.log('error', error));
/*const fetchPacientes = async () => {
try {
const res = await fetch("https://mock.apidog.com/m1/1053378-0-default/pacientes");
@ -122,14 +93,14 @@ function Inicio() {
<div className="quick-actions">
<h2>Ações Rápidas</h2>
<div className="actions-grid">
<div className="action-button" onClick={() => navigate('/secretaria/pacientes/cadastro')}>
<div className="action-button" onClick={() => navigate('pacientes/cadastro')}>
<FaUserPlus className="action-icon" />
<div className="action-info">
<span className="action-title">Novo Paciente</span>
<span className="action-desc">Cadastrar um novo paciente</span>
</div>
</div>
<div className="action-button" onClick={() => navigate('/secretaria/pacientes')}>
<div className="action-button" onClick={() => navigate('pacientes')}>
<FaUser className="action-icon" />
<div className="action-info">
<span className="action-title">Lista de Pacientes</span>

View File

@ -1,8 +1,9 @@
import React, { useState } from 'react';
import React, { useState, useEffect, use } from 'react';
import { Link, useNavigate } from "react-router-dom";
import { useAuth } from '../components/utils/AuthProvider';
import API_KEY from '../components/utils/apiKeys';
function Login({ onEnterSystem }) {
const { authTokens, setAuthTokens } = useAuth();
const navigate = useNavigate();
const [form, setForm] = useState({
username: "",
@ -11,18 +12,66 @@ function Login({ onEnterSystem }) {
const [alert, setAlert] = useState("");
const [showPassword, setShowPassword] = useState(false);
useEffect(() => {
var myHeaders = new Headers();
myHeaders.append("apikey", API_KEY);
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"email": "riseup@popcode.com.br",
"password": "riseup"
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://yuanqfswhberkoevtmfr.supabase.co/auth/v1/token?grant_type=password", requestOptions)
.then(response => response.json())
.then(data => {
setAuthTokens(data);
console.log(data);
})
.catch(error => console.log('error', error));
}, []);
const handleChange = (e) => {
setForm({ ...form, [e.target.name]: e.target.value });
};
const handleLogin = (e) => {
const handleLogin = async (e) => {
e.preventDefault();
console.log("Tentando logar com:", form);
if (form.username && form.password) {
// ...login logic...
navigate('/admin/inicio');
/* if (data.access_token) {
console.log("Login bem-sucedido!");
var myHeaders = new Headers();
myHeaders.append("apikey", API_KEY);
myHeaders.append("Authorization", `Bearer ${data.access_token}`);
var requestOptions = {
method: 'GET',
headers: myHeaders,
redirect: 'follow'
};
console.log(data.user.id)
fetch(`https://yuanqfswhberkoevtmfr.supabase.co/functions/v1/user-info`, requestOptions)
.then(response => response.text())
.then(result => console.log(result, "vamo ver se da certo"))
.catch(error => console.log('error', error));
}*/
navigate(`/${form.username}/`);
} else {
setAlert("Preencha todos os campos!");
}

View File

@ -156,7 +156,7 @@ function TablePaciente({ setCurrentPage, setPatientID }) {
<div className="card">
<div className="card-header d-flex justify-content-between align-items-center">
<h4 className="card-title mb-0">Pacientes Cadastrados</h4>
<Link to={'/secretaria/pacientes/cadastro'}>
<Link to={'cadastro'}>
<button
className="btn btn-primary"
>