Explorar el Código

assign id in user sclie

amenpunk hace 3 años
padre
commit
3536d69437
Se han modificado 5 ficheros con 71 adiciones y 72 borrados
  1. 50 50
      src/Pages/HomeUser.jsx
  2. 1 1
      src/Pages/Logincs.jsx
  3. 14 14
      src/Pages/Prueba.jsx
  4. 4 5
      src/Pages/Pruebas/Cleaver.jsx
  5. 2 2
      src/Slices/userSlice.js

+ 50 - 50
src/Pages/HomeUser.jsx

@@ -1,65 +1,65 @@
 import { useState, useEffect } from 'react';
-import { Typography, Button, Box, Paper, Divider } from '@mui/material';
+import { Typography, Box, Paper, Divider } from '@mui/material';
 
-import useAuth from '../Auth/useAuth.js'
 import { Service } from '../Utils/HTTP.js';
-
 import { TestCard } from '../Components/HomeUser/TestCard';
 import { useSelector } from 'react-redux';
+import { Link } from 'react-router-dom'
 
 export function HomeUser(){
 
-    const auth = useAuth();
-    // const token = useRef(auth.getToken());
-    const [tests, setTests] = useState([]);
-    const [password, setPasword] = useState({});
-    const state = useSelector( state => state.token);
+  const [tests, setTests] = useState([]);
+  const [password, setPasword] = useState({});
+  const token = useSelector( state => state.token.token);
+  const profile = useSelector( state => state.user.profile);
+  console.log(profile)
 
-    useEffect(() => {
-        let { email , password} = auth.getProfile();
-        let rest = new Service(`/plaza/contrasenia/${password}/${email}`);
-        rest
-        .get(state.token)
-            .then(({ data }) => {
-                setTests(data.tests)
-                delete data.tests
-                setPasword(data);
-            })
-            .catch(erro => {
-                console.error("ERR : ", erro)
-            })
+  useEffect(() => {
+    let { email , password} = profile
+    let rest = new Service(`/plaza/contrasenia/${password}/${email}`);
+    rest
+      .get(token.token)
+      .then(({ data }) => {
+        setTests(data.tests)
+        delete data.tests
+        setPasword(data);
+      })
+      .catch(erro => {
+        console.error("ERR : ", erro)
+      })
 
-    },[state,auth])
+  },[token, profile])
 
-    return(
-        <div className="content-section">
-            <div className="main">
-                <Box sx={{ width: '100%' }}>
-                    <Paper elevation={2} sx={{ mb: 2, padding: 2, height: '100%', minHeight: '95vh'}}>
-                        <h2>
-                            Bienvenido al sistemas de pruebas psicometricas.
-                        </h2>
-                        <h3>Instrucciones Generales</h3>
-                        <Typography>
+  return(
+    <div className="content-section">
+      <div className="main">
+        <Box sx={{ width: '100%' }}>
+          <Paper elevation={2} sx={{ mb: 2, padding: 2, height: '100%', minHeight: '95vh'}}>
+            <h2>
+              Bienvenido al sistemas de pruebas psicometricas.
+            </h2>
+            <h3>Instrucciones Generales</h3>
+            <Typography>
 
-Bienvenido, el sistema tiene como objetivo evaluar diferentes características como medir y cuantificar los procesos cognoscitivos de la mente humana. Parar resolver las pruebas que están asignadas te recomendamos busques un lugar apropiado, ya que necesitaras en promedio 2 horas libre y es importante que se tenga el 100% de tu concentración.
-                        </Typography>
-                        <Divider style={{margin : 5}}/>
-                        <h5>Pruebas para {password.nombrepuesto}</h5>
-                        <div className="test_list" style={{ marginTop :15 }}> 
-                            {
-                            tests.map( test => {
-                                return (
-                                    <TestCard key={test.id} test={test} />
-                                )
-                            })
-                            }
-                        </div>
-                    </Paper>
-                    <Button  onClick={auth.logout}>Salir</Button>
-                </Box>
+              Bienvenido, el sistema tiene como objetivo evaluar diferentes características como medir y cuantificar los procesos cognoscitivos de la mente humana. Parar resolver las pruebas que están asignadas te recomendamos busques un lugar apropiado, ya que necesitaras en promedio 2 horas libre y es importante que se tenga el 100% de tu concentración.
+            </Typography>
+            <Divider style={{margin : 5}}/>
+            <h5>Pruebas para {password.nombrepuesto}</h5>
+            <div className="test_list" style={{ marginTop :15 }}> 
+              {
+              tests.map( test => {
+                return (
+                <Link to={`/user/prueba/${test.id}`}>
+                  <TestCard key={test.id} test={test} />
+                </Link>
+                )
+              })
+            }
             </div>
-        </div>
-    )
+          </Paper>
+        </Box>
+      </div>
+    </div>
+  )
 
 }

