diff --git a/src/v2/pages/V2Examen.jsx b/src/v2/pages/V2Examen.jsx
index f8a7b52..78a0f57 100644
--- a/src/v2/pages/V2Examen.jsx
+++ b/src/v2/pages/V2Examen.jsx
@@ -46,15 +46,16 @@ const V2Examen = () => {
}, [identificador]);
const handleSubmit = () => {
- if (state.selectedAnswer === null) return;
- const correct = state.selectedAnswer === 0; // In mock, first is correct
- setState(prev => ({ ...prev, showFeedback: true, isCorrect: correct }));
+ if (state.selectedAnswer === null || !state.caso) return;
+ // In the current implementation, we evaluate the first question
+ const isCorrect = state.caso.preguntas[0].respuestas[state.selectedAnswer].is_correct;
+ setState(prev => ({ ...prev, showFeedback: true, isCorrect }));
};
if (state.loading) return (
Cargando caso clínico...
-
@@ -68,11 +69,11 @@ const V2Examen = () => {
Sesión Activa
- bolt
+ bolt
+50 XP
- timer
+ timer
14:22
@@ -96,23 +97,32 @@ const V2Examen = () => {
key={rIdx}
onClick={() => !showFeedback && setState(prev => ({ ...prev, selectedAnswer: rIdx }))}
className="v2-card-outlined"
+ aria-label={`${String.fromCharCode(65 + rIdx)}. ${resp.texto}${showFeedback ? (resp.is_correct ? ' - Correcta' : (selectedAnswer === rIdx ? ' - Incorrecta' : '')) : ''}`}
style={{
display: 'flex', alignItems: 'center', textAlign: 'left',
cursor: showFeedback ? 'default' : 'pointer',
- borderColor: selectedAnswer === rIdx ? 'var(--md-sys-color-primary)' : 'var(--md-sys-color-outline-variant)',
- backgroundColor: selectedAnswer === rIdx ? 'var(--md-sys-color-primary-container)' : 'transparent',
- opacity: showFeedback && selectedAnswer !== rIdx ? 0.6 : 1,
+ borderColor: showFeedback
+ ? (resp.is_correct ? 'var(--md-sys-color-primary)' : (selectedAnswer === rIdx ? 'var(--md-sys-color-error)' : 'var(--md-sys-color-outline-variant)'))
+ : (selectedAnswer === rIdx ? 'var(--md-sys-color-primary)' : 'var(--md-sys-color-outline-variant)'),
+ backgroundColor: showFeedback
+ ? (resp.is_correct ? 'var(--md-sys-color-primary-container)' : (selectedAnswer === rIdx ? 'var(--md-sys-color-error-container)' : 'transparent'))
+ : (selectedAnswer === rIdx ? 'var(--md-sys-color-primary-container)' : 'transparent'),
+ opacity: showFeedback && !resp.is_correct && selectedAnswer !== rIdx ? 0.6 : 1,
width: '100%', padding: '16px', transition: 'all 0.2s'
}}
>
- {String.fromCharCode(65 + rIdx)}
+ {showFeedback && resp.is_correct ? check :
+ showFeedback && selectedAnswer === rIdx && !resp.is_correct ? close :
+ String.fromCharCode(65 + rIdx)}
{resp.texto}
@@ -128,7 +138,7 @@ const V2Examen = () => {
disabled={selectedAnswer === null}
>
Confirmar Respuesta
-
check_circle
+
check_circle
) : (
@@ -138,7 +148,7 @@ const V2Examen = () => {
color: isCorrect ? 'var(--md-sys-color-on-primary-container)' : 'var(--md-sys-color-on-error-container)',
marginBottom: '24px', display: 'flex', alignItems: 'center', gap: '12px', padding: '20px'
}}>
- {isCorrect ? 'check_circle' : 'cancel'}
+ {isCorrect ? 'check_circle' : 'cancel'}
{isCorrect ? '¡Excelente elección!' : 'Respuesta incorrecta'}
@@ -149,7 +159,7 @@ const V2Examen = () => {
- lightbulb
+ lightbulb
Perla Médica
@@ -164,7 +174,7 @@ const V2Examen = () => {
onClick={() => history.push('/v2/simulacro/resumen')}
>
Siguiente Caso
- arrow_forward
+ arrow_forward
diff --git a/src/v2/pages/V2Login.jsx b/src/v2/pages/V2Login.jsx
index 6c7648e..026235f 100644
--- a/src/v2/pages/V2Login.jsx
+++ b/src/v2/pages/V2Login.jsx
@@ -8,6 +8,7 @@ import '../styles/v2-theme.css';
const V2Login = () => {
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
+ const [showPassword, setShowPassword] = useState(false);
const [loading, setLoading] = useState(false);
const history = useHistory();
@@ -45,7 +46,7 @@ const V2Login = () => {
display: 'flex', alignItems: 'center', justifyContent: 'center',
margin: '0 auto 16px'
}}>
- stethoscope
+ stethoscope
ENARM V2
Bienvenido de nuevo, Doctor
@@ -53,8 +54,9 @@ const V2Login = () => {