diff --git a/src/components/download/banner.jsx b/src/components/download/banner.jsx new file mode 100644 index 0000000..2cfd1a1 --- /dev/null +++ b/src/components/download/banner.jsx @@ -0,0 +1,12 @@ +import React from "react"; + +function Banner() { + return ( +
+

For an archive of previous releases, please visit our SourceForge.

+

Looking for our docker images? Click here.

+
+ ) +} + +export default Banner; \ No newline at end of file diff --git a/src/components/download/selection.jsx b/src/components/download/selection.jsx new file mode 100644 index 0000000..e0eb814 --- /dev/null +++ b/src/components/download/selection.jsx @@ -0,0 +1,60 @@ +import { useState } from 'react'; +import { genericContents, pineContents, rpiContents } from './downloads'; +import Banner from './banner'; + +const DownloadSelection = () => { + const [selectedPlatform, setSelectedPlatform] = useState('generic'); + + // Function to render content based on selected platform + const renderContent = () => { + let contentArray = []; + + if (selectedPlatform === 'generic') { + contentArray = genericContents; + } else if (selectedPlatform === 'pine') { + contentArray = pineContents; + } else if (selectedPlatform === 'rpi') { + contentArray = rpiContents; + } + + return contentArray.map((content, index) => ( +
+

{content.title}

+

Kernel: {content.details.kernel}

+

Download Mirror: {content.details.downloadMirror}

+

Download Size: {content.details.downloadSize}

+

Source Code: {content.details.sourceCode}

+ + {content.details.login && ( +

Login:
Username: {content.details.login.username}
Password: {content.details.login.password}

+ )} +
+ )); + }; + + return ( +
+ + + +
+ {renderContent()} +
+ +
+ ); +}; + +export default DownloadSelection; diff --git a/src/components/download/targetGeneric.jsx b/src/components/download/targetGeneric.jsx deleted file mode 100644 index 62b7f9e..0000000 --- a/src/components/download/targetGeneric.jsx +++ /dev/null @@ -1,53 +0,0 @@ -import React, { useState } from 'react'; -import { genericContents } from './downloads'; -import { motion, AnimatePresence } from 'framer-motion'; - -function TargetGeneric() { - const [openIndex, setOpenIndex] = useState(null); - - const toggleOpen = (index) => { - setOpenIndex(openIndex === index ? null : index); - }; - - return ( -
- {genericContents.map((item, index) => ( -
-
toggleOpen(index)} - > -

{item.title}

-
- - {openIndex === index && ( - -
-

Download

-

Download Size: {item.details.downloadSize}

-

Included kernel: {item.details.kernel}

-

Source Code: {item.details.sourceCode}

- {item.details.login && ( -
-

Username: {item.details.login.username}

-

Password: {item.details.login.password}

-
- )} -

SHA256sum: {item.details.shasum}

-
-
- )} -
-
- ))} -
- ); -} - -export default TargetGeneric; \ No newline at end of file diff --git a/src/components/download/targetPine.jsx b/src/components/download/targetPine.jsx deleted file mode 100644 index 30a9f3a..0000000 --- a/src/components/download/targetPine.jsx +++ /dev/null @@ -1,53 +0,0 @@ -import React, { useState } from 'react'; -import { pineContents } from './downloads'; -import { motion, AnimatePresence } from 'framer-motion'; - -function TargetPine() { - const [openIndex, setOpenIndex] = useState(null); - - const toggleOpen = (index) => { - setOpenIndex(openIndex === index ? null : index); - }; - - return ( -
- {pineContents.map((item, index) => ( -
-
toggleOpen(index)} - > -

{item.title}

-
- - {openIndex === index && ( - -
-

Download

-

Download Size: {item.details.downloadSize}

-

Included kernel: {item.details.kernel}

-

Source Code: {item.details.sourceCode}

- {item.details.login && ( -
-

Username: {item.details.login.username}

-

Password: {item.details.login.password}

-
- )} -

SHA256sum: {item.details.shasum}

-
-
- )} -
-
- ))} -
- ); -} - -export default TargetPine; \ No newline at end of file diff --git a/src/components/download/targetRpi.jsx b/src/components/download/targetRpi.jsx deleted file mode 100644 index d089f9a..0000000 --- a/src/components/download/targetRpi.jsx +++ /dev/null @@ -1,53 +0,0 @@ -import React, { useState } from 'react'; -import { rpiContents } from './downloads'; -import { motion, AnimatePresence } from 'framer-motion'; - -function TargetRpi() { - const [openIndex, setOpenIndex] = useState(null); - - const toggleOpen = (index) => { - setOpenIndex(openIndex === index ? null : index); - }; - - return ( -
- {rpiContents.map((item, index) => ( -
-
toggleOpen(index)} - > -

{item.title}

-
- - {openIndex === index && ( - -
-

Download

-

Download Size: {item.details.downloadSize}

-

Included kernel: {item.details.kernel}

-

Source Code: {item.details.sourceCode}

- {item.details.login && ( -
-

Username: {item.details.login.username}

-

Password: {item.details.login.password}

-
- )} -

SHA256sum: {item.details.shasum}

-
-
- )} -
-
- ))} -
- ); -} - -export default TargetRpi; \ No newline at end of file diff --git a/src/components/download/targetSelector.jsx b/src/components/download/targetSelector.jsx deleted file mode 100644 index fcd0f93..0000000 --- a/src/components/download/targetSelector.jsx +++ /dev/null @@ -1,78 +0,0 @@ -import React, { useState } from "react"; -import TargetGeneric from "./targetGeneric"; -import TargetPine from "./targetPine"; -import TargetRpi from "./targetRpi"; - -const targets = [ - { - id: "generic", - name: "Desktop", - architecture: "x86_64/ARM64", - image: "https://via.placeholder.com/150", - }, - { - id: "pine", - name: "Pine64", - architecture: "PinePhone/PineTab/PineTab2", - image: "https://via.placeholder.com/150", - }, - { - id: "rpi", - name: "Raspberry Pi", - architecture: "Desktop/Server", - image: "https://via.placeholder.com/150", - }, -]; - -const TargetSelector = () => { - const [target, setTarget] = useState(null); - const [buttonsVisible, setButtonsVisible] = useState(true); - - const handleButtonClick = (id) => { - setTarget(id); - setButtonsVisible(false); - }; - - const renderTarget = () => { - switch (target) { - case "generic": - return ; - case "pine": - return ; - case "rpi": - return ; - default: - return null; - } - }; - - return ( -
- {buttonsVisible && ( -
- {targets.map((target) => ( - - ))} -
- )} -
{renderTarget()}
-
- ); -}; - - - -export default TargetSelector; diff --git a/src/components/home/developers.jsx b/src/components/home/developers.jsx index 9dd8901..fc0bdc7 100644 --- a/src/components/home/developers.jsx +++ b/src/components/home/developers.jsx @@ -30,7 +30,7 @@ function Developers() { ))}
- Image + Image
))} diff --git a/src/components/home/hero.jsx b/src/components/home/hero.jsx index b74c423..d4c1ca7 100644 --- a/src/components/home/hero.jsx +++ b/src/components/home/hero.jsx @@ -12,15 +12,15 @@ function Hero() { The rolling release, Ubuntu-based distribution made by developers, for developers. - +
- + Learn More - + Download diff --git a/src/components/home/packages.jsx b/src/components/home/packages.jsx index 86205ac..1e1d260 100644 --- a/src/components/home/packages.jsx +++ b/src/components/home/packages.jsx @@ -10,8 +10,8 @@ const data = [ ], image: "/img/home/rhino-pkg.webp", link: { - text: "Learn more about Pacstall →", - url: "https://pacstall.dev" + text: "Learn more about rhino-pkg →", + url: "#" }, } ] diff --git a/src/pages/download.jsx b/src/pages/download.jsx index 82a4751..370a674 100644 --- a/src/pages/download.jsx +++ b/src/pages/download.jsx @@ -1,7 +1,7 @@ import React from "react"; import Menu from "../components/navbar"; import Hero from "../components/download/hero"; -import TargetSelector from "../components/download/targetSelector"; +import Selection from "../components/download/selection"; import Footer from "../components/footer"; export default function Home() { @@ -9,7 +9,7 @@ export default function Home() {
- +
); diff --git a/src/styles/globals.css b/src/styles/globals.css index 12f4f38..3ae668a 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -6,5 +6,5 @@ body { background-color: #13093c; - font-family: "Ubuntu", sans-serif; + font-family: "Ubuntu", sans-serif !important; } \ No newline at end of file