Admin.js 3.12 KB
Newer Older
JeongYeonwoo's avatar
LAST    
JeongYeonwoo committed
1
import React, { useState, useEffect, useRef } from 'react';
JeongYeonwoo's avatar
JeongYeonwoo committed
2
3
import AdminQuiz from './AdminQuiz'
import AdminSetting from './AdminSetting'
JeongYeonwoo's avatar
quiz    
JeongYeonwoo committed
4

JeongYeonwoo's avatar
JeongYeonwoo committed
5
let QuizBtn = []
JeongYeonwoo's avatar
quiz    
JeongYeonwoo committed
6
7

function Admin() {
JeongYeonwoo's avatar
JeongYeonwoo committed
8
9
    const [result, setresult] = useState('')
    const [QuizBtnCount, setQuizBtnCount] = useState(4)
JeongYeonwoo's avatar
LAST    
JeongYeonwoo committed
10
11
    const indexRef = useRef(0)
    const dbRef = useRef([])
JeongYeonwoo's avatar
quiz    
JeongYeonwoo committed
12

JeongYeonwoo's avatar
LAST    
JeongYeonwoo committed
13
14
15
16
17
    useEffect(() => {
        if (JSON.parse(localStorage.getItem('QnA'))) {
            dbRef.current=JSON.parse(localStorage.getItem('QnA'))
        }
    }, [])
JeongYeonwoo's avatar
JeongYeonwoo committed
18
19
    function handleClickSetting() {
        setresult(<AdminSetting />)
JeongYeonwoo's avatar
quiz    
JeongYeonwoo committed
20
21
    }

JeongYeonwoo's avatar
JeongYeonwoo committed
22
    function handleClickQuiz(e) {
JeongYeonwoo's avatar
LAST    
JeongYeonwoo committed
23
24
25
26
27
28
29
30
31
32
        indexRef.current = Number(e.target.id) - 1
        // console.log(dbRef.current, indexRef.current)

        if(dbRef.current[e.target.id-1]){
            setresult(<AdminQuiz quizNum={e.target.id} fn={handleClickSave} data={dbRef.current[e.target.id-1]} />)  //설명 부탇드립니다.
        }
        else{
            dbRef.current[e.target.id-1] = {'Q':'문제를 입력하세요', 'Choose':['0','0','0','0'], 'A':'정답을 입력하세요'}
            setresult(<AdminQuiz quizNum={e.target.id} fn={handleClickSave} data={dbRef.current[e.target.id-1]} />)
        }
JeongYeonwoo's avatar
quiz    
JeongYeonwoo committed
33
    }
JeongYeonwoo's avatar
JeongYeonwoo committed
34
35

    function handleClickAddQuiz() {
JeongYeonwoo's avatar
JeongYeonwoo committed
36
37
38
        QuizBtn.push(
            <button type='button' className='btn btn-outline-primary' id={QuizBtnCount} onClick={handleClickQuiz}>Quiz {QuizBtnCount}</button>
        )
JeongYeonwoo's avatar
JeongYeonwoo committed
39
        setQuizBtnCount(QuizBtnCount + 1)
JeongYeonwoo's avatar
LAST    
JeongYeonwoo committed
40
41
42
43
44
    } //퀴즈 추가버튼

    function handleClickSave(QnAadmin) {
        dbRef.current[indexRef.current] = QnAadmin
        localStorage.setItem('QnA', JSON.stringify(dbRef.current))
JeongYeonwoo's avatar
quiz    
JeongYeonwoo committed
45

JeongYeonwoo's avatar
LAST    
JeongYeonwoo committed
46
    } //설명 부탁드립니다.
JeongYeonwoo's avatar
quiz    
JeongYeonwoo committed
47
48
    return (
        <>
JeongYeonwoo's avatar
LAST    
JeongYeonwoo committed
49
 <div className="container-fluid bg-light">
JeongYeonwoo's avatar
JeongYeonwoo committed
50
                <div className="row justify-content-md-center mt-5">
JeongYeonwoo's avatar
LAST    
JeongYeonwoo committed
51
52
53
                    <div className="col-2 text-center border py-5 bg-white">
                        <div className="py-3 border-top border-bottom">
                            <h5 className="font-weight-bold">설정</h5>
JeongYeonwoo's avatar
JeongYeonwoo committed
54
                        </div>
JeongYeonwoo's avatar
LAST    
JeongYeonwoo committed
55
56
                        <div className="border-bottom py-4">
                            <button type="button" className="btn btn-info" onClick={handleClickSetting}>Setting</button>
JeongYeonwoo's avatar
JeongYeonwoo committed
57
                        </div>
JeongYeonwoo's avatar
LAST    
JeongYeonwoo committed
58
59
60
61
                        <div className="btn-group-vertical py-4">
                            <button type="button" className="btn btn-outline-primary" id={1} onClick={handleClickQuiz}>Quiz 1</button>
                            <button type="button" className="btn btn-outline-primary" id={2} onClick={handleClickQuiz}>Quiz 2</button>
                            <button type="button" className="btn btn-outline-primary" id={3} onClick={handleClickQuiz}>Quiz 3</button>
JeongYeonwoo's avatar
JeongYeonwoo committed
62
63
                            {QuizBtn.map((element) => element)}
                            <button type="button" className="btn btn-outline-primary" onClick={handleClickAddQuiz}>+</button>
JeongYeonwoo's avatar
quiz    
JeongYeonwoo committed
64

JeongYeonwoo's avatar
JeongYeonwoo committed
65
                        </div>
JeongYeonwoo's avatar
quiz    
JeongYeonwoo committed
66
                    </div>
JeongYeonwoo's avatar
JeongYeonwoo committed
67

JeongYeonwoo's avatar
JeongYeonwoo committed
68
                    <div className="col-8 ">
JeongYeonwoo's avatar
JeongYeonwoo committed
69
                        {result}
JeongYeonwoo's avatar
quiz    
JeongYeonwoo committed
70
71
72
                    </div>
                </div>
            </div>
JeongYeonwoo's avatar
JeongYeonwoo committed
73

JeongYeonwoo's avatar
quiz    
JeongYeonwoo committed
74

JeongYeonwoo's avatar
JeongYeonwoo committed
75
        </>
JeongYeonwoo's avatar
quiz    
JeongYeonwoo committed
76
77
78
79
    )
}

export default Admin