'use client' import { Label, Listbox, ListboxButton, ListboxOption, ListboxOptions, } from '@headlessui/react' import { CheckIcon, ChevronUpDownIcon } from '@heroicons/react/16/solid' import Link from 'next/link' import { useState, type JSX } from 'react' import { Button } from './button' import { Container } from './container' import { Heading } from './text' type Version = 'v0.2.0' | 'v0.3.0' | 'v0.3.1' | 'v0.3.2' | 'v0.3.3' | 'v0.3.4' type Platforms = 'Windows' | 'Linux' | 'macOS' type Arch = 'x86' | 'ARM' const releasePages: { [key in Version]: string } = { 'v0.2.0': 'https://github.com/Drop-OSS/drop-app/releases/tag/v0.2.0-beta', 'v0.3.0': 'https://github.com/Drop-OSS/drop-app/releases/tag/v0.3.0', 'v0.3.1': 'https://github.com/Drop-OSS/drop-app/releases/tag/v0.3.1', 'v0.3.2': 'https://github.com/Drop-OSS/drop-app/releases/tag/v0.3.2', 'v0.3.3': 'https://github.com/Drop-OSS/drop-app/releases/tag/v0.3.3', 'v0.3.4': 'https://github.com/Drop-OSS/drop-app/releases/tag/v0.3.4', } function WindowsIcon() { return ( ) } function LinuxIcon() { return ( ) } function macOSIcon() { return ( ) } const downloads: { [key in Platforms]: { name: string description: string icon: () => JSX.Element downloads: { [key in Version]: { [key in Arch]: string | undefined } } } } = { Windows: { name: 'Windows', description: 'A setup executable to install the Drop Desktop Client on your Windows system.', icon: WindowsIcon, downloads: { 'v0.2.0': { x86: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.2.0-beta/Drop.Desktop.Client_0.2.0-beta_x64-setup.exe', ARM: undefined, }, 'v0.3.0': { x86: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.0/Drop.Desktop.Client_0.3.0_x64-setup.exe', ARM: undefined, }, 'v0.3.1': { x86: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.1/Drop.Desktop.Client_0.3.1_x64-setup.exe', ARM: undefined, }, 'v0.3.2': { x86: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.2/Drop.Desktop.Client_0.3.2_x64-setup.exe', ARM: undefined, }, 'v0.3.3': { x86: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.3/Drop.Desktop.Client_0.3.3_x64-setup.exe', ARM: undefined, }, 'v0.3.4': { x86: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.4/Drop.Desktop.Client_0.3.4_x64-setup.exe', ARM: undefined, }, }, }, Linux: { name: 'Linux', description: 'A .deb file that can be installed on Debian-based systems, or repackaged to another distro. Other Linux downloads are available on the GitHub releases page.', icon: LinuxIcon, downloads: { 'v0.2.0': { x86: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.2.0-beta/Drop.Desktop.Client_0.2.0-beta_amd64.deb', ARM: undefined, }, 'v0.3.0': { x86: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.0/Drop.Desktop.Client_0.3.0_amd64.deb', ARM: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.0/Drop.Desktop.Client_0.3.0_arm64.deb', }, 'v0.3.1': { x86: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.1/Drop.Desktop.Client_0.3.1_amd64.deb', ARM: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.1/Drop.Desktop.Client_0.3.1_arm64.deb', }, 'v0.3.2': { x86: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.2/Drop.Desktop.Client_0.3.2_amd64.deb', ARM: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.2/Drop.Desktop.Client_0.3.2_arm64.deb', }, 'v0.3.3': { x86: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.3/Drop.Desktop.Client_0.3.3_amd64.deb', ARM: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.3/Drop.Desktop.Client_0.3.3_arm64.deb', }, 'v0.3.4': { x86: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.4/Drop.Desktop.Client_0.3.4_amd64.deb', ARM: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.4/Drop.Desktop.Client_0.3.4_arm64.deb', }, }, }, macOS: { name: 'macOS', description: 'A self-signed .dmg to install on your macOS system.', icon: macOSIcon, downloads: { 'v0.2.0': { x86: undefined, ARM: undefined, }, 'v0.3.0': { x86: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.0/Drop.Desktop.Client_0.3.0_x64.dmg', ARM: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.0/Drop.Desktop.Client_0.3.0_aarch64.dmg', }, 'v0.3.1': { x86: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.1/Drop.Desktop.Client_0.3.1_x64.dmg', ARM: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.1/Drop.Desktop.Client_0.3.1_aarch64.dmg', }, 'v0.3.2': { x86: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.2/Drop.Desktop.Client_0.3.2_x64.dmg', ARM: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.2/Drop.Desktop.Client_0.3.2_aarch64.dmg', }, 'v0.3.3': { x86: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.3/Drop.Desktop.Client_0.3.3_x64.dmg', ARM: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.3/Drop.Desktop.Client_0.3.3_aarch64.dmg', }, 'v0.3.4': { x86: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.4/Drop.Desktop.Client_0.3.4_x64.dmg', ARM: 'https://github.com/Drop-OSS/drop-app/releases/download/v0.3.4/Drop.Desktop.Client_0.3.4_aarch64.dmg', }, }, }, } function DownloadCard({ version, data, }: { version: Version data: (typeof downloads)[Platforms] }) { return (
{data.description}
{JSON.stringify(downloads)}