import { useEffect, useState } from "react"; import { motion } from "framer-motion"; import dashboard from "../assets/images/dashboard.png"; import qsvProLogo from "../assets/logos/qsv-pro-logo.png"; import Download from "../assets/icons/Download.jsx"; import FeatureCarousel from "./FeatureCarousel.jsx"; export const Hero = () => { const [downloadData, setDownloadData] = useState(); const [OS, setOS] = useState(); const [name, setName] = useState(); useEffect(() => { (async () => { const userAgent = window.navigator.userAgent; // Ignore mobile view for now if ( userAgent.includes("iPhone") || userAgent.includes("Android") || userAgent.includes("iPad") || window.innerWidth < 768 ) { setOS("unknown"); return; } try { const data = await ( await fetch( "https://api.github.com/repos/dathere/qsv-pro-releases/releases" ) ).json(); const name = data[0].name; setName(name); const version = name.slice(1); const downloadData = { windows: [ ["Windows", `qsv.pro_${version}_x64_en-US.msi`], // `qsv.pro_${version}_x64-setup.exe`, ], macos: [ ["macOS (Apple Silicon)", `qsv.pro_aarch64.app.tar.gz`], ["macOS (Intel)", `qsv.pro_x64.app.tar.gz`], // `qsv.pro_${version}_x64.dmg`, // `qsv.pro_${version}_aarch64.dmg`, ], linux: [ [ "Linux (x86_64, deb)", `qsv.pro_${version}_amd64.deb`, ], [ "Linux (x86_64, rpm)", `qsv.pro-${version}-1.x86_64.rpm`, ], [ "Linux (x86_64, AppImage)", `qsv.pro_${version}_amd64.AppImage`, ], ], }; setDownloadData(downloadData); if (userAgent.includes("Windows")) { setOS("windows"); } else if (userAgent.includes("Macintosh")) { setOS("macos"); } else if (userAgent.includes("Linux")) { setOS("linux"); } } catch (e) { console.error( "Unable to fetch API data from releases repository: " + String(e) ); console.log("Showing default download button to user."); } })(); }, []); return (
Spreadsheet Data Wrangling Desktop App
{/* qsv pro */} qsv pro logo
Transform spreadsheet data and view statistics in interactive data tables, download/upload from/to compatible{" "} CKAN {" "} instances, and explore qsv pro.
{downloadData && OS !== "unknown" ? ( <>

Download qsv pro and explore the free plan or unlock features with a paid plan (30-day free trial).

{Object.keys(downloadData).map( (platform) => (
{downloadData[platform].map( (download, index) => ( <> {platform === "windows" && (
{/* Might not be an actual download, but store page clicked */}
)} {download[0]} {platform === "windows" && <>
Smartscreen warning? Click "More info" then "Run anyway". }
) )}
) )}
) : ( <>
Download qsv pro

You may access download links here on a desktop device.

Download qsv pro and explore the free plan or unlock features with a paid plan.

)} {/*
Live demo
*/}
{/*123*/}
); };