import { useEffect, useState } from 'react'; import { Navigate, useNavigate } from 'react-router-dom'; import { NavDashboard } from './Navigation'; import { AddChannel, Config } from '../../wailsjs/go/main/App'; import { Eye, EyeSlash } from '../assets/icons'; import './SignIn.css'; import ChannelList from '../components/ChannelList'; import { SmallModal } from '../components/Modal'; function SignIn() { const [error, setError] = useState(''); const navigate = useNavigate(); const [config, setConfig] = useState({ channels: {} }); const [addChannelError, setAddChannelError] = useState(''); const [streamKey, setStreamKey] = useState(''); const updateStreamKey = (event) => setStreamKey(event.target.value); const [showStreamKey, setShowStreamKey] = useState(false); const updateShowStreamKey = () => setShowStreamKey(!showStreamKey); useEffect(() => { Config() .then((response) => { setConfig(response); }) .catch((error) => { // TODO: display error to user setError('Error loading config: ' + error); console.log('error getting config', error); }); }, []); const saveStreamKey = () => { AddChannel(streamKey) .then((response) => { console.log(response); setConfig(response); setStreamKey(''); }) .catch((error) => { console.log('error adding channel', error); setAddChannelError(error); }); }; const openStreamDashboard = (cid) => { navigate(NavDashboard, { state: { cid: cid } }); }; return ( <> {error !== '' && ( setError('')} show={error !== ''} style={{ minWidth: '300px', maxWidth: '300px', maxHeight: '200px' }} title={'Error'} message={error} submitButton={'OK'} onSubmit={() => setError('')} /> )}
Rum Goggles Rumble Stream Dashboard
Copy your API key from your Rumble account
{addChannelError ? addChannelError : '\u00A0'}
); } export default SignIn;