diff --git a/src/RNListener.tsx b/src/RNListener.tsx index 44e75d89..b34ddc48 100644 --- a/src/RNListener.tsx +++ b/src/RNListener.tsx @@ -4,9 +4,11 @@ import { useGETUserProfile } from './auth/api/profile'; import useBookmarkStore from './store/bookmark'; import useWebview from './common/service/hooks/useWebview'; import { useEffect } from 'react'; +import { useNavigate } from 'react-router-dom'; +import { navigatePath } from './constants/navigatePath'; const RNListener = () => { - const { memberId, login } = useAuthStore(); + const { memberId, login, userInfo } = useAuthStore(); const { initializeUrlAndTitle } = useBookmarkStore(); const { postMessage } = useWebview(); @@ -15,6 +17,16 @@ const RNListener = () => { postMessage('login', null); }, []); + const router = useNavigate(); + + useEffect(() => { + if (userInfo) { + if (userInfo.name.slice(0, 3) + '-+@' === userInfo.nickname) { + router(navigatePath.USER); + } + } + }, [userInfo]); + useBridgeCallback(({ message, params }) => { if (message === 'login') { if (params?.memberId && params?.token) { diff --git a/src/auth/api/profile.ts b/src/auth/api/profile.ts index b23d7ffa..88d34c97 100644 --- a/src/auth/api/profile.ts +++ b/src/auth/api/profile.ts @@ -41,7 +41,6 @@ export const useGETUserProfile = (params: GetAPIRequest) => { profileEmoji: data.profileEmoji ?? '🐢', })); if (data.nickname === '') router(navigatePath.USER); - if (data.nickname.includes('oxo')) router(navigatePath.USER); }, onError: (e) => console.log(e), cacheTime: 10 * 60 * 1000, diff --git a/src/pages/UserInfoPage.tsx b/src/pages/UserInfoPage.tsx index 0d7b188f..0ff7c0d0 100644 --- a/src/pages/UserInfoPage.tsx +++ b/src/pages/UserInfoPage.tsx @@ -19,24 +19,6 @@ const UserInfoPage = ({ mode }: UserCreatePageProps) => { const { emoji, isEmojiBSOpen, onChangeEmoji, setEmojiBSOpen, closeEmojiBS } = useChangeEmoji(); - // TODO : λ°±μ—”λ“œ μˆ˜μ • ν›„ μˆ˜μ • - const { mutate } = usePutUserInfoQuery({ mode: 'CREATE', memberId }); - - useEffect(() => { - if (userInfo) { - if (userInfo.nickname === '' && memberId) { - mutate({ - putData: { - name: userInfo.name || '피클리123', - nickname: 'oxo' + generateRandomString(4), - profileEmoji: userInfo.profileEmoji ?? '🐢', - }, - memberId, - }); - } - } - }, [userInfo, memberId]); - // TODO : 이게 μ΅œμ„ μ˜ 방법인지 고민해보기 const [initialValues, setInitialValues] = useState({ name: '', @@ -49,16 +31,15 @@ const UserInfoPage = ({ mode }: UserCreatePageProps) => { useEffect(() => { if (userInfo) { const { name, nickname, profileEmoji } = userInfo; - // TODO : λ°±μ—”λ“œ μˆ˜μ • ν›„ μˆ˜μ • - const changeName = name.includes('피클리123') ? '' : name; - const changeNickName = nickname.includes('oxo') ? '' : nickname; - onChangeName(changeName); - onChangeNickname(changeNickName); + if (nickname === name.slice(0, 3) + '-+@') onChangeNickname(''); + else onChangeNickname(nickname); + + onChangeName(name); onChangeEmoji(profileEmoji); setInitialValues({ - name: changeName, - nickname: changeNickName, + name, + nickname, emoji: profileEmoji, }); } @@ -70,6 +51,12 @@ const UserInfoPage = ({ mode }: UserCreatePageProps) => { nickname: initialNickname, emoji: initialEmoji, } = initialValues; + + if (nickname.length === 0) { + setDisabled(true); + return; + } + if ( name === initialName && nickname === initialNickname && @@ -81,6 +68,8 @@ const UserInfoPage = ({ mode }: UserCreatePageProps) => { setDisabled(false); }, [name, nickname, emoji, initialValues]); + const { mutate } = usePutUserInfoQuery({ mode: 'CREATE', memberId }); + const onSubmitUserInfo: FormEventHandler = (e) => { e.preventDefault(); mutate({ @@ -112,15 +101,3 @@ const UserInfoPage = ({ mode }: UserCreatePageProps) => { }; export default UserInfoPage; - -// TODO : λ°±μ—”λ“œ μˆ˜μ • ν›„ μˆ˜μ • -const generateRandomString = (num: number) => { - const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; - let result = ''; - const charactersLength = characters.length; - for (let i = 0; i < num; i++) { - result += characters.charAt(Math.floor(Math.random() * charactersLength)); - } - - return result; -};