From 5c6c6a0bcf3bb2952c90fb2ec8ad3ead70754b07 Mon Sep 17 00:00:00 2001 From: HannesOberreiter Date: Fri, 21 Jun 2024 11:48:36 +0200 Subject: [PATCH] feat: Add copy link action to card modal (#804) --- client/src/components/CardModal/CardModal.jsx | 19 ++++++++++++++++++- client/src/locales/de/core.js | 2 ++ client/src/locales/en/core.js | 2 ++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/client/src/components/CardModal/CardModal.jsx b/client/src/components/CardModal/CardModal.jsx index ff77aa97..9c9651cc 100755 --- a/client/src/components/CardModal/CardModal.jsx +++ b/client/src/components/CardModal/CardModal.jsx @@ -1,4 +1,4 @@ -import React, { useCallback, useRef } from 'react'; +import React, { useCallback, useRef, useState } from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames'; import { useTranslation } from 'react-i18next'; @@ -81,6 +81,7 @@ const CardModal = React.memo( onClose, }) => { const [t] = useTranslation(); + const [isLinkCopied, setIsLinkCopied] = useState(false); const isGalleryOpened = useRef(false); @@ -146,6 +147,14 @@ const CardModal = React.memo( onClose(); }, [onDuplicate, onClose]); + const handleCopyLinkClick = useCallback(() => { + navigator.clipboard.writeText(window.location.href); + setIsLinkCopied(true); + setTimeout(() => { + setIsLinkCopied(false); + }, 5000); + }, []); + const handleGalleryOpen = useCallback(() => { isGalleryOpened.current = true; }, []); @@ -506,6 +515,14 @@ const CardModal = React.memo( {t('action.duplicate')} +