import React, { useState, useEffect } from "react"; import { IconAdjustments, IconArrowRight, IconBolt, IconBraces, IconCheck, IconClipboard, IconDevices, IconFeather, IconLockCheck, } from "@tabler/icons-react"; import { GitHubIcon } from "../../assets/GitHubIcon"; import { GridPattern } from "../GridPattern"; import { Section } from "../Section"; import { GradientText } from "../GradientText"; import Image from "next/image"; import screenshot_light from "../../assets/screenshot_light.png"; import screenshot_dark from "../../assets/screenshot_dark.png"; import { Step } from "../Step"; import { Card } from "../Card"; export function Home() { const [copySuccess, setCopySuccess] = useState(false); const [isBrowser, setIsBrowser] = useState(false); // To prevent hydration mismatch useEffect(() => setIsBrowser(true)); const handleCopy = (text: string) => { return () => { navigator.clipboard.writeText(text).then(() => { setCopySuccess(true); setTimeout(() => { setCopySuccess(false); }, 3000); }); }; }; return (
Still not convinced? Try it out now!
docker run --rm -t -v /var/run/docker.sock:/var/run/docker.sock -p 8000:8000 ghcr.io/sergi0g/cup serve
{isBrowser && navigator.clipboard && (copySuccess ? (Visit{" "} http://localhost:8000 {" "} in your browser to try it out!