fix fetching login routes stuff

This commit is contained in:
ntr committed 2022-10-04 22:41:49 +11:00
1 parent 77428aa7de
commit 015a2fd66c
6 files changed
+28 -15

No files matched your search

+8 -3
View File
@@ -16,7 +16,6 @@ import List from './routes/list';
import Info from './routes/info';
import store, { userState, wsState, State } from './store'
const Main = () => {
const dispatch = useDispatch()
@@ -28,10 +27,16 @@ const Main = () => {
dispatch(wsState.actions.set(ws));
}, [dispatch])
function routeChange(e) {
const { ws } = store.getState();
if (!ws) return null;
if (e.url === '/acp') return ws.sendAcpOffers();
}
return (
<main id="app">
<Nav />
<Router>
<Router onChange={routeChange}>
<Route path="/" component={Offers} />
<Route path="/login" component={Login} mode="login" />
<Route path="/register" component={Login} mode="register" />
@@ -40,7 +45,7 @@ const Main = () => {
<Route path="/info" component={Info} />
{/* ACP */}
<Route path="/offers/acp" component={Acp} />
<Route path="/acp" component={Acp} />
</Router>
</main>
);
+9 -6
View File
@@ -1,10 +1,10 @@
import { h } from 'preact';
import { route } from 'preact-router';
import { useEffect } from 'preact/hooks';
import { useSelector, useDispatch } from 'react-redux'
import { useSelector } from 'react-redux'
import http from './../http';
import { State, userState } from './../store';
import { State } from './../store';
function showAdmin(user) {
return user && user.email === 'ntr@mnml.gg';
@@ -13,12 +13,15 @@ function showAdmin(user) {
const DEFAULT_ROUTE = '/';
const Nav = () => {
const dispatch = useDispatch()
const user = useSelector((state: State) => state.user);
useEffect(() => {
if (!user) return route('/login');
return route(DEFAULT_ROUTE)
if (!user) {
route('/login');
return;
}
route(DEFAULT_ROUTE)
return;
}, [user])
async function logoutClick(e) {
@@ -44,7 +47,7 @@ const Nav = () => {
const adminNav = () => (
<nav>
<a href='/offers/acp'>Offers ACP</a>
<a href='/acp'>Offers ACP</a>
</nav>
)
+3
View File
@@ -9,6 +9,7 @@ import { State, userState } from './../store';
const Login = ({ mode }) => {
const dispatch = useDispatch()
const user = useSelector((state: State) => state.user);
const ws = useSelector((state: State) => state.ws);
const [email, setEmail] = useState('')
const [password, setPassword] = useState('');
@@ -20,6 +21,8 @@ const Login = ({ mode }) => {
if (error) return setError(error);
route('/');
dispatch(userState.actions.set(user));
// reconnect ws to get logged in methods
ws.connect();
}
async function postRegister() {
+1
View File
@@ -150,6 +150,7 @@ button, [type=button], [type=reset], [type=submit] {
font-family: var(--secondary-font-family);
font-size: var(--small-font-size);
font-weight: bold;
text-transform: uppercase;
&:hover {