import * as THREE from 'three'; import { Button, Dialog, DialogContent, DialogTitle, IconButton, Typography, } from '@mui/material'; import CloseIcon from '@mui/icons-material/Close'; import {XRConfigProps} from './XRConfig'; import {useEffect, useRef, useState} from 'react'; import './XRDialog.css'; import {getRenderer, init, updatetranslationText} from './XRRendering'; import ARButton from './ARButton'; import {getURLParams} from '../URLParams'; function XRContent(props: XRConfigProps) { const debugParam = getURLParams().debug; const {translationSentences} = props; useEffect(() => { updatetranslationText(translationSentences); }, [translationSentences]); const [renderer, setRenderer] = useState(null); const canvasRef = useRef(null); useEffect(() => { if (canvasRef.current != null || debugParam === false) { const existingRenderer = getRenderer(); if (existingRenderer) { setRenderer(existingRenderer); } else { const newRenderer = init( 400, 300, debugParam ? canvasRef.current : null, ); setRenderer(newRenderer); } } }, [canvasRef.current]); return ( Welcome to the Seamless team streaming demo experience! In this demo you will experience AI powered text and audio translation in real time.
); } export default function XRDialog(props: XRConfigProps) { const [isDialogOpen, setIsDialogOpen] = useState(false); return ( <> {isDialogOpen && ( setIsDialogOpen(false)} open={true}> FAIR Seamless Streaming Demo setIsDialogOpen(false)} sx={{ position: 'absolute', right: 8, top: 8, color: (theme) => theme.palette.grey[500], }}> )} ); }