From 38d9d4b612879ff1bcbb8becd4a1b4c78dde7d5c Mon Sep 17 00:00:00 2001 From: AJ <90976178+ajstrongdev@users.noreply.github.com> Date: Thu, 15 Aug 2024 21:13:47 +0100 Subject: [PATCH] Add: news page Finally got around to adding the news page. Still need to commit blog post porting, however will do that closer to the time of the website's release. --- src/components/news/hero.jsx | 18 ++++++++++++++ src/components/news/posts.jsx | 44 +++++++++++++++++++++++++++++++++++ src/items/posts.js | 1 + src/pages/news.jsx | 16 +++++++++++++ 4 files changed, 79 insertions(+) create mode 100644 src/components/news/hero.jsx create mode 100644 src/components/news/posts.jsx create mode 100644 src/pages/news.jsx diff --git a/src/components/news/hero.jsx b/src/components/news/hero.jsx new file mode 100644 index 0000000..23c6497 --- /dev/null +++ b/src/components/news/hero.jsx @@ -0,0 +1,18 @@ +import React from "react"; + +function Hero() { + return( + <div className="lg:w-[90%] w-full m-auto"> + <div className="text-center"> + <h1 className="lg:text-6xl text-4xl text-rhino-purple font-bold pt-4 p-2"> + News Feed + </h1> + <h2 className="text-white font-lighter lg:text-3xl text-2xl p-2"> + Find news relating to Rhino Linux & its development + </h2> + </div> + </div> + ) +} + +export default Hero; \ No newline at end of file diff --git a/src/components/news/posts.jsx b/src/components/news/posts.jsx new file mode 100644 index 0000000..c8e81c8 --- /dev/null +++ b/src/components/news/posts.jsx @@ -0,0 +1,44 @@ +import React from 'react'; +import Hero from '../../components/news/hero'; +import posts from '../../items/posts'; + +function Posts() { + return ( + <div className="w-full p-4 m-auto"> + <div className="p-4 md:w-[65%] m-auto bg-indigo-950 rounded-lg"> + {posts.map((post, index) => { + return ( + <div key={index} className="p-4" id={post.date}> + <h1 className="text-5xl my-2 text-center text-white"> + {post.title} + </h1> + {post.banner && <img src={post.banner} alt="Post Banner" className="w-full" />} + <p className="text-white my-2 text-sm"> + Posted: {post.date} + </p> + {post.content.map((paragraph, index) => { + return ( + <p key={index} className="text-white my-2 text-lg"> + {paragraph} + </p> + ); + })} + <button + onClick={() => { + const postLink = window.location.href + `#${post.date}`; + navigator.clipboard.writeText(postLink); + alert('Post link copied to clipboard!'); + }} + className="bg-rhino-purple hover:bg-blue-700 text-white py-2 px-4 rounded-lg" + > + Copy post link + </button> + </div> + ); + })} + </div> + </div> + ); +} + +export default Posts; \ No newline at end of file diff --git a/src/items/posts.js b/src/items/posts.js index 796b5ef..34339e8 100644 --- a/src/items/posts.js +++ b/src/items/posts.js @@ -1,3 +1,4 @@ +// OPTIONS: title, date, banner, content const posts = [ { title: "Rhino Linux 2024.1 + more", diff --git a/src/pages/news.jsx b/src/pages/news.jsx new file mode 100644 index 0000000..38eaa60 --- /dev/null +++ b/src/pages/news.jsx @@ -0,0 +1,16 @@ +import React from "react"; +import Menu from "../components/navbar"; +import Hero from '../components/news/hero'; +import Posts from "../components/news/posts"; +import Footer from "../components/footer"; + +export default function Home() { + return ( + <main> + <Menu /> + <Hero /> + <Posts /> + <Footer /> + </main> + ); +}