utlilize useHandledAsyncCallback in CopiableCode
This commit is contained in:
@@ -1,17 +1,14 @@
|
|||||||
import { HStack, Icon, IconButton, Tooltip, Text } from "@chakra-ui/react";
|
import { HStack, Icon, IconButton, Tooltip, Text } from "@chakra-ui/react";
|
||||||
import { useCallback, useState } from "react";
|
import { useState } from "react";
|
||||||
import { MdContentCopy } from "react-icons/md";
|
import { MdContentCopy } from "react-icons/md";
|
||||||
|
import { useHandledAsyncCallback } from "~/utils/hooks";
|
||||||
|
|
||||||
const CopiableCode = ({ code }: { code: string }) => {
|
const CopiableCode = ({ code }: { code: string }) => {
|
||||||
const [copied, setCopied] = useState(false);
|
const [copied, setCopied] = useState(false);
|
||||||
|
|
||||||
const copyToClipboard = useCallback(() => {
|
const [copyToClipboard] = useHandledAsyncCallback(async () => {
|
||||||
const onCopy = async () => {
|
|
||||||
console.log("copied!");
|
|
||||||
await navigator.clipboard.writeText(code);
|
await navigator.clipboard.writeText(code);
|
||||||
setCopied(true);
|
setCopied(true);
|
||||||
};
|
|
||||||
void onCopy();
|
|
||||||
}, [code]);
|
}, [code]);
|
||||||
return (
|
return (
|
||||||
<HStack
|
<HStack
|
||||||
|
|||||||
Reference in New Issue
Block a user