import React, { useCallback, useState } from 'react'; import { Box, Button, color, config, Icon, Icons, Text } from 'folds'; import { SequenceCard } from '../../../components/sequence-card'; import { SequenceCardStyle } from '../../room-settings/styles.css'; import { SettingTile } from '../../../components/setting-tile'; import { CutoutCard } from '../../../components/cutout-card'; import { useMatrixClient } from '../../../hooks/useMatrixClient'; import { useRoom } from '../../../hooks/useRoom'; import { getMatrixToRoom } from '../../../plugins/matrix-to'; export function RoomShareInvite() { const mx = useMatrixClient(); const room = useRoom(); const [copied, setCopied] = useState(false); const [qrError, setQrError] = useState(false); const domain = mx.getDomain() ?? undefined; const inviteUrl = getMatrixToRoom(room.roomId, domain ? [domain] : undefined); const qrSrc = `https://api.qrserver.com/v1/create-qr-code/?size=160x160&data=${encodeURIComponent(inviteUrl)}`; const handleCopy = useCallback(() => { navigator.clipboard.writeText(inviteUrl).then(() => { setCopied(true); setTimeout(() => setCopied(false), 2000); }); }, [inviteUrl]); return ( {inviteUrl} {qrError ? ( QR code unavailable ) : ( QR code for room invite link setQrError(true)} style={{ display: 'block', borderRadius: config.radii.R300 }} /> )} ); }