-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVerCitas.js
65 lines (54 loc) · 2.11 KB
/
VerCitas.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import React from 'react';
import { useCitas } from './CitasContext';
import './VerCitas.css';
const VerCitas = () => {
const { citas, agregarCita } = useCitas();
const formatHour = (hour) => {
const date = new Date(`2023-01-01T${hour}:00Z`);
return date.toLocaleTimeString([], { hour: 'numeric', minute: '2-digit', hour12: true });
};
// Función para organizar las citas por día y fecha
const organizarCitas = () => {
const citasOrganizadas = {};
citas.forEach((cita) => {
const fecha = new Date(`${cita.fecha}T${cita.horaInicio}:00Z`);
const diaSemana = fecha.toLocaleDateString('es-ES', { weekday: 'long' });
const diaYFecha = fecha.toLocaleDateString('es-ES', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' });
if (!citasOrganizadas[diaYFecha]) {
citasOrganizadas[diaYFecha] = { diaSemana, citas: [] };
}
citasOrganizadas[diaYFecha].citas.push({ horaInicio: formatHour(cita.horaInicio), ...cita });
});
for (const diaYFecha in citasOrganizadas) {
citasOrganizadas[diaYFecha].citas.sort((a, b) => a.horaInicio.localeCompare(b.horaInicio));
}
return citasOrganizadas;
};
const citasOrganizadas = organizarCitas();
const eliminarCita = (cita) => {
const nuevasCitas = citas.filter((c) => c.id !== cita.id);
agregarCita(nuevasCitas);
};
return (
<div>
<h2>Ver Citas</h2>
{Object.entries(citasOrganizadas).map(([diaYFecha, { diaSemana, citas }]) => (
<div key={diaYFecha}>
<h3>{diaYFecha}</h3>
<ul>
{citas.map((cita, index) => (
<li key={index} className="ver-citas-item">
<p>{cita.horaInicio} - {formatHour(cita.horaFin)}</p>
<p>Servicio: {cita.servicio}</p>
<p>Cliente: {cita.clienta}</p>
<p>Costo: {cita.costo}</p>
<button onClick={() => eliminarCita(cita)}>Eliminar Cita</button>
</li>
))}
</ul>
</div>
))}
</div>
);
};
export default VerCitas;