import {useReducer} from 'react';
import './App.css';
import logo from './chad-logo-256.png';
import {storeToken, loadToken} from './Api';
import Login from './Login';
import UserInfo from './UserInfo';
import Player from './Player';
function storeSettings(settings) {
localStorage.setItem(JSON.stringify(settings));
return settings;
}
function loadSettings() {
const settings = localStorage.getItem('settings');
return (settings && JSON.parse(settings)) || {login:{}, theme:'light', layout:'two-col'};
}
function settingsReducer(state, action) {
switch(action.type) {
case 'LOGIN_SUCCESS':
storeToken(action.payload);
return {...state, login: {loading: false, error: null}};
case 'LOGIN_INIT': return {...state, login: {loading: true, error: null}};
case 'LOGIN_FAIL': return {...state, login: {loading: false, error: action.payload}};
case 'LAYOUT_SET': return storeSettings({...state, layout: action.payload});
case 'THEME_SET': return storeSettings({...state, theme: action.payload});
default: throw new Error(`Bad action ${action}`);
}
}
function App() {
const [settings, dispatcher] = useReducer(settingsReducer, loadSettings());
if(!loadToken()) {
return