From df7c249c95bd5583f7cee7cfaabe29b8508babcd Mon Sep 17 00:00:00 2001 From: Sebastian Date: Mon, 11 Apr 2022 11:32:20 -0300 Subject: fix ref for copy and paste --- .../build-fast-with-linaria.mjs | 2 +- .../src/components/BankDetailsByPaytoType.tsx | 22 +++++++++++++++------- 2 files changed, 16 insertions(+), 8 deletions(-) (limited to 'packages/taler-wallet-webextension') diff --git a/packages/taler-wallet-webextension/build-fast-with-linaria.mjs b/packages/taler-wallet-webextension/build-fast-with-linaria.mjs index 77106a4f6..f6de67885 100755 --- a/packages/taler-wallet-webextension/build-fast-with-linaria.mjs +++ b/packages/taler-wallet-webextension/build-fast-with-linaria.mjs @@ -60,7 +60,7 @@ export const buildConfig = { ], format: 'iife', platform: 'browser', - sourcemap: 'external', + sourcemap: true, jsxFactory: 'h', jsxFragment: 'Fragment', // define: { diff --git a/packages/taler-wallet-webextension/src/components/BankDetailsByPaytoType.tsx b/packages/taler-wallet-webextension/src/components/BankDetailsByPaytoType.tsx index aff2badac..182e82a3d 100644 --- a/packages/taler-wallet-webextension/src/components/BankDetailsByPaytoType.tsx +++ b/packages/taler-wallet-webextension/src/components/BankDetailsByPaytoType.tsx @@ -16,7 +16,7 @@ import { PaytoUri } from "@gnu-taler/taler-util"; import { Fragment, h, VNode } from "preact"; -import { useEffect, useState } from "preact/hooks"; +import { useEffect, useRef, useState } from "preact/hooks"; import { useTranslationContext } from "../context/translation.js"; import { CopiedIcon, CopyIcon } from "../svg/index.js"; import { ButtonBox, TooltipRight } from "./styled/index.js"; @@ -25,7 +25,7 @@ export interface BankDetailsProps { payto: PaytoUri | undefined; exchangeBaseUrl: string; subject: string; - amount: string; + amount: string | VNode; } export function BankDetailsByPaytoType({ @@ -84,12 +84,17 @@ function Row({ literal, }: { name: VNode; - value: string; + value: string | VNode; literal?: boolean; }): VNode { const [copied, setCopied] = useState(false); + const preRef = useRef(null); + const tdRef = useRef(null); function copyText(): void { - navigator.clipboard.writeText(value); + const content = literal + ? preRef.current?.textContent + : tdRef.current?.textContent; + navigator.clipboard.writeText(content || ""); setCopied(true); } useEffect(() => { @@ -98,7 +103,7 @@ function Row({ setCopied(false); }, 1000); } - }, [copied]); + }, [copied, preRef]); return ( @@ -119,12 +124,15 @@ function Row({ {literal ? ( -
+          
             {value}
           
) : ( - {value} + {value} )} ); -- cgit v1.2.3