0

I'm trying to create a ResetPassword view on my react front-end app, I have a router file just like this:

import '../App.css';
import { Route, Routes } from 'react-router-dom';
import { useParams } from 'react-router-dom';
import Home from '../Pages/Home';
import Inicio from '../Pages/Inicio';
import UsuarioLog from '../Pages/UsuarioLog';
import EditarUsuarioLog from '../Pages/EditarUsuarioLog';
import DatosExpediente from '../Pages/DatosExpediente';
import PersonaResponsable from '../Pages/PersonaResponsable';
import EditarDatosExpediente from '../Pages/EditarDatosExpediente';
import EditarParentezco from '../Pages/EditarParentezco';
import Convivencia from '../Pages/Convivencia';
import EditarConvivencia from '../Pages/EditarConvivencia';
import DatosSocioEconomicos from '../Pages/DatosSocioEconomicos';
import EditarDatosSE from '../Pages/EditarDatosSE';
import FactorPsicosocial from '../Pages/FactorPsicosocial';
import EditarFactor from '../Pages/EditarFactor';
import CalificacionRiesgo from '../Pages/CalificacionRiesgo';
import EditarCalificacionRiesgo from '../Pages/EditarCalificacionRiesgo';
import EstadoExpendiente from '../Pages/EstadoExpediente';
import EditarEstadoExp from '../Pages/EditarEstadoExp';
import ReporteExpediente from '../Pages/ReporteExpediente';
import Acciones from '../Pages/Acciones';
import Error404 from '../Pages/Error404';
import Resgistrarse from '../Pages/Registrarse';
import ForgotPass from '../Pages/ForgotPass';
import Pascientes from '../Pages/Pascientes';
import EditarPasciente from '../Pages/EditarPasciente';
import PerfilEntrada from '../Pages/PerfilEntrada';
import EditarPerfilEntrada from '../Pages/EditarPerfilEntrada';
import PerfilSalida from '../Pages/PerfilSalida';
import EditarPerfilSalida from '../Pages/EditarPerfilSalida';
import EncuestaSatisfaccion from '../Pages/EncuestaSatisfaccion';
import Encuestas from '../Pages/Encuestas';
import ResetPass from '../Pages/ResetPass';

function Router() {
  return (
    <Routes>
      <Route index element={<Home />} />
      <Route path="/Inicio" element={<Inicio />} />
      <Route path="/Registrarse" element={<Resgistrarse />} />
      <Route path="/ForgotPass" element={<ForgotPass />} />
      <Route path="/Pascientes" element={<Pascientes />} />
      <Route path="/EditarPasciente" element={<EditarPasciente />} />
      <Route path="/PerfilEntrada" element={<PerfilEntrada />} />
      <Route path="/EditarPerfilEntrada" element={<EditarPerfilEntrada />} />
      <Route path="/PerfilSalida" element={<PerfilSalida />} />
      <Route path="/EditarPerfilSalida" element={<EditarPerfilSalida />} />
      <Route path="/EncuestaSatisfaccion" element={<EncuestaSatisfaccion />} />
      <Route path="/Encuestas" element={<Encuestas />} />
      <Route path="/UsuarioLog" element={<UsuarioLog />} />
      <Route path="/EditarUsuarioLog" element={<EditarUsuarioLog />} />
      <Route path="/DatosExpediente" element={<DatosExpediente />} />
      <Route path="/PersonaResponsable" element={<PersonaResponsable />} />
      <Route
        path="/EditarDatosExpediente"
        element={<EditarDatosExpediente />}
      />
      <Route path="/EditarParentezco" element={<EditarParentezco />} />
      <Route path="/Convivencia" element={<Convivencia />} />
      <Route path="/EditarConvivencia" element={<EditarConvivencia />} />
      <Route path="/DatosSocioEconomicos" element={<DatosSocioEconomicos />} />
      <Route path="/EditarDatosSE" element={<EditarDatosSE />} />
      <Route path="/FactorPsicosocial" element={<FactorPsicosocial />} />
      <Route path="/EditarFactor" element={<EditarFactor />} />
      <Route path="/CalificacionRiesgo" element={<CalificacionRiesgo />} />
      <Route
        path="/EditarCalificacionRiesgo"
        element={<EditarCalificacionRiesgo />}
      />
      <Route path="/EstadoExpediente" element={<EstadoExpendiente />} />
      <Route path="/EditarEstadoExp" element={<EditarEstadoExp />} />
      <Route path="/ReporteExpediente" element={<ReporteExpediente />} />
      <Route path="/Acciones" element={<Acciones />} />
      <Route path="/Error404" element={<Error404 />} />
      <Route
        path="/ResetPassword/:token"
        
        element={<ResetPass />}
      />
    </Routes>
  );
}

