From ea1d0023bfee55358ebb1a96f3d06e783a219c0d Mon Sep 17 00:00:00 2001 From: Mohamed Bassem Date: Sun, 1 Jun 2025 20:46:41 +0100 Subject: feat: Add support for public lists (#1511) * WIP: public lists * Drop viewing modes * Add the public endpoint for assets * regen the openapi spec * proper handling for different asset types * Add num bookmarks and a no bookmark banner * Correctly set page title * Add a not-found page * merge the RSS and public list endpoints * Add e2e tests for the public endpoints * Redesign the share list modal * Make NEXTAUTH_SECRET not required * propery render text bookmarks * rebase migration * fix public token tests * Add more tests --- apps/web/components/ui/copy-button.tsx | 41 +++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) (limited to 'apps/web/components/ui/copy-button.tsx') diff --git a/apps/web/components/ui/copy-button.tsx b/apps/web/components/ui/copy-button.tsx index a51ce902..1cb405da 100644 --- a/apps/web/components/ui/copy-button.tsx +++ b/apps/web/components/ui/copy-button.tsx @@ -1,6 +1,10 @@ -import React, { useEffect } from "react"; +import React, { useEffect, useState } from "react"; +import { cn } from "@/lib/utils"; import { Check, Copy } from "lucide-react"; +import { Button } from "./button"; +import { toast } from "./use-toast"; + export default function CopyBtn({ className, getStringToCopy, @@ -35,3 +39,38 @@ export default function CopyBtn({ ); } + +export function CopyBtnV2({ + className, + getStringToCopy, +}: { + className?: string; + getStringToCopy: () => string; +}) { + const [copied, setCopied] = useState(false); + + const handleCopy = async (url: string) => { + try { + await navigator.clipboard.writeText(url); + setCopied(true); + setTimeout(() => setCopied(false), 2000); + } catch (err) { + toast({ + description: + "Failed to copy link. Browsers only support copying to the clipboard from https pages.", + variant: "destructive", + }); + } + }; + + return ( + + ); +} -- cgit v1.2.3-70-g09d2