Skip to content

Commit

Permalink
fix: 닉네임 변경 팝업창
Browse files Browse the repository at this point in the history
  • Loading branch information
saa00123 committed Sep 3, 2023
1 parent fdb9d58 commit d2249ee
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 5 deletions.
36 changes: 33 additions & 3 deletions front/src/components/frames/token/UserContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import React, {
type User = {
token: string;
nickname: string;
isNewUser: boolean;
};

type UserContextType = [
Expand All @@ -30,18 +31,47 @@ export const UserProvider: React.FC<{ children: React.ReactNode }> = ({
children,
}) => {
const [user, setUser] = useState<User | null>(null);
const [showNicknamePopup, setShowNicknamePopup] = useState(false);

useEffect(() => {
const isLoginSuccessful = true;

if (isLoginSuccessful) {
const token = "some_token";
const nickname = "최정훈";
setUser({ token, nickname });
const storedNickname = localStorage.getItem("nickname");

if (storedNickname) {
setUser({ token, nickname: storedNickname, isNewUser: false });
} else {
setShowNicknamePopup(true);
setUser({ token, nickname: "Guest", isNewUser: true });
}
}
}, []);

const setNicknameAndHidePopup = (nickname: string) => {
if (user) {
setUser({ ...user, nickname });
}
localStorage.setItem("nickname", nickname);
setShowNicknamePopup(false);
};

const value = useMemo(() => [user, setUser] as UserContextType, [user]);

return <UserContext.Provider value={value}>{children}</UserContext.Provider>;
return (
<UserContext.Provider value={value}>
{children}
{showNicknamePopup && (
<div>
<h2>Please set your nickname</h2>
<input
type='text'
placeholder='Enter your nickname'
onBlur={(e) => setNicknameAndHidePopup(e.target.value)}
/>
</div>
)}
</UserContext.Provider>
);
};
4 changes: 2 additions & 2 deletions front/src/pages/main/TeamList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ function TeamList() {

useEffect(() => {
if (user) {
console.log("Changed nickname: ", user.nickname);
console.log("Changed nickname:", user.nickname);
}
}, [user]);
}, [user?.nickname]);

return (
<div className='flex flex-col justify-center items-center m-auto w-[100vw] h-[100vh]'>
Expand Down

0 comments on commit d2249ee

Please sign in to comment.