Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 10513 | Rev 10518 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
10513 stevensc 1
import axios from 'axios'
10436 stevensc 2
import React from 'react'
10450 stevensc 3
import { useEffect } from 'react'
10513 stevensc 4
import { useForm } from 'react-hook-form'
5
import { useDispatch } from 'react-redux'
10450 stevensc 6
import { useHistory, useParams } from 'react-router-dom'
10513 stevensc 7
import { addNotification } from '../../../redux/notification/notification.actions'
10436 stevensc 8
 
10439 stevensc 9
 
10513 stevensc 10
const FormView = ({ actionLink }) => {
11
 
10516 stevensc 12
	// States
13
	const pointsOptions = [
14
		{ label: 'Evaluación', value: 0 },
15
		{ label: 'Sugerir otro cargo', value: 0 },
16
		{ label: '25%', value: 1 },
17
		{ label: '50%', value: 2 },
18
		{ label: '75%', value: 3 },
19
		{ label: '100%', value: 4 }
20
	]
21
	const statusOptions = [
22
		{ label: 'Estatus', value: '' },
23
		{ label: 'Aceptado', value: 'a' },
24
		{ label: 'Rechazado', value: 'r' }
25
	]
26
 
27
	// Hooks
10513 stevensc 28
	const { register, setValue } = useForm()
10447 stevensc 29
	const history = useHistory()
10513 stevensc 30
	const dispatch = useDispatch()
10450 stevensc 31
	const { action } = useParams()
10439 stevensc 32
 
10450 stevensc 33
	useEffect(() => {
10513 stevensc 34
 
10516 stevensc 35
		// Get current item data
36
		if (action === 'edit') {
37
			axios.get(actionLink)
38
				.then(({ data }) => {
39
					const resData = data.data
10513 stevensc 40
 
10516 stevensc 41
					if (!data.success) {
42
						dispatch(addNotification({
43
							style: 'error',
44
							msg: 'Ha ocurrido un error'
45
						}))
46
					}
10513 stevensc 47
 
10516 stevensc 48
					console.log(resData)
49
					setValue('status', resData.interview.status)
50
					setValue('points', resData.interview.points)
51
					setValue('comment', resData.interview.comment)
52
				})
53
		}
54
	}, [action])
55
 
10513 stevensc 56
	const dataExaple = {
57
		'candidate': {
58
			'uuid': 'afc67cd3-60cd-4b14-81d8-6d8a014bbdd6',
59
			'first_name': 'Eleazar',
60
			'last_name': 'Oroño',
61
			'email': 'eorono@gmail.com'
62
		},
63
		'job_description': {
64
			'uuid': '8ff86a9a-651c-4dd0-86c1-b9c0716d09e0',
65
			'name': 'Programador Junior',
66
			'functions': '<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Tempus urna et pharetra pharetra massa massa ultricies mi. Eleifend donec pretium vulputate sapien nec sagittis aliquam malesuada bibendum. Tortor posuere ac ut consequat semper viverra nam. Ultricies leo integer malesuada nunc.</p>',
67
			'objectives': '<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Tempus urna et pharetra pharetra massa massa ultricies mi. Eleifend donec pretium vulputate sapien nec sagittis aliquam malesuada bibendum. Tortor posuere ac ut consequat semper viverra nam. Ultricies leo integer malesuada nunc.</p>',
68
			'competencies': [
69
				{
70
					'competency_uuid': '79b6ae02-f8e9-4f57-976d-d28b31fc824b',
71
					'competency_name': 'Flexibilidad',
72
					'competency_type_uuid': 'ae45b2e5-73a9-4a0b-ad04-29a07524ccd6',
73
					'competency_type_name': 'Competencias Horizontales',
74
					'behaviors': [
75
						{
76
							'uuid': '4cee9594-051d-4a52-82f0-58d4accc5583',
77
							'description': 'Enfocar sus acciones al logro de los resultados planteados.',
78
							'points': 0,
79
							'comment': '',
80
							'competency_uuid': '79b6ae02-f8e9-4f57-976d-d28b31fc824b'
81
						}
82
					]
83
				}
84
			]
85
		},
86
		'interview': {
87
			'id': 'd1cb9f3d-a6d0-43c1-a698-645b0156d99d',
88
			'status': 'a',
89
			'content': [
90
				{
91
					'competencyUuid': '79b6ae02-f8e9-4f57-976d-d28b31fc824b',
92
					'behaviorUuid': '4cee9594-051d-4a52-82f0-58d4accc5583',
93
					'comment': '',
94
					'evaluation': '0'
95
				}
96
			],
97
			'type': 'b',
98
			'points': '3',
99
			'comment': null
100
		},
101
		'vacancy': {
102
			'id': '26',
103
			'uuid': '7693a385-cde2-4e35-adef-1adc1ca63eac',
104
			'company_id': '1',
105
			'name': 'Programador PHP',
106
			'job_description_id': '3',
107
			'job_category_id': '11',
108
			'description': '<p>Test</p>',
109
			'location_id': '136',
110
			'industry_id': '12',
111
			'last_date': '0000-00-00',
112
			'status': 'a',
113
			'added_on': '2022-08-10 18:24:56',
114
			'updated_on': '2022-08-17 20:47:29'
115
		}
116
	}
117
 
118
	useEffect(() => {
10450 stevensc 119
		console.log(action)
120
	}, [])
121
 
10447 stevensc 122
	return (
123
		<section className="content">
124
			<div className="container-fluid">
125
				<div className="row">
126
					<div className="col-12">
127
						<div className='card'>
128
							<div className="card-header">
129
								<ul className="nav nav-tabs" id="myTab" role="tablist">
130
									<li className="nav-item" role="presentation">
131
										<button className="nav-link active" id="home-tab" data-toggle="tab" data-target="#home" type="button" role="tab" aria-controls="home" aria-selected="true">Home</button>
132
									</li>
133
									<li className="nav-item" role="presentation">
134
										<button className="nav-link" id="profile-tab" data-toggle="tab" data-target="#profile" type="button" role="tab" aria-controls="profile" aria-selected="false">Profile</button>
135
									</li>
136
									<li className="nav-item" role="presentation">
137
										<button className="nav-link" id="contact-tab" data-toggle="tab" data-target="#contact" type="button" role="tab" aria-controls="contact" aria-selected="false">Contact</button>
138
									</li>
139
								</ul>
140
							</div>
141
							<div className="card-body">
142
								<div className="tab-content" id="myTabContent">
143
									<div className="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab"></div>
144
									<div className="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab"></div>
145
									<div className="tab-pane fade" id="contact" role="tabpanel" aria-labelledby="contact-tab">
146
										<div className="form-group">
10513 stevensc 147
											<label>Comentario</label>
148
											<input type="text" name="comment" className="form-control" />
10447 stevensc 149
										</div>
10513 stevensc 150
										<div className="form-group">
151
											<label>Evaluación</label>
152
											<select name='points' ref={register}>
153
												{
154
													pointsOptions.map(({ label, value }) => {
155
														<option key={value} value={value}>{label}</option>
156
													})
157
												}
158
											</select>
159
										</div>
160
										<div className="form-group">
161
											<label>Estatus</label>
162
											<select name='status' ref={register}>
163
												{
164
													statusOptions.map(({ label, value }) => {
165
														<option key={value} value={value}>{label}</option>
166
													})
167
												}
168
											</select>
169
										</div>
10447 stevensc 170
									</div>
171
								</div>
172
								<div className="form-group">
10513 stevensc 173
									<button type="submit" className="btn btn-primary btn-form-save-close mr-2">
10439 stevensc 174
                                        Guardar
10447 stevensc 175
									</button>
176
									<button
177
										type="button"
178
										className="btn btn-secondary btn-edit-cancel"
179
										onClick={() => history.goBack()}
180
									>
10439 stevensc 181
                                        Cancelar
10447 stevensc 182
									</button>
183
								</div>
184
							</div>
185
						</div>
186
					</div>
187
				</div>
188
			</div>
189
		</section>
190
	)
10436 stevensc 191
}
192
export default FormView