compare.js 4.55 KB
Newer Older
baesangjune's avatar
.    
baesangjune committed
1
2
import React, { useState, useEffect } from 'react';
// import Admin from './Admin'
baesangjune's avatar
admin    
baesangjune committed
3

baesangjune's avatar
choose    
baesangjune committed
4
5
6
7
let list = []

let QnAadmins = []
let QnAadmin = {}
baesangjune's avatar
.    
baesangjune committed
8
let savechoose = {}
baesangjune's avatar
choose    
baesangjune committed
9

baesangjune's avatar
.    
baesangjune committed
10
function AdminQuiz(props) {
baesangjune's avatar
admin    
baesangjune committed
11
12
13
14

    const [question, setQuestion] = useState('')
    const [choose, setChoose] = useState('')
    const [answer, setAnswer] = useState('')
baesangjune's avatar
choose    
baesangjune committed
15
    const [selectOption, setselectOption] = useState(1)
baesangjune's avatar
.    
baesangjune committed
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
    const [q, setq] = useState('')
    const [c, setc] = useState([])
    const [a, seta] = useState('')

    useEffect(()=>{
        setQuestion('')
        if(props.data[props.QuizNum-1]){
            setq(props.data[props.QuizNum-1].Q)
            setc(props.data[props.QuizNum-1].Choose)
            seta(props.data[props.QuizNum-1].A)
        }
        else {
            setq('보기를 입력하세요')
            setc(['보기를 입력하세요','보기를 입력하세요','보기를 입력하세요','보기를 입력하세요'])
            seta('보기를 입력하세요')
        }
    },[props.QuizNum])
baesangjune's avatar
admin    
baesangjune committed
33
34

    const handleChangeQuestion = (event) => {
baesangjune's avatar
choose    
baesangjune committed
35
        QnAadmin['Q'] = event.target.value
baesangjune's avatar
admin    
baesangjune committed
36
37
        setQuestion(event.target.value)
    }
baesangjune's avatar
choose    
baesangjune committed
38
    const handleChangeChoose = (event) => {
baesangjune's avatar
.    
baesangjune committed
39
        savechoose[event.target.id] = event.target.value
baesangjune's avatar
admin    
baesangjune committed
40
41
42
        setChoose(event.target.value)
    }
    const handleChangeanswer = (event) => {
baesangjune's avatar
choose    
baesangjune committed
43
        QnAadmin['A'] = event.target.value
baesangjune's avatar
admin    
baesangjune committed
44
45
46
47
        setAnswer(event.target.value)
    }

    function addSelectOption() {
baesangjune's avatar
choose    
baesangjune committed
48
49
50
51
        list.push(
            <div className="input-group">
                <div className="input-group-prepend">
                    <div className="input-group-text">
baesangjune's avatar
.    
baesangjune committed
52
                        <input type="radio" checked={false} name="answer" />
baesangjune's avatar
choose    
baesangjune committed
53
                    </div>
baesangjune's avatar
admin    
baesangjune committed
54
                </div>
baesangjune's avatar
.    
baesangjune committed
55
                <input type="text" class="form-control" id={String(selectOption + 1)} placeholder={c[1]} onChange={handleChangeChoose} />
baesangjune's avatar
admin    
baesangjune committed
56
            </div>
baesangjune's avatar
choose    
baesangjune committed
57
58
        )
        setselectOption(selectOption + 1)
baesangjune's avatar
admin    
baesangjune committed
59
60
    }

baesangjune's avatar
.    
baesangjune committed
61

baesangjune's avatar
choose    
baesangjune committed
62
63
64
65
66
67
68
69
70
71
72
    function handleClick() {
        if (!question) {
            alert('문제가 입력되지 않았습니다.')
        }
        else if (!choose) {
            alert('보기가 입력되지 않았습니다.')
        }
        else if (!answer) {
            alert('정답이 입력되지 않았습니다.')
        }
        else {
baesangjune's avatar
.    
baesangjune committed
73
74
75
            // console.log(QnAadmin)
            QnAadmin['Choose'] = Object.values(savechoose)
            QnAadmin['N'] = String(props.QuizNum)
baesangjune's avatar
choose    
baesangjune committed
76
            QnAadmins.push(QnAadmin)
baesangjune's avatar
.    
baesangjune committed
77
            QnAadmin = {}
baesangjune's avatar
choose    
baesangjune committed
78
79
            localStorage.setItem('QnA', JSON.stringify(QnAadmins))
            console.log(QnAadmins)
baesangjune's avatar
.    
baesangjune committed
80
            // setselectOption(1)
baesangjune's avatar
choose    
baesangjune committed
81
82
            alert('입력이 완료되었습니다.')
        }
baesangjune's avatar
admin    
baesangjune committed
83

baesangjune's avatar
choose    
baesangjune committed
84
    }
baesangjune's avatar
admin    
baesangjune committed
85

baesangjune's avatar
choose    
baesangjune committed
86
87
    return (
        <div className="" id="Quiz1">
baesangjune's avatar
.    
baesangjune committed
88
            <h2 className="p-3 border text-center">{String(props.QuizNum)} 문제만들기</h2>
baesangjune's avatar
choose    
baesangjune committed
89
90
            <div className="p-3 borber">
                <div className="p-3 ">
baesangjune's avatar
.    
baesangjune committed
91
92
                    <span className="font-weight-bold mr-2 h3">1. 문제 입력하기</span>
                    <input type="text" id="inputQuiz" className="form-control" value={question} onChange={handleChangeQuestion} placeholder={q} />
baesangjune's avatar
choose    
baesangjune committed
93
94
                </div>
                <div className="p-3 ">
baesangjune's avatar
.    
baesangjune committed
95
96
97
98
99
100
101
                    <span className="font-weight-bold mr-2 h3">2. 보기 입력하기</span>
                    <div className="p-3 ">
                        <div className="input-group">
                            <div className="input-group-prepend">
                                <div className="input-group-text">
                                    <input type="radio" checked={false} name="answer" />
                                </div>
baesangjune's avatar
admin    
baesangjune committed
102
                            </div>
baesangjune's avatar
.    
baesangjune committed
103
                            <input type="text" className="form-control" id='1' value={choose} placeholder={c[0]} onChange={handleChangeChoose} />
baesangjune's avatar
admin    
baesangjune committed
104
                        </div>
baesangjune's avatar
.    
baesangjune committed
105
106
                        {list.map((element) => element)}
                        <button className="btn btn-outline-secondary btn-sm" onClick={addSelectOption}>+</button>
baesangjune's avatar
admin    
baesangjune committed
107
                    </div>
baesangjune's avatar
choose    
baesangjune committed
108
109
110
111
                </div>

                <div className="p-3 ">
                    <span className="font-weight-bold mr-2 h3">정답:</span>
baesangjune's avatar
.    
baesangjune committed
112
                    <input type="text" value={answer} onChange={handleChangeanswer} placeholder={a} />
baesangjune's avatar
admin    
baesangjune committed
113
                </div>
baesangjune's avatar
choose    
baesangjune committed
114
115
116
117

                <label for="inputLogin" className="d-flex justify-content-center">
                    <button className="mt-4 btn btn-dark" onClick={handleClick}>작성완료</button>
                </label>
baesangjune's avatar
admin    
baesangjune committed
118
            </div>
baesangjune's avatar
choose    
baesangjune committed
119
        </div>
baesangjune's avatar
admin    
baesangjune committed
120
121
122
    )
}

baesangjune's avatar
choose    
baesangjune committed
123
export default AdminQuiz