From f960d2fbc6f9db3b4ff2acc46aa694033b6bbfa8 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Wed, 14 Jan 2026 20:28:48 -0600 Subject: [PATCH] fix: make logo show in qr code by absolutely positioning svg on top of it (#9373) (#9700) * fix: make logo show in qr code by absolutely positioning svg on top of it * fix: remove log and add explanation comment * fix: only apply qrcode fix to web Co-authored-by: Elijah Seed-Arita --- src/components/StarterPack/QrCode.tsx | 101 +++++++++++++++++--------- 1 file changed, 68 insertions(+), 33 deletions(-) diff --git a/src/components/StarterPack/QrCode.tsx b/src/components/StarterPack/QrCode.tsx index 64c5cf50f7..ea6d1089e5 100644 --- a/src/components/StarterPack/QrCode.tsx +++ b/src/components/StarterPack/QrCode.tsx @@ -1,4 +1,4 @@ -import {lazy} from 'react' +import {lazy, useState} from 'react' import {View} from 'react-native' // @ts-expect-error missing types import QRCode from 'react-native-qrcode-styled' @@ -102,39 +102,74 @@ export function QrCode({ export function QrCodeInner({link}: {link: string}) { const t = useTheme() + const [logoArea, setLogoArea] = useState<{ + x: number + y: number + width: number + height: number + } | null>(null) + + const onLogoAreaChange = (area: { + x: number + y: number + width: number + height: number + }) => { + setLogoArea(area) + } return ( - + + {/* An SVG version of the logo is placed on top of normal `QRCode` `logo` prop, since the PNG fails to load before the export completes on web. */} + {isWeb && logoArea && ( + + + + )} + + ) }