diff --git a/commons/home.js b/commons/home.js
index c438e6b..b0b6b5b 100644
--- a/commons/home.js
+++ b/commons/home.js
@@ -1,23 +1,51 @@
-import { useState } from "react";
+import { useEffect, useState } from "react";
import Searchbar from "../components/searchbar";
import Link from "next/link";
export default function Home({ rehberler }) {
const [search, setSearch] = useState("");
- const filteredPosts =
- search.length === 0
- ? rehberler
- : rehberler.filter((rehber) =>
- rehber.fields.title.toLowerCase().includes(search.toLowerCase())
- );
+ const [posts, setPosts] = useState([]);
+ const [currentPage, setCurrentPage] = useState(1);
+ const [postsPerPage] = useState(15);
+
+ const indexOfLastPost = currentPage * postsPerPage;
+ const indexOfFirstPost = indexOfLastPost - postsPerPage;
+ const currentPosts = posts.slice(indexOfFirstPost, indexOfLastPost);
+
+ const pageNumbers = [];
+ for (let i = 1; i <= Math.ceil(rehberler.length / postsPerPage); i++) {
+ pageNumbers.push(i);
+ }
+
+ const paginate = (pageNumber) => setCurrentPage(pageNumber);
+
+ useEffect(() => {
+ const fetchPosts = async () => {
+ let filteredPosts =
+ search.length === 0
+ ? rehberler
+ : rehberler.filter((rehber) =>
+ rehber.fields.title.toLowerCase().includes(search.toLowerCase())
+ );
+
+ setCurrentPage(1);
+ setPosts(filteredPosts);
+ };
+
+ fetchPosts();
+ }, [search.length]);
return (
-
-
Rehberler
+
+
- {filteredPosts.slice(0, 21).map((rehber) => (
+ {currentPosts.map((rehber) => (
{rehber.fields.title}
@@ -25,6 +53,14 @@ export default function Home({ rehberler }) {
))}
+
+
);
}
diff --git a/styles/abstracts/_include-media.scss b/styles/abstracts/_include-media.scss
index f3c696b..50cccd5 100644
--- a/styles/abstracts/_include-media.scss
+++ b/styles/abstracts/_include-media.scss
@@ -29,8 +29,8 @@
/// $breakpoints: ('phone': 320px);
///
$breakpoints: (
- "smallest": 25em,
- // 400 px
+ "smallest": 22em,
+ // 352 px
"smaller": 34.375em,
// 550 px
"small": 43.75em,
diff --git a/styles/base/_base.scss b/styles/base/_base.scss
index a2572d1..3c84375 100644
--- a/styles/base/_base.scss
+++ b/styles/base/_base.scss
@@ -24,3 +24,10 @@ body {
background-color: hsl(10, 5%, 42%);
color: #bdb7af;
}
+
+.container {
+ min-height: 100vh;
+ display: grid;
+ grid-template-rows: auto 1fr auto;
+ align-items: center;
+}
diff --git a/styles/base/_typography.scss b/styles/base/_typography.scss
index 0094893..131ed76 100644
--- a/styles/base/_typography.scss
+++ b/styles/base/_typography.scss
@@ -46,7 +46,7 @@ a {
code {
background-color: #383838;
- line-height: 2;
+ line-height: 1.7;
font-size: 1.6rem;
}
diff --git a/styles/pages/homepage.scss b/styles/pages/homepage.scss
index c73bffd..f4ba0ce 100644
--- a/styles/pages/homepage.scss
+++ b/styles/pages/homepage.scss
@@ -1,30 +1,57 @@
.homepage {
display: grid;
- justify-content: center;
justify-items: center;
+ grid-template-rows: auto auto 58rem;
padding-top: 2rem;
- list-style-type: none;
+
&_heading-1 {
padding-top: 1rem;
}
- &_posts {
- display: grid;
- justify-content: center;
- grid-template-columns: repeat(3, 1fr);
- grid-template-rows: repeat(8, 12rem);
- width: 55%;
+ h1 {
+ grid-row: 1;
+ margin-bottom: 1rem;
+ }
+ &_posts {
li {
- margin-top: 2rem;
- margin-right: 2rem;
- text-align: center;
+ margin-top: 1rem;
}
}
- @include media("