import React, { useRef, useEffect, useState } from 'react'; import { Link } from 'react-router-dom'; import IconButton from '@mui/material/IconButton'; import SearchIcon from '@mui/icons-material/Search'; import InfiniteScroll from "react-infinite-scroll-component"; import Alert from '../../component/alert'; import PageLoader from '../../component/page_loader'; const INFINITE = 10; const SCROLL_DELAY_TIME = 1500; const AdminParents = (props) => { const [keyword, setKeyword] = useState('') const [loaded, setLoaded] = useState(false); const [father_list, setFatherList ] = useState([]); const [fetch_father_list, setFetchFatherList ] = useState([]); const [_422errors, set422errors] = useState({keyword:''}); const [_400error, set400Error] = useState(''); const [_success, setSuccess] = useState(props.history.location.state); const isMountedRef = useRef(true); useEffect( async () => { isMountedRef.current = false; setLoaded(false); await axios.get('/api/admin/fathers/list') .then((response) => { setLoaded(true); if(response.data.status_code==200){ setFatherList(response.data.params); var len = response.data.params.length; if(len > INFINITE) setFetchFatherList(response.data.params.slice(0, INFINITE)); else setFetchFatherList(response.data.params.slice(0, len)); } else { set400Error("失敗しました。"); } }); }, []); const fetchMoreFatherList = () => { setTimeout(() => { var x = fetch_father_list.length; var y = father_list.length; var c = 0; if(x+INFINITE < y) c = INFINITE; else c = y - x; setFetchFatherList(father_list.slice(0, x+c)); }, SCROLL_DELAY_TIME); }; const handleSearch = async (e) => { e.preventDefault(); if(keyword == '') { document.getElementById('keyword').focus(); return; } set422errors({keyword:''}); setLoaded(false); setFatherList([]); await axios.get('/api/admin/fathers/search',{params: {keyword: keyword}}) .then((response) => { setLoaded(true); if(response.data.status_code==200){ setFatherList(response.data.params); var len = response.data.params.length; if(len > INFINITE) setFetchFatherList(response.data.params.slice(0, INFINITE)); else setFetchFatherList(response.data.params.slice(0, len)); } }); } return (

親一覧

親を追加する
setKeyword(e.target.value)} />
{ !loaded && } { loaded &&
} style={{overflow:'none', position:'relative'}} > { fetch_father_list.length>0 ? fetch_father_list.map((father, k) =>
name

{ father.company }

{ father.email }

) :

データが存在していません。

} }
{ _400error && set400Error('')}> {_400error} } { _success && setSuccess('')}> {_success} }
) } export default AdminParents;