Merge branch 'dev' of ssh://meowgit.nekoea.red:22222/nihonium/nyanimedb into dev
All checks were successful
Build (backend build only) / build (push) Successful in 3m32s
All checks were successful
Build (backend build only) / build (push) Successful in 3m32s
This commit is contained in:
commit
53e270015c
7 changed files with 132 additions and 22 deletions
|
|
@ -1,4 +1,5 @@
|
|||
import React from "react";
|
||||
import { useState, useEffect } from "react";
|
||||
import { BrowserRouter as Router, Routes, Route } from "react-router-dom";
|
||||
import UserPage from "./pages/UserPage/UserPage";
|
||||
import TitlesPage from "./pages/TitlesPage/TitlesPage";
|
||||
|
|
@ -11,8 +12,22 @@ import { Header } from "./components/Header/Header";
|
|||
// OpenAPI.WITH_CREDENTIALS = true
|
||||
|
||||
const App: React.FC = () => {
|
||||
// const username = localStorage.getItem("username") || undefined;
|
||||
const userId = localStorage.getItem("user_id");
|
||||
const [userId, setUserId] = useState<string | null>(localStorage.getItem("user_id"));
|
||||
|
||||
// 2. Listen for the same event the Header uses
|
||||
useEffect(() => {
|
||||
const handleAuthChange = () => {
|
||||
setUserId(localStorage.getItem("user_id"));
|
||||
};
|
||||
|
||||
window.addEventListener("storage", handleAuthChange);
|
||||
window.addEventListener("local-storage-update", handleAuthChange);
|
||||
|
||||
return () => {
|
||||
window.removeEventListener("storage", handleAuthChange);
|
||||
window.removeEventListener("local-storage-update", handleAuthChange);
|
||||
};
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<Router>
|
||||
|
|
|
|||
|
|
@ -14,8 +14,16 @@ export const Header: React.FC = () => {
|
|||
// Listen for localStorage changes to update username dynamically
|
||||
useEffect(() => {
|
||||
const handleStorage = () => setUsername(localStorage.getItem("user_name"));
|
||||
// This catches changes from OTHER tabs
|
||||
window.addEventListener("storage", handleStorage);
|
||||
return () => window.removeEventListener("storage", handleStorage);
|
||||
|
||||
// This catches changes in the CURRENT tab if you use dispatchEvent
|
||||
window.addEventListener("local-storage-update", handleStorage);
|
||||
|
||||
return () => {
|
||||
window.removeEventListener("storage", handleStorage);
|
||||
window.removeEventListener("local-storage-update", handleStorage);
|
||||
};
|
||||
}, []);
|
||||
|
||||
const handleLogout = async () => {
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ export const LoginPage: React.FC = () => {
|
|||
if (res.data?.user_id && res.data?.user_name) {
|
||||
localStorage.setItem("user_id", res.data.user_id.toString());
|
||||
localStorage.setItem("user_name", res.data.user_name);
|
||||
window.dispatchEvent(new Event("storage"));
|
||||
navigate("/profile");
|
||||
} else {
|
||||
setError("Login failed");
|
||||
|
|
@ -34,6 +35,7 @@ export const LoginPage: React.FC = () => {
|
|||
if (loginRes.data?.user_id && loginRes.data?.user_name) {
|
||||
localStorage.setItem("user_id", loginRes.data.user_id.toString());
|
||||
localStorage.setItem("user_name", loginRes.data.user_name);
|
||||
window.dispatchEvent(new Event("storage"));
|
||||
navigate("/profile");
|
||||
}
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue