fix: add clipboard fallback for navigator.clipboard unavailable contexts (closes #696) (#699)

This commit is contained in:
Anurag Saxena
2026-04-22 10:12:55 +07:00
committed by GitHub
parent 850766d54f
commit f825a523ab
4 changed files with 19 additions and 17 deletions
+7 -9
View File
@@ -3,18 +3,16 @@
import { useState } from "react";
import Modal from "./Modal";
import Button from "./Button";
import { useCopyToClipboard } from "@/shared/hooks/useCopyToClipboard";
export default function ManualConfigModal({ isOpen, onClose, title = "Manual Configuration", configs = [] }) {
const { copy } = useCopyToClipboard();
const [copiedIndex, setCopiedIndex] = useState(null);
const copyToClipboard = async (text, index) => {
try {
await navigator.clipboard.writeText(text);
setCopiedIndex(index);
setTimeout(() => setCopiedIndex(null), 2000);
} catch (err) {
console.log("Failed to copy:", err);
}
const copyConfig = (text, index) => {
copy(text, `manualconfig-${index}`);
setCopiedIndex(index);
setTimeout(() => setCopiedIndex(null), 2000);
};
return (
@@ -27,7 +25,7 @@ export default function ManualConfigModal({ isOpen, onClose, title = "Manual Con
<Button
variant="ghost"
size="sm"
onClick={() => copyToClipboard(config.content, index)}
onClick={() => copyConfig(config.content, index)}
>
<span className="material-symbols-outlined text-[14px] mr-1">
{copiedIndex === index ? "check" : "content_copy"}