diff --git a/package.json b/package.json index 9c3da4d..c716daf 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "@astrojs/tailwind": "^5.1.0", "@calcom/embed-react": "^1.5.0", "@fontsource/inter": "^5.0.19", + "@fontsource/jetbrains-mono": "^5.2.6", "@fontsource/plus-jakarta-sans": "^5.0.20", "astro": "^4.12.1", "astro-seo": "^0.8.4", diff --git a/public/assets/logo.png b/public/assets/logo.png new file mode 100644 index 0000000..e398b7e Binary files /dev/null and b/public/assets/logo.png differ diff --git a/src/assets/icons/Download.jsx b/src/assets/icons/Download.jsx new file mode 100644 index 0000000..bc64991 --- /dev/null +++ b/src/assets/icons/Download.jsx @@ -0,0 +1,6 @@ + +export const Download = ({ size = 24 }) => ( + +) \ No newline at end of file diff --git a/src/assets/icons/PlayButton.jsx b/src/assets/icons/PlayButton.jsx index 68898e8..0b11b75 100644 --- a/src/assets/icons/PlayButton.jsx +++ b/src/assets/icons/PlayButton.jsx @@ -1,5 +1,5 @@ import React from "react"; -export const PlayButton = () => ( +export const PlayButton = ({ color = "#89B4FA" }) => ( diff --git a/src/assets/images/art.png b/src/assets/images/art.png new file mode 100644 index 0000000..7085c71 Binary files /dev/null and b/src/assets/images/art.png differ diff --git a/src/assets/images/art.webp b/src/assets/images/art.webp new file mode 100644 index 0000000..9585fe1 Binary files /dev/null and b/src/assets/images/art.webp differ diff --git a/src/assets/images/livnote.png b/src/assets/images/livnote.png new file mode 100644 index 0000000..71fcc7a Binary files /dev/null and b/src/assets/images/livnote.png differ diff --git a/src/assets/images/livnote.webp b/src/assets/images/livnote.webp new file mode 100644 index 0000000..86841ce Binary files /dev/null and b/src/assets/images/livnote.webp differ diff --git a/src/assets/images/livnotethumb.png b/src/assets/images/livnotethumb.png new file mode 100644 index 0000000..bd63750 Binary files /dev/null and b/src/assets/images/livnotethumb.png differ diff --git a/src/assets/images/osvauldthumb.png b/src/assets/images/osvauldthumb.png new file mode 100644 index 0000000..cedd755 Binary files /dev/null and b/src/assets/images/osvauldthumb.png differ diff --git a/src/assets/images/sharing.webm b/src/assets/images/sharing.webm deleted file mode 100644 index 480dfdc..0000000 Binary files a/src/assets/images/sharing.webm and /dev/null differ diff --git a/src/assets/images/thumbnail.webp b/src/assets/images/thumbnail.webp deleted file mode 100644 index 970c62d..0000000 Binary files a/src/assets/images/thumbnail.webp and /dev/null differ diff --git a/src/components/DownloadButton.jsx b/src/components/DownloadButton.jsx new file mode 100644 index 0000000..cd58a8d --- /dev/null +++ b/src/components/DownloadButton.jsx @@ -0,0 +1,118 @@ +import React, { useState, useEffect } from "react"; +import { Download } from "../assets/icons/Download"; + +const DownloadButton = () => { + const [platform, setPlatform] = useState("unknown"); + const [showDropdown, setShowDropdown] = useState(false); + + // Download URLs for different platforms + const downloadUrls = { + mac: "https://github.com/osvauld/osvauld/releases/download/alpha/osvauld_0.1.0_aarch64.dmg", // Replace with actual URL + linux: "https://github.com/osvauld/osvauld/releases/download/alpha/osvauld_0.1.0_amd64.deb", // Replace with actual URL + fedora: "https://github.com/osvauld/osvauld/releases/download/alpha/osvauld-0.1.0-1.x86_64.rpm", // Replace with actual URL + windows: "https://github.com/osvauld/osvauld/releases/download/alpha/osvauld_0.1.0_x64-setup.exe", // Replace with actual URL + }; + + // Platform names for display + const platformNames = { + mac: "Mac (Apple Silicon)", + linux: "Linux (Debian)", + fedora: "Linux (Fedora)", + windows: "Windows", + }; + + useEffect(() => { + // Detect user's platform + const userAgent = navigator.userAgent.toLowerCase(); + const platform = navigator.platform.toLowerCase(); + + if (userAgent.includes("mac")) { + setPlatform("mac"); + } else if (userAgent.includes("linux")) { + // Try to detect if it's Fedora or Debian-based + // This is a simplified detection - you might want to enhance this + if (userAgent.includes("fedora")) { + setPlatform("fedora"); + } else { + setPlatform("linux"); + } + } else if (userAgent.includes("windows")) { + setPlatform("windows"); + } else { + setPlatform("unknown"); + } + }, []); + + const handleDownload = (selectedPlatform = platform) => { + if (selectedPlatform !== "unknown" && downloadUrls[selectedPlatform]) { + // Create a temporary anchor element to trigger download + const downloadUrl = downloadUrls[selectedPlatform]; + const link = document.createElement('a'); + link.href = downloadUrl; + link.download = downloadUrl.split('/').pop(); // Extract filename from URL + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + setShowDropdown(false); + } else { + // Show dropdown for manual selection + setShowDropdown(true); + } + }; + + const handlePlatformSelect = (selectedPlatform) => { + handleDownload(selectedPlatform); + }; + + return ( +