"use client"; import React, { useEffect, useRef, useState } from "react"; import { useScroll, useTransform, motion, MotionValue } from "motion/react"; import { ArrowDownToLine, ArrowRight, Download, Puzzle } from "lucide-react"; import { type LatestRelease } from "@/types/release"; import { SlidingButton } from "@/components/ui/sliding-button"; import { getOS } from "@/lib/utils"; import type { OS } from "@/types/os"; export const ContainerScroll = ({ titleComponent, children, release, }: { titleComponent: string | React.ReactNode; children: React.ReactNode; release: LatestRelease; }) => { const containerRef = useRef(null); const { scrollYProgress } = useScroll({ target: containerRef, }); const [isMobile, setIsMobile] = React.useState(false); React.useEffect(() => { const checkMobile = () => { setIsMobile(window.innerWidth <= 768); }; checkMobile(); window.addEventListener("resize", checkMobile); return () => { window.removeEventListener("resize", checkMobile); }; }, []); const scaleDimensions = () => { return isMobile ? [0.7, 0.9] : [1.05, 1]; }; const rotate = useTransform(scrollYProgress, [0, 1], [20, 0]); const scale = useTransform(scrollYProgress, [0, 1], scaleDimensions()); const translate = useTransform(scrollYProgress, [0, 1], [0, -100]); const [os, setOS] = useState('unknown'); useEffect(() => { const detectedOS = getOS(); setOS(detectedOS); }, []); return (
{/* */} {os === "windows" && ( Download Now
} as="a" href={release.platforms["windows-x86_64-nsis"].url} target="_blank" > Download for Windows (x64 / ARM64) EXE Installer )} {os === "macos" && ( <> Download Now
} as="a" href={release.platforms["darwin-x86_64-dmg"].url} target="_blank" > Download for MacOS (x64) DMG Installer Download Now
} as="a" href={release.platforms["darwin-aarch64-dmg"].url} target="_blank" > Download for MacOS ⚠️ (ARM64) DMG Installer )} {os === "linux" && ( <> Download Now } as="a" href={release.platforms["linux-x86_64-deb"].url} target="_blank" > Download for Linux (x64) DEB Package Download Now } as="a" href={release.platforms["linux-aarch64-deb"].url} target="_blank" > Download for Linux (ARM64) DEB Package )} Goto All Downloads } as="a" href="/download" > More Downloads Choose from all download options
Looking for browser integration? Get Here
{children}
); }; export const Header = ({ translate, titleComponent }: any) => { return ( {titleComponent} ); }; export const Card = ({ rotate, scale, children, }: { rotate: MotionValue; scale: MotionValue; translate: MotionValue; children: React.ReactNode; }) => { return (
{children}
); };