diff --git a/src/app/globals.css b/src/app/globals.css index 4e4ce30..5db3f46 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -1,7 +1,6 @@ @tailwind base; @tailwind components; @tailwind utilities; -@import url(tailwind.css); @import url("https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"); * { padding: 0; diff --git a/src/app/page copy.js b/src/app/page copy.js index 15b44b1..fe821bb 100644 --- a/src/app/page copy.js +++ b/src/app/page copy.js @@ -1,20 +1,32 @@ "use client"; import { useState, useEffect } from "react"; -import { debounce } from "lodash"; import Link from "next/link"; +import Nav from "./components/Nav"; +import Footer from "./components/Footer"; +import Card2 from "./components/Card2"; + +export function generateRandomNumber(min, max) { + // Math.random() generates a random number between 0 and 1 + // We multiply it by (max - min + 1) to include the max value, + // then add min to ensure the number falls within the desired range. + return Math.floor(Math.random() * (max - min + 1)) + min; +} export default function ArticlesPage() { const [articles, setArticles] = useState([]); const [page, setPage] = useState(1); + const [type, setType] = useState(""); const [isLoading, setIsLoading] = useState(false); const [filteredArticles, setFilteredArticles] = useState([]); + useEffect(() => { async function fetchArticles() { setIsLoading(true); try { + const response = await fetch( - `https://dev.to/api/articles?per_page=12&page=${page}` + `https://dev.to/api/articles/${type}?per_page=22&page=${page}` ); const data = await response.json(); setArticles((prevArticles) => [...prevArticles, ...data]); @@ -33,18 +45,19 @@ export default function ArticlesPage() { }, [articles]); useEffect(() => { - async function loadMore() { - if ( - window.innerHeight + document.documentElement.scrollTop === - document.documentElement.offsetHeight - ) { + const handleScroll = () => { + const scrollHeight = document.documentElement.scrollHeight; + const scrollTop = document.documentElement.scrollTop; + const clientHeight = document.documentElement.clientHeight; + + if (scrollTop + clientHeight >= scrollHeight) { setPage((prevPage) => prevPage + 1); } - } + }; - window.addEventListener("scroll", debounce(loadMore, 200)); + window.addEventListener("scroll", handleScroll); - return () => window.removeEventListener("scroll", loadMore); + return () => window.removeEventListener("scroll", handleScroll); }, []); function handleSearch(event) { @@ -56,47 +69,62 @@ export default function ArticlesPage() { setFilteredArticles(filtered); } + let settype = (a) => { + setType("latest"); + alert(type) + } return ( -
-

Articles

- - - -
- {filteredArticles.map((article) => ( - - ))} -
- + <> +
+