diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 3f8ff96..7e2d6ca 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,5 +1,5 @@ import "./App.css"; -import { useState } from "react"; +import { useEffect, useState } from "react"; import { Link, Navigate, @@ -27,14 +27,32 @@ type ApplicationContext = { }; function ApplicationLayout() { + const { user, logout } = useAuth(); const [menuOpen, setMenuOpen] = useState(false); const [searchOpen, setSearchOpen] = useState(false); const [format, setFormat] = useState( - () => localStorage.getItem("pokemon-draft-planner-format") || "gen9", + () => + localStorage.getItem(`pokemon-draft-planner-format-${user?.id}`) || + "gen9", ); - const [team, setTeam] = useState([]); - const { user, logout } = useAuth(); + const [team, setTeam] = useState(() => { + const savedTeam = localStorage.getItem( + `pokemon-draft-planner-team-${user?.id}`, + ); + + return savedTeam ? JSON.parse(savedTeam) : []; + }); + + useEffect(() => { + if (!user) return; + + localStorage.setItem( + `pokemon-draft-planner-team-${user.id}`, + JSON.stringify(team), + ); + }, [team, user]); + const navigate = useNavigate(); function closeMenu() { @@ -50,7 +68,7 @@ function ApplicationLayout() { function handleFormatChange(newFormat: string) { setFormat(newFormat); - localStorage.setItem("pokemon-draft-planner-format", newFormat); + localStorage.setItem(`pokemon-draft-planner-format-${user?.id}`, newFormat); } function addPokemon(pokemon: TeamPokemon) {