import { styled } from 'styled-components'; import { useState, useEffect } from 'react'; import { TextInput, SelectInput, InputLabel, FormWrapper, BtnWrapper, ButtonClose } from '../../styles/Components'; import Button from '../common/button/Button'; import Modal from '../common/modal/Modal'; import { UserView } from '../../apis'; const UserViewSearchBar = ({ setInfoView, handleTab, setResultData, resultData }) => { const [modalState, setModalState] = useState('hidden'); const [form, setForm] = useState(''); const [isNullValue, setIsNullValue] = useState(false); const [message, setMessage] = useState('필수값을 입력해주세요.'); const [dataLength, setDataLength] = useState(false); const [dataList, setDataList] = useState([]); const [searchData, setSearchData] = useState({ searchType: 'DEFAULT', searchKey: '', }); // console.log(dataList) const searchType = [ { value: 'DEFAULT', name: '선택' }, { value: 'NAME', name: '아바타명' }, { value: 'GUID', name: 'GUID' }, { value: 'ACCOUNT', name: 'Account ID' }, { value: 'FRIEND_CODE', name: '친구코드' }, ]; const fetchData = async (searchType, searchKey) => { const token = sessionStorage.getItem('token'); setDataList(await UserView(token, searchType, searchKey)); }; useEffect(() => { dataList && setDataLength(Object.values(dataList).length); }, [dataList]); const handleSearch = (searchType, searchKey) => { fetchData(searchType, searchKey); }; const handleReset = (e) => { e.preventDefault(); setSearchData({ searchType: 'DEFAULT', searchKey: '', }); setInfoView('none'); window.location.reload(); }; const handleRegistModalClose = (e) => { e.preventDefault(); if (searchData.searchKey.length === 0 || searchData.searchType === 'DEFAULT') { setMessage(searchData.searchType === 'DEFAULT' ? '항목을 선택해주세요.' : '필수값을 입력해주세요.'); setIsNullValue(true); } else if (searchData.searchKey && modalState === 'hidden') { setIsNullValue(false); handleSearch(searchData.searchType, searchData.searchKey); setModalState('view'); } else { setModalState('hidden'); } }; const handleModal = () => { if (modalState === 'hidden') { setModalState('view'); } else { setInfoView('flex'); handleTab('기본정보'); setModalState('hidden'); } }; const handleModalClose = () => { if (modalState === 'hidden') { setModalState('view'); } else { setModalState('hidden'); } }; const handleGuid = data => { // setResultData(data.guid); setResultData(data); handleModal(); }; return ( <> handleRegistModalClose(e)}> 유저 조회 { setSearchData({ ...searchData, searchType: e.target.value }); setDataList([])}} > {searchType.map((data, index) => ( ))} setSearchData({ ...searchData, searchKey: e.target.value })} disabled={searchData.searchType === 'DEFAULT' ? true : false} />