Reac front end for psicometric app

Pruebas.jsx 7.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. import React, { useState, useRef } from 'react'
  2. import { Row, Col } from 'react-bootstrap'
  3. import RemoveRedEyeIcon from '@mui/icons-material/RemoveRedEye';
  4. import EditIcon from '@mui/icons-material/Edit';
  5. import { useNavigate } from 'react-router-dom'
  6. import { inteligencia, comportamiento, personalidad } from '../Components/TipoTest'
  7. function Pagination () {
  8. return(
  9. <div className="pagination_pruebas">
  10. <div className="botones_pagination">
  11. <span className="disabled">Ant.</span>
  12. <span className="active">1</span>
  13. <span >2</span>
  14. <span >3</span>
  15. <span >4</span>
  16. <span >5</span>
  17. <span >Sig.</span>
  18. </div>
  19. </div>
  20. )
  21. }
  22. function CardPrueba(props){
  23. let {index, prueba} = props
  24. return(
  25. <Col className="prueba_item" key={index * 129319023888882} md="3">
  26. <div className="body_prueba_list">
  27. <div className="botones_edicion">
  28. <div className="contenedor_botones">
  29. <Row>
  30. <Col md="6">
  31. {/*<a href="index" title="Editar"><i className="far fa-edit"></i></a> */}
  32. <EditIcon className="grid_btn"/>
  33. </Col>
  34. <Col md="6">
  35. <RemoveRedEyeIcon className="grid_btn"/>
  36. {/* <a href="index" title="Eliminar"><i className="fas fa-times"></i></a> */}
  37. </Col>
  38. </Row>
  39. </div>
  40. </div>
  41. <div className="modern-Checkbox">
  42. <label htmlFor="box-21">{prueba}</label>
  43. </div>
  44. </div>
  45. </Col>
  46. )
  47. }
  48. export function Pruebas() {
  49. let navigate = useNavigate()
  50. const all = [...inteligencia, ...comportamiento, ...personalidad]
  51. let [pruebas, setPruebas] = useState(all)
  52. let main = useRef(null);
  53. return (
  54. <section>
  55. <div className="content-section">
  56. <div className="main main_pruebas_list">
  57. <h1>Listado de pruebas psicométricas</h1>
  58. {/* <Row style={{ display : 'flex', alignItems: 'baseline' }}> */}
  59. <Row>
  60. <Col sm='6' md='8' className="busqueda_prueba">
  61. <Row>
  62. <Col style={{ padding : 0, margin : 0 }} xs='6' sm='6' md="8">
  63. <input
  64. onChange={(event) => {
  65. let nombre = event.target.value
  66. if(nombre){
  67. let temp = pruebas.filter( prueba => {
  68. let isset = prueba.toUpperCase().includes( nombre.toUpperCase())
  69. return isset
  70. })
  71. setPruebas(temp)
  72. }else{
  73. setPruebas(all)
  74. }
  75. }}
  76. type="text"
  77. name="nombreprueba"
  78. placeholder="Escribe el nombre de la prueba que deseas consultar"/>
  79. </Col>
  80. <Col style={{ paddinRight : 0 }} xs='6' sm='6' md="4">
  81. <div className="buscar_prueba">
  82. <button className="btn_buscar_prueba">BUSCAR</button>
  83. </div>
  84. </Col>
  85. </Row>
  86. </Col>
  87. <Col sm='12' md="4">
  88. <div className="crear_prueba">
  89. <button
  90. onClick={ () => navigate('/dashboard/pruebas/crear') }
  91. className="btn_buscar_prueba">CREAR PRUEBA
  92. </button>
  93. </div>
  94. </Col>
  95. </Row>
  96. <div className="tabs_pruebas">
  97. <Row >
  98. <Col md="3">
  99. <div
  100. ref={main}
  101. className="test_tab active"
  102. id="todaspruebas"
  103. onClick={() => setPruebas(all)}
  104. >
  105. <p>TODAS LAS PRUEBAS</p>
  106. </div>
  107. </Col>
  108. <Col md="3">
  109. <div
  110. className="test_tab"
  111. id="comportamiento"
  112. onClick={() => setPruebas(comportamiento)}
  113. >
  114. <p>COMPORTAMIENTO</p>
  115. </div>
  116. </Col>
  117. <Col md="3">
  118. <div
  119. className="test_tab"
  120. id="personalidad"
  121. onClick={() => setPruebas(personalidad)}
  122. >
  123. <p>PERSONALIDAD</p>
  124. </div>
  125. </Col>
  126. <Col md="3">
  127. <div
  128. className="test_tab"
  129. id="inteligencia"
  130. onClick={() => setPruebas(inteligencia)}>
  131. <p>INTELIGENCIA</p>
  132. </div>
  133. </Col>
  134. </Row>
  135. </div>
  136. <div className="pruebas_grid">
  137. <div className="todas_las_pruebas_body" id="todas_las_pruebas_body">
  138. <Row>
  139. {
  140. pruebas.length ?
  141. pruebas.map(
  142. (prueba, index) => <CardPrueba prueba={prueba} index={index}/>
  143. )
  144. : undefined
  145. }
  146. </Row>
  147. <Pagination/>
  148. </div>
  149. </div>
  150. </div>
  151. </div>
  152. </section>
  153. )
  154. }