Merge branch 'fe/fixEditQuiz' into 'frontend'

[Front-End] fix: 퀴즈 수정 폼 수정

See merge request s11-webmobile1-sub2/S11P12A701!187
This commit is contained in:
정기영 2024-08-13 13:59:38 +09:00
commit bc3cfaa66f
7 changed files with 30 additions and 34 deletions

View File

@ -58,7 +58,6 @@ export default function LectureForm({ title, topic, to = '..', initialValues = {
endDate: new Date(endDate).toISOString(),
time: time,
};
console.log(lectureObject);
const formData = new FormData();
formData.append('lectureCreateRequest', new Blob([JSON.stringify(lectureObject)], { type: 'application/json' }));
@ -161,6 +160,7 @@ export default function LectureForm({ title, topic, to = '..', initialValues = {
{onCreate && (
<div className={styles.inputField}>
<label className={styles.label}>수업 이미지</label>
<label className={styles.secondary}>* 여백이 충분히 있고 배경이 투명한 이미지를 사용해 주세요</label>
<input
type="file"
accept="image/*"

View File

@ -72,6 +72,13 @@
line-height: 1.4;
}
.secondary {
color: var(--text-color-secondary);
font-size: 14px;
line-height: 1.4;
font-weight: 400;
}
.input {
background: var(--background-color);
padding: 16px;

View File

@ -28,17 +28,6 @@ export default function LectureHeader({ img, title, tutorImg, tutor, isLive = fa
<h1 className={styles.title}>{title}</h1>
<div className={styles.desc}>
<div className={styles.tutor}>
{tutorImg ? (
<img
src={tutorImg}
alt="강사 사진"
className={styles.tutorImg}
/>
) : (
<div className={styles.tutorImg}>
<UserIcon />
</div>
)}
<div>{tutor}</div>
</div>
<div>

View File

@ -58,18 +58,6 @@
align-items: center;
}
.tutorImg {
display: flex;
justify-content: center;
align-items: center;
width: 48px;
height: 48px;
border-radius: 50%;
object-fit: cover;
stroke: var(--text-color-secondary);
border: 1px solid var(--border-color);
}
@keyframes glow {
0% {
box-shadow: 0 0 0 0 var(--error-color);

View File

@ -1,4 +1,4 @@
import { useEffect, useState } from 'react';
import { useState } from 'react';
import styles from './QuizCard.module.css';
import CloseIcon from '/src/assets/icons/close.svg?react';
import PlusIcon from '/src/assets/icons/plus.svg?react';
@ -6,12 +6,24 @@ import { Toggle } from '../Toggle';
import { STATIC_URL } from '../../constants';
export default function QuizCard({ quiz, updateQuiz, deleteQuiz }) {
const isChoice = quiz.choices.length > 0;
const [question, setQuestion] = useState(quiz.question || '');
const [answer, setAnswer] = useState(Number(quiz.answer) || '');
const [answer, setAnswer] = useState(isChoice ? Number(quiz.answer) || 1 : quiz.answer || '');
const [choices, setChoices] = useState(quiz.choices || [{ num: 1, content: '' }]);
const [image, setImage] = useState(quiz.image || null);
const [imagePreview, setImagePreview] = useState(quiz.image ? `${STATIC_URL}${quiz.image}` : null);
const [quizType, setQuizType] = useState('단답식');
const [quizType, setQuizType] = useState(isChoice ? '객관식' : '단답식');
const handleToggle = (type) => {
setQuizType(type);
if (type === '단답식') {
setAnswer('');
setChoices([]);
return;
}
setAnswer(1);
setChoices([{ num: 1, content: '' }]);
};
const clearImage = () => {
setImage(null);
@ -75,10 +87,6 @@ export default function QuizCard({ quiz, updateQuiz, deleteQuiz }) {
updateQuiz(quiz.id, { ...quiz, question, answer: choiceContent, choices, image });
};
useEffect(() => {
quizType === '단답식' ? setAnswer('') : setAnswer(1);
}, [quizType]);
return (
<div className={styles.card}>
<div className={styles.header}>
@ -131,7 +139,7 @@ export default function QuizCard({ quiz, updateQuiz, deleteQuiz }) {
<div className={styles.answerArea}>
<Toggle
active={quizType}
setActive={setQuizType}
setActive={handleToggle}
choices={['단답식', '객관식']}
/>
<input

View File

@ -15,6 +15,9 @@ export default function LivePage() {
const { data } = await instance.post(`${API_URL}/video/joinroom/${roomId}`).catch(() => {
alert('방에 입장할 수 없습니다.');
window.close();
setTimeout(() => {
window.location.href = '/';
}, 100);
});
return data.token;
@ -37,7 +40,9 @@ export default function LivePage() {
.post(`${API_URL}/video/deleteroom/${roomId}`)
.catch(() => {})
.finally(() => {
setTimeout(() => {
window.close();
}, 200);
});
}}
>

View File

@ -12,7 +12,6 @@ export default function StudentReportDetailPage() {
const { allCount, correctCount, quizzes, title } = report;
const score = Math.round((100 * correctCount) / allCount);
const userType = useBoundStore((state) => state.userType);
console.log(userType);
return (
<div className={styles.wrapper}>