Reac front end for psicometric app

PasswordModal.jsx 4.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. import { Modal } from 'react-bootstrap'
  2. import * as React from 'react';
  3. import {
  4. Box, Stepper, Step,
  5. StepLabel, Button , Typography
  6. } from '@mui/material'
  7. import { StepOne } from '../Password/Steps/one'
  8. const steps = [
  9. {
  10. label : 'Información del candidato',
  11. operation: <StepOne/>
  12. },
  13. {
  14. label : 'Seleccionar plaza',
  15. operation: <h1>plaza</h1>
  16. },
  17. {
  18. label : 'Seleccionar pruebas',
  19. operation: <h1>preubas</h1>
  20. },
  21. {
  22. label : 'Confirmar',
  23. operation: <h1>adios</h1>
  24. },
  25. ];
  26. export function HelpModal (props) {
  27. let { visible, handleClose } = props
  28. const [activeStep, setActiveStep] = React.useState(0);
  29. const [skipped, setSkipped] = React.useState(new Set());
  30. const isStepSkipped = (step) => {
  31. return skipped.has(step);
  32. };
  33. const handleNext = () => {
  34. let newSkipped = skipped;
  35. if (isStepSkipped(activeStep)) {
  36. newSkipped = new Set(newSkipped.values());
  37. newSkipped.delete(activeStep);
  38. }
  39. setActiveStep((prevActiveStep) => prevActiveStep + 1);
  40. setSkipped(newSkipped);
  41. };
  42. const handleBack = () => {
  43. setActiveStep((prevActiveStep) => prevActiveStep - 1);
  44. };
  45. const handleReset = () => {
  46. setActiveStep(0);
  47. };
  48. return (
  49. <Modal size="lg"
  50. aria-labelledby="contained-modal-title-vcenter"
  51. centered show={visible}
  52. onHide={handleClose}
  53. >
  54. <Modal.Header>
  55. <button type="button" className="close" onClick={handleClose}>&times;</button>
  56. <h4 className="modal-title">Crear Contraseña</h4>
  57. </Modal.Header>
  58. <Modal.Body className="modal-body">
  59. <Box sx={{ width: '100%' }}>
  60. <Stepper activeStep={activeStep}>
  61. {steps.map((step, index) => {
  62. const stepProps = {};
  63. const labelProps = {};
  64. if (isStepSkipped(index)) {
  65. stepProps.completed = false;
  66. }
  67. return (
  68. <Step key={step.label} {...stepProps}>
  69. <StepLabel {...labelProps}>{step.label}</StepLabel>
  70. </Step>
  71. );
  72. })}
  73. </Stepper>
  74. {activeStep === steps.length ? (
  75. <React.Fragment>
  76. <Typography sx={{ mt: 2, mb: 1 }}>
  77. All steps completed - you&apos;re finished
  78. </Typography>
  79. <Box sx={{ display: 'flex', flexDirection: 'row', pt: 2 }}>
  80. <Box sx={{ flex: '1 1 auto' }} />
  81. <Button onClick={handleReset}>Reiniciar</Button>
  82. </Box>
  83. </React.Fragment>
  84. ) : (
  85. <React.Fragment>
  86. <Box style={{ padding : 25, marginTop : 25}}>
  87. {steps[activeStep].operation}
  88. </Box>
  89. <Box sx={{ display: 'flex', flexDirection: 'row', pt: 2 }}>
  90. <Button
  91. color="inherit"
  92. disabled={activeStep === 0}
  93. onClick={handleBack}
  94. sx={{ mr: 1 }}
  95. >
  96. Anterior
  97. </Button>
  98. <Box sx={{ flex: '1 1 auto' }} />
  99. <Button onClick={handleNext}>
  100. {activeStep === steps.length - 1 ? 'Guardar' : 'Siguiente'}
  101. </Button>
  102. </Box>
  103. </React.Fragment>
  104. )}
  105. </Box>
  106. </Modal.Body>
  107. </Modal>
  108. )
  109. }