SubNav.js 1.35 KB
Newer Older
Kim, Subin's avatar
Kim, Subin committed
1
import React, { useState, useEffect, useRef } from 'react';
kusang96's avatar
kusang96 committed
2
3
import { Link } from 'react-router-dom';
import { Navbar, Nav } from 'react-bootstrap';
kusang96's avatar
kusang96 committed
4
5
import axios from 'axios';
import catchErrors from '../utils/catchErrors';
Kim, Subin's avatar
Kim, Subin committed
6
7

function SubNav() {
Jiwon Yoon's avatar
Jiwon Yoon committed
8
    const [categoriesDiv, setCategoriesDiv] = useState([])
kusang96's avatar
kusang96 committed
9
10
11
12
    const [error, setError] = useState('')

    useEffect(async () => {
        try {
이재연's avatar
0115    
이재연 committed
13
            const response = await axios.get('/api/categories/main')
kusang96's avatar
kusang96 committed
14
15
            let list = []
            Object.keys(response.data[0]).forEach((ele) => {
kusang96's avatar
kusang96 committed
16
                const url = ele.toLowerCase()
kusang96's avatar
kusang96 committed
17
                list.push(
18
                    <Nav.Link href={`/categories/${url}`}>{ele}</Nav.Link>
kusang96's avatar
kusang96 committed
19
20
                )
            })
Jiwon Yoon's avatar
Jiwon Yoon committed
21
            setCategoriesDiv(list)
kusang96's avatar
kusang96 committed
22
23
24
25
        } catch (error) {
            catchErrors(error, setError)
        }
    }, [])
Kim, Subin's avatar
Kim, Subin committed
26
27

    return (
kusang96's avatar
kusang96 committed
28
        <Navbar sticky="top" className="flex-nowrap" style={{ top: "56px", paddingTop: "0", paddingBottom: "0", backgroundColor: "#fff" }}>
29
30
31
32
33
34
35
            <style type="text/css">
                {`
                .nav-link, .nav-link:hover, .nav-link:active {
                    color: #91877F;
                }
                `}
            </style>
kusang96's avatar
kusang96 committed
36
            <Nav style={{ overflowX: "auto" }}>
Jiwon Yoon's avatar
Jiwon Yoon committed
37
                {categoriesDiv.map(item => item)}
38
39
            </Nav>
        </Navbar>
Kim, Subin's avatar
Kim, Subin committed
40
41
42
43
    )
}

export default SubNav