diff --git a/components/codePreview/index.tsx b/components/codePreview/index.tsx index 59dbed5c..b4fec91a 100644 --- a/components/codePreview/index.tsx +++ b/components/codePreview/index.tsx @@ -1,4 +1,4 @@ -import React, { useRef, useState } from "react"; +import React, { useCallback, useRef, useState } from "react"; import "highlight.js/styles/atom-one-light.css"; import { Algorithm } from "lib/models"; import { @@ -23,11 +23,13 @@ import { getLanguageName, Language } from "lib/repositories"; import LanguageIcon from "components/icon"; import { Close, + FileCopyOutlined, Fullscreen, MoreHoriz, OpenInNew, PlayArrow, } from "@material-ui/icons"; +import { toast } from "react-hot-toast"; import NextLink from "next/link"; import { StringParam, useQueryParam, withDefault } from "next-query-params"; import classes from "./style.module.css"; @@ -45,6 +47,12 @@ export default function CodePreview({ algorithm }: { algorithm: Algorithm }) { const fabRef = useRef(); const [mobileMoreMenuOpen, setMobileMoreMenuOpen] = useState(false); + const copyCode = useCallback(async () => { + const codeText = document.querySelector(".style_pre__k555n")?.textContent; + await navigator.clipboard.writeText(codeText); + toast.success("Code Snippet Copied!"); + }, []); + return (