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

baesangjune's avatar
.    
baesangjune committed
5
let QuizBtn = []
baesangjune's avatar
baesangjune committed
6

baesangjune's avatar
push    
baesangjune committed
7
function Admin() {
baesangjune's avatar
ddd    
baesangjune committed
8
    // QnA.length === 0 ? console.log(QnA.length) : QnA = JSON.parse(localStorage.getItem('QnA'))
baesangjune's avatar
.    
baesangjune committed
9
10
    const [result, setresult] = useState('')
    const [QuizBtnCount, setQuizBtnCount] = useState(4)
baesangjune's avatar
.    
baesangjune committed
11
12
    const indexRef = useRef(0)
    const dbRef = useRef([])
baesangjune's avatar
push    
baesangjune committed
13

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

baesangjune's avatar
.    
baesangjune committed
23
    function handleClickQuiz(e) {
baesangjune's avatar
.    
baesangjune committed
24
25
        indexRef.current = Number(e.target.id) - 1
        // console.log(dbRef.current, indexRef.current)
baesangjune's avatar
ddd    
baesangjune committed
26

baesangjune's avatar
.    
baesangjune committed
27
        if(dbRef.current[e.target.id-1]){
baesangjune's avatar
.    
baesangjune committed
28
            setresult(<AdminQuiz quizNum={e.target.id} fn={handleClickSave} data={dbRef.current[e.target.id-1]} />)  //설명 부탇드립니다.
baesangjune's avatar
.    
baesangjune committed
29
30
31
32
33
        }
        else{
            dbRef.current[e.target.id-1] = {'Q':'x', 'Choose':[0,0,0,0], 'A':'x'}
            setresult(<AdminQuiz quizNum={e.target.id} fn={handleClickSave} data={dbRef.current[e.target.id-1]} />)
        }
baesangjune's avatar
.    
baesangjune committed
34
    }
baesangjune's avatar
.    
baesangjune committed
35

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

baesangjune's avatar
.    
baesangjune committed
43
44
45
46
47
    function handleClickSave(QnAadmin) {
        console.log(QnAadmin, indexRef.current)
        dbRef.current[indexRef.current] = QnAadmin
        localStorage.setItem('QnA', JSON.stringify(dbRef.current))

baesangjune's avatar
.    
baesangjune committed
48
    } //설명 부탁드립니다.
baesangjune's avatar
baesangjune committed
49
50
    return (
        <>
baesangjune's avatar
.    
baesangjune committed
51
 <div className="container-fluid bg-light">
baesangjune's avatar
.    
baesangjune committed
52
                <div className="row justify-content-md-center mt-5">
baesangjune's avatar
.    
baesangjune committed
53
54
55
                    <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>
baesangjune's avatar
.    
baesangjune committed
56
                        </div>
baesangjune's avatar
.    
baesangjune committed
57
58
                        <div className="border-bottom py-4">
                            <button type="button" className="btn btn-info" onClick={handleClickSetting}>Setting</button>
baesangjune's avatar
.    
baesangjune committed
59
                        </div>
baesangjune's avatar
.    
baesangjune committed
60
61
62
63
                        <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>
baesangjune's avatar
.    
baesangjune committed
64
65
66
67
                            {QuizBtn.map((element) => element)}
                            <button type="button" className="btn btn-outline-primary" onClick={handleClickAddQuiz}>+</button>

                        </div>
baesangjune's avatar
baesangjune committed
68
                    </div>
baesangjune's avatar
baesangjune committed
69

baesangjune's avatar
.    
baesangjune committed
70
71
                    <div className="col-8 ">
                        {result}
baesangjune's avatar
baesangjune committed
72
73
                    </div>
                </div>
baesangjune's avatar
baesangjune committed
74
            </div>
baesangjune's avatar
baesangjune committed
75

baesangjune's avatar
admin    
baesangjune committed
76

baesangjune's avatar
.    
baesangjune committed
77
        </>
baesangjune's avatar
baesangjune committed
78
79
80
81
    )
}

export default Admin