import { useEffect, useState } from "react"; import { useCallback, useContext, useRef } from "react" import { ClientIdContext, HomeServerContext, TransparencyContext } from "./App" export default function NewAccount() { const [data, setData] = useState(''); const [scanning, setScanning] = useState(false); const inputRef = useRef(null); const { setHomeServer } = useContext(HomeServerContext); const { setClientId } = useContext(ClientIdContext); const setTransparent = useContext(TransparencyContext); useEffect(() => { setTransparent(scanning); }, [scanning, setTransparent]); const go = useCallback(() => { if(inputRef.current === null) return; setHomeServer(inputRef.current.value) }, [HomeServerContext]); const scanQr = useCallback(() => { //@ts-ignore window.QRScanner.prepare((err: any, status: any) => { if(!err && status.authorized) { setScanning(true); //@ts-ignore window.QRScanner.hide(); //@ts-ignore window.QRScanner.scan((err, text) => { if (err) return alert(err); // alert(text); setData(text); setScanning(false); //@ts-ignore window.QRScanner.show(); }); } }); }, [data]); useEffect(() => { // this avoids a timing issue whereby the component // gets removed before it has a chance to clean up // its setting of transparency... if(scanning) return; if(!data) return; const [action, homeServer, clientId] = data.split('|'); switch(action) { case 'loginv1': { setHomeServer(homeServer); setClientId(clientId); break; } } }, [data, scanning]) return
Create New Account!!
Enter Home Server URL



or scan a QR!


      {data}
      {scanning ? 'SCANNING' : 'NOT SCANNING'}
    
}