All files / src/useClipboard useClipboard.js

0% Statements 0/13
100% Branches 0/0
0% Functions 0/4
0% Lines 0/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27                                                     
import { useState } from "react";
 
const copyToClipboard = async value => {
  let success = true;
  try {
    await navigator.clipboard.writeText(value);
  }
  catch (err) {
    success = false
  }
  finally {
    return success;
  }
};
 
const useClipboard = value => {
  const [hasCopied, setHasCopied] = useState(false);
 
  const onCopy = () => {
    setHasCopied(copyToClipboard(value));
    setTimeout(() => setHasCopied(false), 1500);
  };
 
  return { value, onCopy, hasCopied };
};
 
export default useClipboard;