diff --git a/src/assets/icons/missions/copy-icon.svg b/src/assets/icons/missions/copy-icon.svg new file mode 100644 index 0000000..dd2147a --- /dev/null +++ b/src/assets/icons/missions/copy-icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icons/missions/index.ts b/src/assets/icons/missions/index.ts index 30948a7..62ec89d 100644 --- a/src/assets/icons/missions/index.ts +++ b/src/assets/icons/missions/index.ts @@ -1,4 +1,6 @@ import IconSuccess from "./icon-success.svg" import IconError from "./icon-error.svg" +import CopyIcon from "./copy-icon.svg" -export {IconError, IconSuccess} \ No newline at end of file + +export {IconError, IconSuccess, CopyIcon} \ No newline at end of file diff --git a/src/views/mission/statement/Statement.tsx b/src/views/mission/statement/Statement.tsx index 63449fc..fc2fece 100644 --- a/src/views/mission/statement/Statement.tsx +++ b/src/views/mission/statement/Statement.tsx @@ -1,8 +1,54 @@ -import React from "react"; -// import { cn } from "../../../lib/cn"; +import React, { FC } from "react"; +import { cn } from "../../../lib/cn"; import LaTextContainer from "./LaTextContainer"; +import { CopyIcon } from "../../../assets/icons/missions"; // import FullLatexRenderer from "./FullLatexRenderer"; + + +import { useState } from "react"; + +interface CopyableDivPropd{ + content: string; +} + +const CopyableDiv: FC = ({ content }) => { + const [hovered, setHovered] = useState(false); + + const handleCopy = async () => { + try { + await navigator.clipboard.writeText(content); + alert("Скопировано!"); + } catch (err) { + console.error("Ошибка копирования:", err); + } + }; + + return ( +
setHovered(true)} + onMouseLeave={() => setHovered(false)} + > + {content} + + + copy + +
+ ); +} + + + + export interface StatementData { id?: number; name?: string; @@ -75,9 +121,9 @@ const Statement: React.FC = ({ {sampleTests.map((v, i) =>
Входные данные
-
{v.input}
+
Выходные данные
-
{v.output}
+
)}