From d1a9a3c7f58413c0148503c15661499cd59799a8 Mon Sep 17 00:00:00 2001 From: balachandarg-tw <115633327+balachandarg-tw@users.noreply.github.com> Date: Mon, 3 Jun 2024 15:55:54 +0530 Subject: [PATCH] Injimob 1204 share qr code (#1472) * [INJIMOB-1204]: Renaming sharing utils file and removing state variable in QRCodeOverlay Signed-off-by: BalachandarG * [INJIMOB-1204]: Removing state variable for base64 string. Signed-off-by: BalachandarG * [INJIMOB-1204] : Error logging and renaming to imageUtils Signed-off-by: BalachandarG * [INJIMOB-1204]: Renaming the function name Signed-off-by: BalachandarG --------- Signed-off-by: BalachandarG --- components/QrCodeOverlay.tsx | 34 +++++++------------ .../{sharing-image-utils.ts => imageUtils.ts} | 1 + 2 files changed, 14 insertions(+), 21 deletions(-) rename shared/sharing/{sharing-image-utils.ts => imageUtils.ts} (84%) diff --git a/components/QrCodeOverlay.tsx b/components/QrCodeOverlay.tsx index 7372e9dc..118ace93 100644 --- a/components/QrCodeOverlay.tsx +++ b/components/QrCodeOverlay.tsx @@ -12,7 +12,7 @@ import {VerifiableCredential} from '../machines/VerifiableCredential/VCMetaMachi import RNSecureKeyStore, {ACCESSIBLE} from 'react-native-secure-key-store'; import {DEFAULT_ECL} from '../shared/constants'; import {VCMetadata} from '../shared/VCMetadata'; -import {shareImageToAllSupportedApps} from '../shared/sharing/sharing-image-utils'; +import {shareImageToAllSupportedApps} from '../shared/sharing/imageUtils'; import {ShareOptions} from 'react-native-share'; export const QrCodeOverlay: React.FC = props => { @@ -20,6 +20,7 @@ export const QrCodeOverlay: React.FC = props => { const {t} = useTranslation('VcDetails'); const [qrString, setQrString] = useState(''); const [qrError, setQrError] = useState(false); + const base64ImageType = 'data:image/png;base64,'; async function getQRData(): Promise { let qrData: string; @@ -37,31 +38,22 @@ export const QrCodeOverlay: React.FC = props => { return qrData; } - const [base64String, setBase64String] = useState(''); - let qrRef = useRef(null); - function updateBase64() { + function handleShareQRCodePress() { qrRef.current.toDataURL(dataURL => { - setBase64String(`data:image/png;base64,${dataURL}`); + shareImage(`${base64ImageType}${dataURL}`); }); - shareQRCode(); } - useEffect(() => { - shareQRCode(); - }, [base64String]); - - async function shareQRCode() { - if (base64String != '') { - const options: ShareOptions = { - message: t('scanToViewCredential'), - url: base64String, - }; - let shareStatus = await shareImageToAllSupportedApps(options); - if (!shareStatus) { - console.log('Error while sharing QR code::'); - } + async function shareImage(base64String: string) { + const options: ShareOptions = { + message: t('scanToViewCredential'), + url: base64String, + }; + const shareStatus = await shareImageToAllSupportedApps(options); + if (!shareStatus) { + console.error('Error while sharing QR code::'); } } @@ -148,7 +140,7 @@ export const QrCodeOverlay: React.FC = props => { color="white" /> } - onPress={updateBase64} + onPress={handleShareQRCodePress} /> diff --git a/shared/sharing/sharing-image-utils.ts b/shared/sharing/imageUtils.ts similarity index 84% rename from shared/sharing/sharing-image-utils.ts rename to shared/sharing/imageUtils.ts index b79d75c7..ce4e4edd 100644 --- a/shared/sharing/sharing-image-utils.ts +++ b/shared/sharing/imageUtils.ts @@ -7,6 +7,7 @@ export async function shareImageToAllSupportedApps( const shareStatusResult = await RNShare.open(sharingOptions); return shareStatusResult['success']; } catch (err) { + console.error('Exception while sharing image::', err); return false; } }