Skip to content

Commit

Permalink
remove: cotexts 코드 삭제
Browse files Browse the repository at this point in the history
  • Loading branch information
hahahaday12 committed Oct 9, 2023
1 parent 3388b1c commit 6d56ae7
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 66 deletions.
61 changes: 31 additions & 30 deletions src/components/common/Header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@ import { styled } from 'styled-components'
import { NavLink, useNavigate } from 'react-router-dom'
import Title from 'assets/service-title.png'
import { links, headerText } from 'constants/index'
import { useCallback, useEffect, useState, useContext } from 'react'
import { useCallback, useEffect, useState } from 'react'
import { getUserInfo } from 'api/index'
import { AxiosResponse } from 'axios'
import { ProfileContext } from 'contexts/index'
import DefaultImage from 'assets/dafault.png'
import { useRecoilState } from 'recoil'
import { remainState, imageState } from '@/store/atoms'

export interface InfoResponse extends AxiosResponse {
response: {
Expand All @@ -21,7 +22,8 @@ export interface InfoResponse extends AxiosResponse {

export const Header = () => {
const [username, setUsername] = useState<string>('')
const { profileImage, setProfileImage } = useContext(ProfileContext)
const [profileImage, setProfileImage] = useRecoilState<string>(imageState)
const [remain, setRemain] = useRecoilState(remainState)

const navigate = useNavigate()

Expand All @@ -44,49 +46,48 @@ export const Header = () => {
navigate('/')
}

//진입시 유저정보 렌더링
useEffect(() => {
const fetchData = async () => {
const res: InfoResponse = await getUserInfo()
setUsername(res?.response?.username)
if (res?.response?.profileImage === '/image/default.png') {
setProfileImage(DefaultImage)
return
;async () => {
try {
const res: InfoResponse = await getUserInfo()
setUsername(res?.response?.username)

if (res?.response?.profileImage === '/image/default.png') {
setProfileImage(DefaultImage)
} else {
setProfileImage(res?.response?.profileImage)
}

setRemain(res?.response?.remainVacation)
} catch (error) {
// 오류 처리
console.error('데이터 가져오기 실패:', error)
}
setProfileImage(res?.response?.profileImage)
console.log(res)
}
fetchData()
}, [username])

return (
<>
<Outermost>
<WidthSettler>
{/* 컴포넌트 분리?? */}
<LeftBox>
<img
src={Title}
onClick={() => navigate('/home')}
/>
{searchLinks}
</LeftBox>
{/* 컴포넌트 분리? */}
<ProfileContext.Provider value={{ profileImage, setProfileImage }}>
<RightBox imageurl={profileImage || ''}>
{/* USERINFO */}
<div
className="image"
onClick={() => {
navigate('/profile')
}}></div>
<div className="info">
<div>{username}</div>
{/* 뒤로가기 예외처리 */}
<button onClick={signOut}>{headerText.signout}</button>
</div>
</RightBox>
</ProfileContext.Provider>
<RightBox imageurl={profileImage || ''}>
<div
className="image"
onClick={() => {
navigate('/profile')
}}></div>
<div className="info">
<div>{username}</div>
<button onClick={signOut}>{headerText.signout}</button>
</div>
</RightBox>
</WidthSettler>
</Outermost>
</>
Expand Down
5 changes: 0 additions & 5 deletions src/components/common/Layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ import styled from 'styled-components'
import { GlobalStyles } from 'styles/index'
import { Header } from 'components/index'
import bg from 'assets/bgblue.png'
import { ProfileContext } from 'contexts/index'
import { useState } from 'react'

export const Layout = () => {
return (
Expand All @@ -19,14 +17,11 @@ export const Layout = () => {
}

export const HeaderLayout = () => {
const [profileImage, setProfileImage] = useState<string>('')

return (
<>
<GlobalStyles />
<ProfileContext.Provider value={{ profileImage, setProfileImage }}>
<Header />
</ProfileContext.Provider>
<Wrapper>
<Container>
<Outlet />
Expand Down
30 changes: 8 additions & 22 deletions src/components/form/UpdateForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,26 @@ import { useState, useEffect, useContext } from 'react'
import { InfoResponse } from 'components/index'
import { getUserInfo, updateUserInfo } from 'api/index'
import { useNavigate } from 'react-router-dom'
import { ProfileContext } from 'contexts/index'
import DefaultImage from 'assets/dafault.png'
import { AxiosError } from 'axios'
import { useRecoilValue } from 'recoil'
import { imageState } from '@/store/atoms'
import { useUserInfoFetch } from '@/hooks/useUserInfoFetch'

export const UpdateForm = () => {
const navigate = useNavigate()
const [email, setEmail] = useState<string>('')
const [username, setUsername] = useState<string>('')
const [password, setPassword] = useState<string>('')
const [verification, setVerification] = useState<string>('')
const { profileImage, setProfileImage } = useContext(ProfileContext)
const profileImage = useRecoilValue(imageState)

const nameStates = [email, username]
const passwordStates = [password, verification]
const passwordFunctions = [setPassword, setVerification]

//진입시 유저정보 렌더링 hook함수 생성
useUserInfoFetch(setUsername, profileImage, '', setEmail)

const handleCancel = () => {
navigate('/home')
}
Expand Down Expand Up @@ -51,30 +55,12 @@ export const UpdateForm = () => {
}
}

//진입시 유저정보 렌더링
useEffect(() => {
const fetchData = async () => {
const res: InfoResponse = await getUserInfo()
setUsername(res?.response?.username)
setEmail(res?.response?.email)
if (res?.response?.profileImage === '/image/default.png') {
setProfileImage(DefaultImage)
return
}
setProfileImage(res?.response?.profileImage)
}
fetchData()
}, [])

return (
<>
{/* SEPERATION => Update.tsx*/}
<UpdateTitle>{UpdateTexts.update}</UpdateTitle>
<ProfileContainer>
<ProfileContext.Provider value={{ profileImage, setProfileImage }}>
<UpdateImageForm />
</ProfileContext.Provider>

<UpdateImageForm />
<UpdateInputForm
texts={nameTexts}
value={nameStates}
Expand Down
7 changes: 4 additions & 3 deletions src/components/form/UpdateImageForm.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import { styled } from 'styled-components'
import { UpdateTexts } from 'constants/index'
import { useRef, useContext } from 'react'
import { useRef } from 'react'
import { BaseRow, BaseCol } from 'components/index'
import { ProfileContext } from 'contexts/index'
import DefaultImage from 'assets/dafault.png'
import { useRecoilState } from 'recoil'
import { imageState } from '@/store/atoms'

export const UpdateImageForm = () => {
const fileInputRef = useRef<HTMLInputElement | null>(null)
const { profileImage, setProfileImage } = useContext(ProfileContext)
const [profileImage, setProfileImage] = useRecoilState(imageState)

const handleLoadImage = e => {
if (!e.target.files?.length) {
Expand Down
6 changes: 0 additions & 6 deletions src/pages/Update.tsx
Original file line number Diff line number Diff line change
@@ -1,15 +1,9 @@
import { UpdateForm } from 'components/form/index'
import { ProfileContext } from 'contexts/index'
import { useState } from 'react'

export const UpdatePage = () => {
const [profileImage, setProfileImage] = useState<string>('')

return (
<>
<ProfileContext.Provider value={{ profileImage, setProfileImage }}>
<UpdateForm />
</ProfileContext.Provider>
</>
)
}

0 comments on commit 6d56ae7

Please sign in to comment.