added new boton to refresh monitor and modified search machine and merge Carlos

This commit is contained in:
2026-03-17 09:37:14 -05:00
parent 68d61446c3
commit c60ddf0797
9 changed files with 158 additions and 59 deletions
@@ -21,6 +21,8 @@ export default function BitacoraEquipo({ date }: { date: string | null }) {
const [equipoSeleccionado, setEquipoSeleccionado] = useState<any>(null);
const [equipos, setEquipos] = useState<any[]>([]);
const [search, setSearch] = useState("");
const token = Cookies.get("token");
const headers = { Authorization: `Bearer ${token}` };
@@ -52,6 +54,15 @@ export default function BitacoraEquipo({ date }: { date: string | null }) {
});
}, [equipoSeleccionado, date]);
const equiposFiltrados = equipos.filter((eq) => {
const texto = search.toLowerCase();
return (
eq.ubicacion?.toString().toLowerCase().includes(texto) ||
eq.plataforma?.nombre?.toLowerCase().includes(texto) ||
eq.nombre_equipo?.toLowerCase().includes(texto)
);
});
return (
<>
@@ -64,13 +75,20 @@ export default function BitacoraEquipo({ date }: { date: string | null }) {
>
<div
className={`selectHeader ${equipoSeleccionado && equipoSeleccionado.plataforma?.nombre?.toUpperCase()}`}
onClick={() => !loadingEquipos && setOpen(!open)}
>
{equipoSeleccionado ? (
<span
>
{equipoSeleccionado.ubicacion}{" "}
{equipoSeleccionado.nombre_equipo}
onClick={() => !loadingEquipos && setOpen(!open)} >
{open ? (
<input
autoFocus
type="text"
placeholder="Buscar equipo..."
value={search}
onChange={(e) => setSearch(e.target.value)}
onClick={(e) => e.stopPropagation()}
className="inputSelect"
/>
) : equipoSeleccionado ? (
<span>
{equipoSeleccionado.ubicacion} {equipoSeleccionado.nombre_equipo}
</span>
) : (
<span className="placeholder">
@@ -85,19 +103,20 @@ export default function BitacoraEquipo({ date }: { date: string | null }) {
{open && (
<div className="options" style={{ bottom: "auto" }}>
{equipos.length === 0 && (
{equiposFiltrados.length === 0 && (
<div className="option disabled">
No hay equipos disponibles
No hay resultados
</div>
)}
{equipos.map((eq) => (
{equiposFiltrados.map((eq) => (
<div
key={eq.id_equipo}
className={`option ${eq.plataforma?.nombre?.toUpperCase()}`}
onClick={() => {
setEquipoSeleccionado(eq);
setOpen(false);
setSearch("");
}}
>
{eq.ubicacion} {eq.nombre_equipo}
@@ -35,6 +35,7 @@ export default function SelectorEquipo({ onSearch }: Props) {
const [loadingEquipos, setLoadingEquipos] = useState(false);
const [open, setOpen] = useState(false);
const [search, setSearch] = useState("");
const token = Cookies.get("token");
const headers = { Authorization: `Bearer ${token}` };
@@ -61,6 +62,15 @@ export default function SelectorEquipo({ onSearch }: Props) {
}
}, [paramEquipo, equipos]);
const equiposFiltrados = equipos.filter((eq) => {
const texto = search.toLowerCase();
return (
eq.ubicacion?.toString().toLowerCase().includes(texto) ||
eq.plataforma?.nombre?.toLowerCase().includes(texto) ||
eq.nombre_equipo?.toLowerCase().includes(texto)
);
});
return (
<form className="form-container">
@@ -71,14 +81,20 @@ export default function SelectorEquipo({ onSearch }: Props) {
>
<div
className={`selectHeader ${selected && selected.plataforma?.nombre?.toUpperCase()}`}
onClick={() => !loadingEquipos && setOpen(!open)}
>
{selected ? (
<span
>
{selected.ubicacion}{" "}
{selected.nombre_equipo}{" "}
{selected.areaUbicacion.area}
onClick={() => !loadingEquipos && setOpen(!open)} >
{open ? (
<input
autoFocus
type="text"
placeholder="Buscar equipo..."
value={search}
onChange={(e) => setSearch(e.target.value)}
onClick={(e) => e.stopPropagation()}
className="inputSelect"
/>
) : selected ? (
<span>
{selected.ubicacion} {selected.nombre_equipo}
</span>
) : (
<span className="placeholder">
@@ -93,13 +109,13 @@ export default function SelectorEquipo({ onSearch }: Props) {
{open && (
<div className="options" style={{ bottom: "auto" }}>
{equipos.length === 0 && (
{equiposFiltrados.length === 0 && (
<div className="option disabled">
No hay equipos disponibles
</div>
)}
{equipos.map((eq) => (
{equiposFiltrados.map((eq) => (
<div
key={eq.id_equipo}
className={`option ${eq.plataforma?.nombre?.toUpperCase()}`}
@@ -115,6 +131,8 @@ export default function SelectorEquipo({ onSearch }: Props) {
}
router.push(`${pathname}?${params.toString()}`);
setSearch("");
}}
>
{eq.ubicacion} {eq.nombre_equipo} {eq.areaUbicacion.area}