new next version, new style to barnavigation and no hardcode

This commit is contained in:
IO420
2026-01-09 14:56:39 -06:00
parent f710f4df96
commit c1d76ef01f
13 changed files with 340 additions and 281 deletions
+6 -1
View File
@@ -6,11 +6,16 @@ import ShowError from "@/app/Components/Global/ShowError";
import { GetStudent } from "@/app/lib/getStudent";
import "./inscripcion.css";
import Table from "@/app/Components/Global/table";
import { envConfig } from "@/app/lib/config";
if (!envConfig.apiUrl) {
console.error("API URL is not defined in envConfig");
}
async function getInscripcion(idCuenta: number) {
try {
const res = await fetch(
`http://localhost:5000/alumno-inscrito/${idCuenta}`,
`${envConfig.apiUrl}/alumno-inscrito/${idCuenta}`,
{
method: "GET",
headers: {
@@ -3,6 +3,7 @@
import { useEffect, useState } from "react";
import axios from "axios";
import toast from "react-hot-toast";
import { envConfig } from "@/app/lib/config";
interface Alumno {
id_cuenta: number;
@@ -22,6 +23,10 @@ interface AlumnoSancion {
sancion: Sancion;
}
if (!envConfig.apiUrl) {
console.error("API URL is not defined in envConfig");
}
export default function TableSancion({ idCuenta }: { idCuenta: number }) {
const [sanciones, setSanciones] = useState<Sancion[]>([]);
const [alumno, setAlumno] = useState<Alumno | null>(null);
@@ -34,7 +39,7 @@ export default function TableSancion({ idCuenta }: { idCuenta: number }) {
// Obtener sanciones del alumno
axios
.get(
`https://venus.acatlan.unam.mx/asignacionTiempo_test/alumno-sancion/${idCuenta}`
`${envConfig.apiUrl}/asignacionTiempo_test/alumno-sancion/${idCuenta}`
)
.then((res) => {
setAlumno(res.data.student);
@@ -48,7 +53,7 @@ export default function TableSancion({ idCuenta }: { idCuenta: number }) {
// Obtener catálogo de sanciones
axios
.get("https://venus.acatlan.unam.mx/asignacionTiempo_test/sancion")
.get(`${envConfig.apiUrl}/asignacionTiempo_test/sancion`)
.then((res) => setSanciones(res.data))
.catch((err) =>
toast.error("Error al obtener el catálogo de sanciones:", err)
+6 -1
View File
@@ -1,6 +1,11 @@
"use client";
import axios from "axios";
import { useEffect, useState } from "react";
import { envConfig } from "../lib/config";
if (!envConfig.apiUrl) {
console.error("API URL is not defined in envConfig");
}
export default function SelectAreas() {
const [areas, setAreas] = useState([]);
@@ -8,7 +13,7 @@ export default function SelectAreas() {
useEffect(() => {
axios
.get("https://venus.acatlan.unam.mx/asignacionTiempo_test/area-ubicacion")
.get(`${envConfig.apiUrl}/asignacionTiempo_test/area-ubicacion`)
.then((data) => {
setAreas(data.data);
})
+1 -1
View File
@@ -47,7 +47,7 @@ function Login() {
return (
<section className="centerGrid containerSection">
<form className="login" onSubmit={handleLogin}>
<h2 className="title">Inicio de sesión</h2>
<h2 className="title">Bienvenido a AT</h2>
<div className="containerInput">
<label className="label">Usuario</label>
@@ -13,6 +13,7 @@
justify-content: space-around;
width: 100%;
gap: 10px;
transition: width 0.5 ease-in-out;
}
.barNavigation li {
@@ -95,6 +96,7 @@
}
.subMenu span {
font-weight: bold;
display: flex;
width: 100%;
height: 100%;
@@ -113,6 +115,7 @@
.containerLinks {
padding: 0 !important;
border-radius: 0 0 4px 4px;
top: 20px;
}
.links {
@@ -143,13 +146,6 @@ tbody {
margin: 0;
}
.barNavigation ul.active {
position: absolute;
left: 0;
display: flex;
width: 100%;
}
.barNavigation {
font-size: 15px;
display: block;
@@ -157,13 +153,36 @@ tbody {
.barNavigation ul {
position: absolute;
top: 76px;
left: 0;
width: 100%;
background-color: #fff;
flex-direction: column;
padding: 10px 0;
align-items: center;
display: none;
z-index: 1;
height: auto;
z-index: 10;
transform: translateY(-15px);
opacity: 0;
pointer-events: none;
transition: transform 0.35s ease-in-out, opacity 0.35s ease-in-out,
visibility 0.35s ease-in-out;
}
.barNavigation ul.active {
position: absolute;
left: 0;
display: flex;
width: 100%;
transform: translateY(0);
opacity: 1;
visibility: visible;
pointer-events: auto;
}
.containerLinks {
top: 20px;
}
.barNavigation {
@@ -177,14 +196,32 @@ tbody {
}
.subMenu ul {
width: 100%;
border-radius: 4px;
position: relative;
top: 0px;
width: 100%;
background-color: rgb(1, 92, 184);
max-height: 0;
opacity: 0;
overflow: hidden;
transform: translateY(-5px);
transition: max-height 0.35s ease, opacity 0.3s ease, transform 0.3s ease;
}
.subMenu.open ul {
max-height: 500px;
opacity: 1;
transform: translateY(0);
}
.subMenu ul {
opacity: 0;
}
thead,
tbody {
font-size: 1rem;
}
}
}
@@ -9,7 +9,7 @@ function BarNavigation() {
const toggleMenu = () => setOpenMenu(!openMenu);
const toggleSubMenu = (index: number) => {
if (typeof window !== "undefined" && window.innerWidth <= 800) {
if (typeof window !== "undefined" && window.innerWidth <= 1000) {
setOpenSubMenu(openSubMenu === index ? null : index);
}
};
-1
View File
@@ -3,7 +3,6 @@ import Image from "next/image";
import header from "./Header.module.css";
import Link from "next/link";
import BarNavigation from "../BarNavigation/BarNavigation";
import { usePathname } from "next/navigation";
import { useEffect, useState } from "react";
function Header() {
+1 -1
View File
@@ -23,7 +23,7 @@ export default function RootLayout({
}>) {
return (
<html lang="es">
<body className={inter.className}>
<body className={inter.className} suppressHydrationWarning>
<ToastProvider>
<Header />
<main>{children}</main>
+1 -1
View File
@@ -3,7 +3,7 @@ import Cookies from "js-cookie";
import { envConfig } from "./config";
if (!envConfig.apiUrl) {
throw new Error("API URL is not defined in envConfig");
console.error("API URL is not defined in envConfig");
}
const apiClient = axios.create({
+1 -1
View File
@@ -4,7 +4,7 @@ import { redirect } from "next/navigation";
import { cookies } from "next/headers";
if (!envConfig.apiUrl) {
throw new Error("API URL is not defined in envConfig");
console.error("API URL is not defined in envConfig");
}
export async function GetStudent(numAcount: number) {