import { useEffect } from "react"; import { Outlet, useNavigate } from "react-router-dom"; import { client } from "../client"; import { useStore } from "../store"; import { Button } from "../styled/Button"; import { timeout } from "../utils"; export function Root() { const navigate = useNavigate(); const user = useStore(state => state.user); const setUser = useStore(state => state.setUser); const init = async () => { if (user !== null) return; const { data, error } = await client.me.get(); await timeout(1000); if (error !== null) { navigate("/login"); return; } setUser(data); }; useEffect(() => { init(); }, []); const onLogoutClick = async () => { const { error } = await client.logout.post(); if (error !== null) { console.error("Response was not ok"); } setUser(null); navigate("/login"); }; if (user === null) { return (
Ładowanie…
); } return (
Użytkownik: {user.username} ({user.userId})
); }