Advertisement
Evenstephen

BLOG/[ID].JS

Oct 23rd, 2022 (edited)
1,018
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 1.43 KB | Source Code | 0 0
  1. import React, { useEffect, useState } from 'react';
  2. import { curlData } from '../../components/curl';
  3. import Link from 'next/link';
  4. import { useRouter } from 'next/router';
  5.  
  6.  
  7. const BlogLayout = (props) => {
  8.    
  9.     const router = useRouter();
  10.     let [dataList, setDataList] = useState([]);
  11.     let [currentBlog, setCurrentBlog] = useState([]);
  12.     const blogName = process.env.BLOG;
  13.        
  14.     const getData = async () => {
  15.         if(!sessionStorage["blog"])
  16.             curlData(blogName);
  17.         const data = (sessionStorage["blog"]);
  18.         if(data){
  19.             let myMap = JSON.parse(data);
  20.             setDataList(myMap.data);
  21.             if(myMap.data && router.query.id)
  22.                 {
  23.                     myMap.data.forEach(e => {
  24.                         if(e['id'] == router.query.id)
  25.                             setCurrentBlog(e);
  26.                     });
  27.                 }
  28.         } else {
  29.             setTimeout(() => getData(), 200);
  30.         }
  31.     }
  32.  
  33.     useEffect(() => {
  34.         if (document.readyState === "complete") {
  35.             getData();
  36.         } else {
  37.             window.addEventListener("load", getData);
  38.             // Remove the event listener when component unmounts
  39.             return () => window.removeEventListener("load", getData);
  40.         }
  41.        
  42.     }, [router.query]);
  43.  
  44.     return (
  45.         <>  
  46.             // CONTENT CLIPPED HERE
  47.         </>
  48.     );
  49. }
  50.  
  51. export default BlogLayout;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement