Reac front end for psicometric app

Prueba.jsx 2.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import React, { useMemo, useState } from 'react';
  2. import { Service } from '../Utils/HTTP'
  3. import { Box, Paper, Divider, Typography, Button } from '@mui/material'
  4. import toast, { Toaster } from 'react-hot-toast';
  5. import { useParams } from 'react-router-dom'
  6. import useAuth from '../Auth/useAuth.js';
  7. import { Cleaver } from './Pruebas/Cleaver';
  8. import { Header } from '../Components/Test/Cleaver/Header';
  9. export function Prueba() {
  10. let { id } = useParams();
  11. let auth = useAuth();
  12. let token = useMemo(() => auth.getToken(), [auth])
  13. let [data, setData] = useState({});
  14. // let profile = auth.getProfile();
  15. let [profile, setProfile] = useState(auth.getProfile)
  16. useState(() => {
  17. let rest = new Service(`/prueba/findid/${id}`)
  18. rest.get(token.toString())
  19. .then(resp => {
  20. setData(resp.data)
  21. })
  22. .catch(_e => setData({}))
  23. }, [id])
  24. const CreateAssign = () => {
  25. let now = new Date().toISOString();
  26. let body = {
  27. "id": -1,
  28. "fechaasignacio": now,
  29. "fechafinexamen": now,
  30. "estado": "1",
  31. "score": "0",
  32. "mensaje": "0",
  33. "mensaje2": "0",
  34. "idcontrasenia": profile.passid,
  35. "nombre": "assing CLEVAERR"
  36. }
  37. let rest = new Service("/prueba/asignacion");
  38. rest.postQuery(body, token)
  39. .then(({ data: resp }) => {
  40. let { id: assingid } = resp
  41. toast.success("Asignación creada: ", assingid)
  42. let new_profile = { ...profile, assingid }
  43. auth.setProfile(new_profile)
  44. setProfile(new_profile)
  45. })
  46. .catch(() => {
  47. toast.error("Error al crear la asignación")
  48. })
  49. }
  50. if(profile.assingid){
  51. return <Cleaver/>
  52. }
  53. return (
  54. <div className="content-section">
  55. <div className="main">
  56. <Box >
  57. <Paper>
  58. <Header/>
  59. </Paper>
  60. <Paper className="prueba_body" elevation={1}>
  61. <h1>{data?.nombre}</h1>
  62. <Divider />
  63. <Typography style={{ marginTop: 15, textAlign: 'center' }}>{data?.decription}</Typography>
  64. <Divider style={{ marginTop: 15 }} />
  65. <Button variant="contained" onClick={CreateAssign}>Inicar Prueba</Button>
  66. </Paper>
  67. </Box>
  68. <Toaster
  69. position="top-left"
  70. reverseOrder={false}
  71. />
  72. </div>
  73. </div>
  74. );
  75. }