login check effect

This commit is contained in:
ntr committed 2022-09-18 21:04:01 +10:00
1 parent 3bd8691ebf
commit f6f03730e3
5 files changed
+21 -3

No files matched your search

+3
View File
@@ -1,5 +1,8 @@
# TODO # TODO
want added -> wants added
spamming discogs and generating offers on every want add
push offers push offers
cover off admin routes and commands cover off admin routes and commands
+1 -1
View File
@@ -28,7 +28,7 @@ async function start() {
events, events,
} = createServices(log); } = createServices(log);
events.emit(Events.StartupSync); // events.emit(Events.StartupSync);
// events.emit(Events.ListingsUpdated); // events.emit(Events.ListingsUpdated);
api.listen(); api.listen();
+6
View File
@@ -27,6 +27,10 @@ export default function createRpc(log: Log, pg: Pg, user: User, ws, discogs, off
return [RpcMessageType.Offers, await pg.userOffers(user)]; return [RpcMessageType.Offers, await pg.userOffers(user)];
} }
async function userWants(): Promise<WantsMessage> {
return [RpcMessageType.Wants, await pg.userWants(user)];
}
async function offerStatusSet(params: OfferStatusSetParams): Promise<OffersMessage> { async function offerStatusSet(params: OfferStatusSetParams): Promise<OffersMessage> {
const { id, status } = params; const { id, status } = params;
assert(id, 'no id supplied'); assert(id, 'no id supplied');
@@ -82,6 +86,8 @@ export default function createRpc(log: Log, pg: Pg, user: User, ws, discogs, off
case RpcMessageType.Offers: case RpcMessageType.Offers:
return userOffers(); return userOffers();
case RpcMessageType.Wants:
return userWants();
case RpcMessageType.OfferStatusSet: case RpcMessageType.OfferStatusSet:
return offerStatusSet(params); return offerStatusSet(params);
+6 -2
View File
@@ -1,5 +1,6 @@
import { h } from 'preact'; import { h } from 'preact';
import { route } from 'preact-router'; import { route } from 'preact-router';
import { useEffect } from 'preact/hooks';
import { useSelector, useDispatch } from 'react-redux' import { useSelector, useDispatch } from 'react-redux'
import http from './../http'; import http from './../http';
@@ -13,11 +14,14 @@ const Header = () => {
const dispatch = useDispatch() const dispatch = useDispatch()
const user = useSelector((state: State) => state.user); const user = useSelector((state: State) => state.user);
useEffect(() => {
if (!user) route('/login');
}, [user])
async function logoutClick(e) { async function logoutClick(e) {
e.preventDefault(); e.preventDefault();
await http.postLogout(); await http.postLogout();
route('/login'); window.location.reload();
dispatch(userState.actions.set(null));
} }
const nav = () => ( const nav = () => (
+5
View File
@@ -38,6 +38,10 @@ export default function createSocket(dispatch) {
send(['Offers', {}]); send(['Offers', {}]);
} }
function sendWants() {
send(['Wants', {}]);
}
function sendAcpOffers() { function sendAcpOffers() {
send(['AcpOffers', {}]); send(['AcpOffers', {}]);
} }
@@ -109,6 +113,7 @@ export default function createSocket(dispatch) {
sendPing(); sendPing();
sendAcpOffers(); sendAcpOffers();
sendOffers(); sendOffers();
sendWants();
} }
function onError(event) { function onError(event) {