// Cookieを設定する関数 function setCookie(name, value, days) { let expires = ""; if (days) { const date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); expires = "; expires=" + date.toUTCString(); } document.cookie = name + "=" + (value) + expires + "; path=/"; } // Cookieを取得する関数 function getCookie(name) { const nameEQ = name + "="; const ca = document.cookie.split(';'); for(let i = 0; i < ca.length; i++) { let c = ca[i]; while (c.charAt(0) === ' ') c = c.substring(1, c.length); if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length); } return null; } // Cookieを削除する関数 function eraseCookie(name) { document.cookie = name + '=; Max-Age=-99999999;'; } const PublicationView = () => { const [mode, setMode] = useState(9); const [list, setList] = useState(); const [show_list, setShowList] = useState(); const [search_list, setSearchList] = useState(); const [search, setSearch] = useState(""); const [is_login, setIsLogin] = useState(); const [currentPage, setCurrentPage] = useState(1); useEffect(() => { axios.get("login.php") .then((res)=>{ if(res.data == false){ setIsLogin(false); }else if(res.data == true){ setIsLogin(true); } }) .catch((e) => { console.log(e); }) }, []); useEffect(() => { axios.get("list.php") .then((res) => { for(let data in res.data){ res.data[data].content = JSON.parse(res.data[data].content); } res.data = res.data.sort((a, b) => { // まず、publication_dateで比較 if (parseInt(a.content.publication_date) < parseInt(b.content.publication_date)) return 1; if (parseInt(a.content.publication_date) > parseInt(b.content.publication_date)) return -1; if (a.date < b.date) return 1; if (a.date > b.date) return -1; // publication_dateが同じ場合、名前で比較 return a.name.localeCompare(b.name); }); setList(res.data); if(getCookie("mode")){ setMode(getCookie("mode")); eraseCookie("mode"); } if(parseInt(getCookie("offset"))){ console.log(parseInt(getCookie("offset"))); const timer = setTimeout(() => { if(getCookie("offset")){ window.scrollTo({ top: parseInt(getCookie("offset")), behavior: "smooth", }); eraseCookie("offset"); } }, 100); return () => clearTimeout(timer); }else{ window.scrollTo(0, 0); } }).catch((err) => { }); }, []); useEffect(() => { updateShowList(); }, [list]) const updateShowList = () => { let temp = []; if(list){ if(mode == 9){ setShowList(list); setSearchList(list) }else{ for(var data of list){ if(data.content.type == mode){ temp.push(data); } } setShowList(temp); setSearchList(temp) } } } useEffect(() => { updateShowList(); }, [mode]); const customStyle = { '--bulma-tabs-toggle-link-active-background-color': '#A1A38D', '--bulma-tabs-toggle-link-active-border-color': '#aaaaaa', display: "inline-block", }; return(
{is_login && 追加}
setSearch(e.target.value)} />
{search_list && } {/* { search_list && search_list.map((elem) => ( )) } */}
); }