Damián Pumar commited on
Commit
6bb0e6c
·
unverified ·
1 Parent(s): 1880f07

fix: 🐛 Fix copy button (#1672)

Browse files
src/lib/components/CopyToClipBoardBtn.svelte CHANGED
@@ -10,10 +10,30 @@
10
  let isSuccess = false;
11
  let timeout: ReturnType<typeof setTimeout>;
12
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  const handleClick = async () => {
14
- // writeText() can be unavailable or fail in some cases (iframe, etc) so we try/catch
15
  try {
16
- await navigator.clipboard.writeText(value);
17
 
18
  isSuccess = true;
19
  if (timeout) {
 
10
  let isSuccess = false;
11
  let timeout: ReturnType<typeof setTimeout>;
12
 
13
+ const unsecuredCopy = (text: string) => {
14
+ //Old or insecure browsers
15
+
16
+ const textArea = document.createElement("textarea");
17
+ textArea.value = text;
18
+ document.body.appendChild(textArea);
19
+ textArea.focus();
20
+ textArea.select();
21
+ document.execCommand("copy");
22
+ document.body.removeChild(textArea);
23
+
24
+ return Promise.resolve();
25
+ };
26
+
27
+ const copy = async (text: string) => {
28
+ if (window.isSecureContext && navigator.clipboard) {
29
+ return navigator.clipboard.writeText(text);
30
+ }
31
+ return unsecuredCopy(text);
32
+ };
33
+
34
  const handleClick = async () => {
 
35
  try {
36
+ await copy(value);
37
 
38
  isSuccess = true;
39
  if (timeout) {