import { PageHead } from "~/components/PageHead"; import { A } from "@solidjs/router"; import { createSignal, onMount, onCleanup } from "solid-js"; import DownloadOnAppStore from "~/components/icons/DownloadOnAppStore"; import { glitchText } from "~/lib/client-utils"; const DownloadButton = ({ onClick, children }: { onClick: () => void; children: Element | string; }) => { return ( ); }; export default function DownloadsPage() { const [LaLText, setLaLText] = createSignal("Life and Lineage"); const [SwAText, setSwAText] = createSignal("Shapes with Abigail!"); const [corkText, setCorkText] = createSignal("Cork"); const download = (assetName: string) => { fetch(`/api/downloads/public/${assetName}`) .then((response) => response.json()) .then((data) => { const url = data.downloadURL; window.location.href = url; }) .catch((error) => console.error(error)); }; onMount(() => { const lalInterval = glitchText(LaLText(), setLaLText); const swaInterval = glitchText(SwAText(), setSwAText); const corkInterval = glitchText(corkText(), setCorkText); onCleanup(() => { clearInterval(lalInterval); clearInterval(swaInterval); clearInterval(corkInterval); }); }); return ( <>
{/* Subtle scanline effect */}
{/* Life and Lineage */}

{">"} {LaLText()}

platform: android download("lineage")}> download.apk # android build not optimized
platform: ios
{/* Shapes with Abigail */}

{">"} {SwAText()}

platform: android download("shapes-with-abigail")} > download.apk
platform: ios
{/* Cork */}

{">"} {corkText()}

platform: macOS (13+) download("cork")}> download.zip # unzip → drag to /Applications
); }