import { useNavigate } from 'react-router-dom';

import { UserContext } from '../Context.js';
import Article from '../components/Article.js';
import React, { useEffect, useState, useContext} from 'react';
import '../css/Main.css'
import axios from 'axios';
axios.defaults.withCredentials = true;


function Button({history, children}){
  const navigate = useNavigate(); 
  return(
		<button onClick={() => {navigate('/search');}}>
			{children}
		</button>
	);
}

function Main() {
  const userContext = useContext(UserContext);
  const [articleList, setArticleList] = useState([])
  let listItem = [];
  listItem = articleList.map((article)=>{
    return(
      <Article 
      key={article._id}
      data={article}
    ></Article>
    )
  }
  )
  useEffect(() => {
    requestLoadArticle()
    .then((response) => {
      console.log(response)
      setArticleList(response.data)
    })
  }, []);

  const handleSortChange = (event) => {
    console.log(event.target.value)
    requestSortArticle(event.target.value)
    .then((response) => {
      console.log(response)
      setArticleList(response.data)
    })
	};

  return(
    <div className="App">
        <h1>식도락에 오신 것을 환영합니다. </h1>
        <div className="introduction">
        <p>식당 리뷰를 손쉽게 모아볼 수 있는 서비스</p>
        </div>
        <div style={{display: 'flex'}}>
          <Button>검색</Button>
          <select id="addInputPrior" onChange={handleSortChange}>
            <option value="time">최신순</option>
            <option value="like">인기순</option>
          </select>
        </div>

        {listItem}
    </div>)
  ;
}

async function requestLoadArticle() {
	const response = await axios({
	  url: 'http://localhost:8080/article', // 통신할 웹문서
	  method: 'get', // 통신할 방식
	});
	return response;
  }

  async function requestSortArticle(crit) {
    const response = await axios({
      url: `http://localhost:8080/article/sort/${crit}`, // 통신할 웹문서
      method: 'get', // 통신할 방식
    });
    return response;
  }

export default Main;