From f2e143ab1f82d7f6d209f1c3f289b926e2a4e7fb Mon Sep 17 00:00:00 2001 From: rdbsolutions Date: Tue, 9 Apr 2024 15:02:47 +0100 Subject: [PATCH] added copy link and updated styling --- components/footer.js | 51 ++++++++++++++++---------- styles/sass/welshgov/_application.scss | 25 +++++++++++++ 2 files changed, 57 insertions(+), 19 deletions(-) diff --git a/components/footer.js b/components/footer.js index df8f2e88..7bd9a340 100644 --- a/components/footer.js +++ b/components/footer.js @@ -23,15 +23,30 @@ export default function Footer(props) { )); const [showShareState, setShowShareState] = useState(false); + const [copySuccess, setCopySuccess] = useState(""); let shareState = () => { showShareState == true - ? setShowShareState(false) + ? (setShowShareState(false), setCopySuccess("")) : setShowShareState(true); }; - //console.log(router.asPath); - const shareBodyStr = t("common:service-home-url") + router.asPath; + const copyToClipBoard = async (copyMe) => { + try { + await navigator.clipboard.writeText(copyMe); + setCopySuccess(" - done!"); + } catch (err) { + setCopySuccess("Failed to copy!"); + } + }; + + const shareBodyStr = + t("common:service-home-url") + + (router.route == "/case" || + router.route == "/dnsdetails" || + router.route == "/myportal/case" + ? "/case/" + encodeURIComponent(props.ticketnumber) + : router.asPath); const shareSubjectStr = t("common:social-shared-from") + " " + @@ -110,7 +125,7 @@ export default function Footer(props) { shareBodyStr + "&subject=" + shareSubjectStr - } //https%3A//gov.wales/&subject=Shared%20from%20gov.wales" + } className="email" > @@ -119,6 +134,19 @@ export default function Footer(props) { Email +
  • + { + copyToClipBoard(shareBodyStr); + }} + className="link" + > + + Share this page via{" "} + + Copy Link {copySuccess} + +
  • - {/*
  • - - {t( - "common:footer-alternative-languages-link-label" - )} - -
  • */}