export default Router;

In the route

<Route path="/ResetPassword/:token" element={<ResetPass />}/>

I need to get a reset token from the URL, for this I'm using the useParams hook.

I can get the token from the URL without problem, the issue is, if I add the /:token to my route, the styles stop rendering, if I leave the route as "/ResetPassword" it renders as normal and shows all the styling.

For the last, this is my component

import React, { useState } from 'react';
import axios from 'axios';
import { useNavigate } from 'react-router-dom';

export default function ResetPass(props) {
  const params = props;
  const [Contrasena, setContrasena] = useState('');
  const [ConfirmaContrasena, setConfirmaContrasena] = useState('');

  const handleContrasenaChange = (event) => {
    setContrasena(event.currentTarget.value);
  };

  const handleConfirmaContrasenaChange = (event) => {
    setConfirmaContrasena(event.currentTarget.value);
  };
  const token = params.token;
  const navigate = useNavigate();

  const handleSubmit = async (event) => {
    event.preventDefault();
    try {
      const data = {
        Contrasena,
        ConfirmaContrasena,
      };
      console.log(token);
      const route = `http://localhost:3000/users/resetPassword/${token}`;
      const response = await axios.patch(route, data);
      console.log(response);

      if (!response.ok) {
        const message = `An error has occured: ${response.statusText}`;
        window.alert(message);
        navigate('/');
        return;
      }

      if (!response) {
        window.alert(`Record id: ${token} not found`);
        navigate('/');
        return;
      }
      setContrasena('');
      setConfirmaContrasena('');
    } catch (err) {
      console.log(err);
    }
  };

  return (
    <React.Fragment>
      <div class="container">
        <div class="row justify-content-center">
          <div class="col-xl-10 col-lg-12 col-md-9">
            <div class="card o-hidden border-0 shadow-lg my-5">
              <div class="card-body p-0">
                <div class="row">
                  <div class="col-lg-6 d-none d-lg-block bg-password-image"></div>
                  <div class="col-lg-6">
                    <div class="p-5">
                      <div class="text-center">
                        <h1>{props.token}</h1>
                        <h1 class="h4 text-gray-900 mb-2">
                          Resetea tu contraseña
                        </h1>
                        <p class="mb-4">
                          Ingrese su contraseña y su confirmacion de contraseña
                        </p>
                      </div>
                      <form class="user" onSubmit={handleSubmit}>
                        <div class="form-group">
                          <input
                            type="password"
                            class="form-control form-control-user"
                            name="Contraseña"
                            placeholder="Ingrese su contraseña"
                            value={Contrasena}
                            onChange={handleContrasenaChange}
                          />
                          <br />
                          <input
                            type="password"
                            class="form-control form-control-user"
                            name="ConfirmaContraseña"
                            placeholder="Confirme su contraseña"
                            value={ConfirmaContrasena}
                            onChange={handleConfirmaContrasenaChange}
                          />
                        </div>
                        <button
                          type="submit"
                          class="btn btn-primary btn-user btn-block"
                        >
                          Ingresar
                        </button>
                      </form>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </React.Fragment>
  );
}

Any advice?

1 Answers1

0

After checking in, the styles.css file was not being properly called, after that the issue got fixed and now all the routes render the styles as they are supposed to