+ 1 - 1
src/Pages/Logincs.jsx

@@ -1,6 +1,6 @@
 import * as React from 'react';
 import toast, { Toaster } from 'react-hot-toast';
-import { Navigate, useNavigate } from 'react-router-dom'
+import { useNavigate } from 'react-router-dom'
 import jwt_decode from "jwt-decode";
 import { useDispatch , useSelector } from "react-redux";
 

+ 14 - 14
src/Pages/Prueba.jsx

@@ -1,25 +1,28 @@
-import React, { useMemo, useState } from 'react';
+import React, { useState } from 'react';
 import { Service } from '../Utils/HTTP'
 import { Box, Paper, Divider, Typography, Button } from '@mui/material'
 
 import toast, { Toaster } from 'react-hot-toast';
 import { useParams } from 'react-router-dom'
-import useAuth from '../Auth/useAuth.js';
 import { Cleaver } from './Pruebas/Cleaver';
 import { Header } from '../Components/Test/Cleaver/Header';
+import { useSelector, useDispatch } from 'react-redux';
+import { setRole } from '../Slices/userSlice'
 
 export function Prueba() {
 
   let { id } = useParams();
-  let auth = useAuth();
-  let token = useMemo(() => auth.getToken(), [auth])
+  // let token = useMemo(() => auth.getToken(), [auth])
+  let auth = useSelector((state) => state.token.token)
+  let profile = useSelector((state) => state.user)
+  let dispatch = useDispatch();
   let [data, setData] = useState({});
-  // let profile = auth.getProfile();
-  let [profile, setProfile] = useState(auth.getProfile)
+
+  console.log("PROFILE: ", profile)
 
   useState(() => {
     let rest = new Service(`/prueba/findid/${id}`)
-    rest.get(token.toString())
+    rest.get(auth.token)
       .then(resp => { 
           setData(resp.data)
         })
@@ -37,26 +40,23 @@ export function Prueba() {
       "score": "0",
       "mensaje": "0",
       "mensaje2": "0",
-      "idcontrasenia": profile.passid,
+      "idcontrasenia": profile.role.passid,
       "nombre": "assing CLEVAERR"
-
     }
 
     let rest = new Service("/prueba/asignacion");
-    rest.postQuery(body, token)
+    rest.postQuery(body, auth.token)
       .then(({ data: resp }) => {
         let { id: assingid } = resp
         toast.success("Asignación creada: ", assingid)
-        let new_profile = { ...profile, assingid }
-        auth.setProfile(new_profile)
-        setProfile(new_profile)
+        dispatch(setRole({ assingid }))
       })
       .catch(() => {
         toast.error("Error al crear la asignación")
       })
   }
 
-  if(profile.assingid){
+  if(profile.role.assingid){
     return <Cleaver/>
   }
 

+ 4 - 5
src/Pages/Pruebas/Cleaver.jsx

@@ -1,14 +1,13 @@
-import React, { useMemo } from 'react'
+import React from 'react'
 import { Service } from '../../Utils/HTTP'
-import useAuth from '../../Auth/useAuth.js';
 import { Question } from '../../Components/Test/Cleaver/Question.jsx'
 import { Box,Button } from '@mui/material'
 import toast, { Toaster } from 'react-hot-toast';
+import { useSelector } from 'react-redux';
 
 export function Cleaver() {
 
-  let auth = useAuth();
-  let token = useMemo(() => auth.getToken(), [auth])
+  let token = useSelector((state) => state.token.token);
 
   const [totalRespondidas, setRespondidas] = React.useState([]);
   const [totalPreguntas, setPreguntas] = React.useState([]);
@@ -27,7 +26,7 @@ export function Cleaver() {
     // TODO:
     // agregar el id correcto apartir del path
     let rest = new Service(`/prueba/findid/1`)
-    rest.get(token.toString())
+    rest.get(token.token)
       .then(({ data }) => {
         console.log(data.questions)
         setPreguntas(data.questions)

+ 2 - 2
src/Slices/userSlice.js

@@ -7,10 +7,10 @@ export const userSlice = createSlice({
   initialState,
   reducers: {
     setProfile: (state, action) => {
-      state.data = action.payload;
+      state.profile = action.payload;
     },
     setRole : (state, action ) => {
-      state.role = action.payload;
+      state.role = Object.assign({}, state.role, action.payload);
     }
   }
 })