diff --git a/src/app/components/invite-user-prompt/InviteUserPrompt.tsx b/src/app/components/invite-user-prompt/InviteUserPrompt.tsx index 3a6d69bdd..7153a7205 100644 --- a/src/app/components/invite-user-prompt/InviteUserPrompt.tsx +++ b/src/app/components/invite-user-prompt/InviteUserPrompt.tsx @@ -68,11 +68,16 @@ export function InviteUserPrompt({ room, requestClose }: InviteUserProps) { const mx = useMatrixClient(); const alive = useAlive(); const [linkCopied, setLinkCopied] = useState(false); + const [showQr, setShowQr] = useState(false); - const handleCopyLink = () => { + const inviteUrl = (() => { const roomIdOrAlias = getCanonicalAliasOrRoomId(mx, room.roomId); const viaServers = isRoomAlias(roomIdOrAlias) ? undefined : getViaServers(room); - copyToClipboard(getMatrixToRoom(roomIdOrAlias, viaServers)); + return getMatrixToRoom(roomIdOrAlias, viaServers); + })(); + + const handleCopyLink = () => { + copyToClipboard(inviteUrl); setLinkCopied(true); setTimeout(() => setLinkCopied(false), 2000); }; @@ -202,11 +207,47 @@ export function InviteUserPrompt({ room, requestClose }: InviteUserProps) { > {linkCopied ? 'Copied!' : 'Copy Link'} + setShowQr((v) => !v)} + > + + + {showQr && ( + + QR code for room invite link + + {inviteUrl} + + + )}