Advertisement
Evenstephen

blog/index.js

Oct 23rd, 2022
885
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 2.22 KB | Source Code | 0 0
  1. import Image from 'next/image';
  2. import { useRouter } from 'next/router';
  3. import { curlData } from '../../components/curl';
  4. import { Slide, Fade } from 'react-awesome-reveal';
  5. import React, { useEffect, useState } from 'react';
  6. import { ucwords } from '../../components/misc-functions';
  7.  
  8. const BlogLayout = (props) => {
  9.    
  10.     const router = useRouter();
  11.     let [dataList, setDataList] = useState([]);
  12.     let [category, setCategory] = useState([null]);
  13.     let [search, setSearch] = useState('');
  14.     let [limit, setLimit] = useState(10);
  15.     const blogName = process.env.BLOG;
  16.  
  17.     const getData = async () => {
  18.         if(!sessionStorage['blog'])
  19.             curlData(blogName);
  20.         const data = (sessionStorage['blog']);
  21.         if(data){
  22.             let myMap = JSON.parse(data);
  23.             setDataList(myMap.data);
  24.         } else {
  25.             setTimeout(() => getData(), 100);
  26.         }
  27.     }
  28.  
  29.     // tied to a search bar
  30.     const updateSearch = (e) => {
  31.         setSearch(e.target.value);
  32.     }
  33.  
  34.     const onPageLoad = () => {
  35.         if(dataList && router.query['c'])
  36.             setCategory(ParseListCategories(dataList, router.query['c']));
  37.     }
  38.  
  39.     // used for category filtering
  40.     const updateQuery = (query) => {
  41.         if(query){
  42.  
  43.             setCategory(ParseListCategories(dataList, query));
  44.             router.push({
  45.                 pathname: '/blog',
  46.                 query: { c: query }
  47.             },
  48.             undefined, { shallow: true }
  49.             )
  50.         } else {
  51.             setCategory(ParseListCategories(dataList, query));
  52.             router.push({
  53.                 pathname: '/blog',
  54.                 query: { }
  55.             },
  56.             undefined, { shallow: true }
  57.             )
  58.         }
  59.     }
  60.    
  61.     useEffect(() => {
  62.         if (document.readyState === "complete") {
  63.             onPageLoad();
  64.         } else {
  65.             window.addEventListener("load", onPageLoad);
  66.             // Remove the event listener when component unmounts
  67.             return () => window.removeEventListener("load", onPageLoad);
  68.         }
  69.     }, [router.query]);
  70.  
  71.     return (
  72.         <>
  73.             // CONTENT CLIPPED
  74.         </>
  75.     );
  76. }
  77.  
  78. export default BlogLayout;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement