From b579a54c7bc940b21158996abcd14ebc013c143c Mon Sep 17 00:00:00 2001 From: Giwon Date: Fri, 8 Nov 2024 11:48:44 +0900 Subject: [PATCH 1/7] =?UTF-8?q?fix:=20=EC=98=AC=EB=B0=94=EB=A5=B4=EC=A7=80?= =?UTF-8?q?=20=EC=95=8A=EC=9D=80=20CamelCase=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/api.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/utils/api.js b/src/utils/api.js index 05fdab9..720672f 100644 --- a/src/utils/api.js +++ b/src/utils/api.js @@ -44,10 +44,10 @@ api.interceptors.response.use( refresh_token: localStorage.getItem('refreshToken'), }); - if (data.accessToken) { + if (data.access_token) { localStorage.setItem('accessToken', data.accessToken); } - if (data.refreshToken) { + if (data.refresh_token) { localStorage.setItem('refreshToken', data.refreshToken); } From 1f9b76c16d34a7ec7a8c9466cb55f80b25f5d847 Mon Sep 17 00:00:00 2001 From: Giwon Date: Fri, 8 Nov 2024 12:44:30 +0900 Subject: [PATCH 2/7] =?UTF-8?q?hotfix:=20=EB=A1=9C=EC=BB=AC=EC=97=90=20Nul?= =?UTF-8?q?l=20=ED=86=A0=ED=81=B0=EC=9D=84=20=EC=A0=80=EC=9E=A5=ED=95=98?= =?UTF-8?q?=EB=8A=94=20=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/api.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/utils/api.js b/src/utils/api.js index 720672f..534f245 100644 --- a/src/utils/api.js +++ b/src/utils/api.js @@ -45,10 +45,10 @@ api.interceptors.response.use( }); if (data.access_token) { - localStorage.setItem('accessToken', data.accessToken); + localStorage.setItem('accessToken', data.access_token); } if (data.refresh_token) { - localStorage.setItem('refreshToken', data.refreshToken); + localStorage.setItem('refreshToken', data.refresh_token); } // 실패했던 요청에 새로운 토큰 적용 From 97f6f6dc1c553588f1a9fe91a99c9e4a9bfff873 Mon Sep 17 00:00:00 2001 From: Giwon Date: Fri, 8 Nov 2024 12:44:53 +0900 Subject: [PATCH 3/7] =?UTF-8?q?chore:=20=EC=98=A4=ED=83=80=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/section/Section6.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/section/Section6.jsx b/src/pages/section/Section6.jsx index a34070f..c784461 100644 --- a/src/pages/section/Section6.jsx +++ b/src/pages/section/Section6.jsx @@ -107,7 +107,7 @@ export default function Section6() { name: '김수진', role: '학술부장', group_number: 23, - major: '심화컴퓨터', + major: '글로벌소프트웨어', student_id_year: 22, description: '정기 세미나, 프로젝트 및 스터디를 관리해요.', image_url: StutyManagerImage, From 47a9e5c3136096c8a53869c123fe7fb10ff7cf0c Mon Sep 17 00:00:00 2001 From: Giwon Date: Fri, 8 Nov 2024 12:45:04 +0900 Subject: [PATCH 4/7] =?UTF-8?q?replace:=20=EA=B8=B0=EB=B3=B8=20=ED=94=84?= =?UTF-8?q?=EB=A1=9C=ED=95=84=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/icons/menu/User.png | Bin 29442 -> 4208 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/assets/icons/menu/User.png b/src/assets/icons/menu/User.png index 0420c74a838c84ecfb4ed8a4e31129d36415eaea..5a47c3bcb1725ed3bc79e319f2d92a776f702d74 100644 GIT binary patch literal 4208 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%0DF5eoXCE6b!rDvx~96cUgC-69ng+x>&>JT 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 WpGzy2uwpOm0Ms69D_1C5h5QeP|H={o From a8cf6e2432c2e07ccd9627091491d45545e34ab0 Mon Sep 17 00:00:00 2001 From: Giwon Date: Fri, 8 Nov 2024 12:45:29 +0900 Subject: [PATCH 5/7] =?UTF-8?q?style:=20=EB=B3=84=EB=8F=84=EC=9D=98=20?= =?UTF-8?q?=EC=BB=A8=ED=85=8C=EC=9D=B4=EB=84=88=20=EC=BB=B4=ED=8F=AC?= =?UTF-8?q?=EB=84=8C=ED=8A=B8=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Container.jsx | 28 +++++++++++++++ src/components/ContainerControlBox.jsx | 28 +++++++++++++++ src/components/ContainerHeader.jsx | 49 ++++++++++++++++++++++++++ 3 files changed, 105 insertions(+) create mode 100644 src/components/Container.jsx create mode 100644 src/components/ContainerControlBox.jsx create mode 100644 src/components/ContainerHeader.jsx diff --git a/src/components/Container.jsx b/src/components/Container.jsx new file mode 100644 index 0000000..011a490 --- /dev/null +++ b/src/components/Container.jsx @@ -0,0 +1,28 @@ +import styled from 'styled-components'; + +export const Container = styled.div.attrs({ + className: 'container', +})` + // 그 외 커스텀 css 지원 + ${({ css }) => css} + + width: ${({ $width }) => $width || 'fit-content'}; + max-width: ${({ $maxWidth }) => $maxWidth || '1000px'}; + height: ${({ $height }) => $height || 'fit-content'}; + max-height: ${({ $maxHeight }) => $maxHeight || '100%'}; + + margin: ${({ $margin }) => $margin || '0'}; + padding: ${({ $padding }) => $padding || '50px'}; + box-sizing: border-box; + + display: ${({ $display }) => $display || 'flex'}; + justify-content: ${({ $justifyContent }) => $justifyContent || 'center'}; + align-items: ${({ $alignItems }) => $alignItems || 'flex-start'}; + flex-direction: ${({ $flexDirection }) => $flexDirection || 'column'}; + gap: ${({ $gap }) => $gap || '60px'}; + + border-radius: ${({ $borderRadius }) => $borderRadius || '30px'}; + + background-color: var(--container-primary-background); + border: 1px solid var(--container-border); +`; diff --git a/src/components/ContainerControlBox.jsx b/src/components/ContainerControlBox.jsx new file mode 100644 index 0000000..fed0705 --- /dev/null +++ b/src/components/ContainerControlBox.jsx @@ -0,0 +1,28 @@ +import styled from 'styled-components'; +import PropTypes from 'prop-types'; + +const ContainerControlBoxWrapper = styled.div.attrs({ + className: 'container-controlbox', +})` + width: 100%; + + display: flex; + justify-content: ${({ $justifyContent }) => $justifyContent || 'flex-end'}; + align-items: center; +`; + +export const ContainerControlBox = ({ + justifyContent = 'flex-end', + children, +}) => { + return ( + + {children} + + ); +}; + +ContainerControlBox.propTypes = { + justifyContent: PropTypes.string, + children: PropTypes.node.isRequired, +}; diff --git a/src/components/ContainerHeader.jsx b/src/components/ContainerHeader.jsx new file mode 100644 index 0000000..8751227 --- /dev/null +++ b/src/components/ContainerHeader.jsx @@ -0,0 +1,49 @@ +import styled from 'styled-components'; +import PropTypes from 'prop-types'; + +import { Text } from '@components/typograph/Text'; +import LogoSVGComponent from '@/assets/kert_logos/Square.svg'; + +const ContainerHeaderWrapper = styled.div.attrs({ + className: 'container-header', +})` + width: 100%; + + display: flex; + justify-content: space-between; + align-items: center; +`; + +const TitleWrapper = styled.div.attrs({ + className: 'container-header-title', +})` + display: flex; + flex-direction: column; + gap: 10px; +`; + +export const ContainerHeader = ({ title, subtitle }) => { + return ( + + + + {subtitle} + + + {title} + + + + + ); +}; + +ContainerHeader.propTypes = { + title: PropTypes.string.isRequired, + subtitle: PropTypes.string.isRequired, +}; From f5cd8bd61d7ddee19ac4ea09329472c9c5b7ba0c Mon Sep 17 00:00:00 2001 From: Giwon Date: Fri, 8 Nov 2024 12:45:40 +0900 Subject: [PATCH 6/7] =?UTF-8?q?feat:=20=EC=98=A4=EB=A5=98=20=EB=A9=94?= =?UTF-8?q?=EC=8B=9C=EC=A7=80=20=ED=91=9C=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/forms/Input.jsx | 45 ++++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 10 deletions(-) diff --git a/src/components/forms/Input.jsx b/src/components/forms/Input.jsx index fa4b294..4e84437 100644 --- a/src/components/forms/Input.jsx +++ b/src/components/forms/Input.jsx @@ -1,6 +1,7 @@ import { forwardRef } from 'react'; - import styled from 'styled-components'; +import PropTypes from 'prop-types'; + import { Span } from '@components/typograph/Text'; const InputWrapper = styled.div` @@ -11,8 +12,20 @@ const Label = styled(Span).attrs({ $size: 's', $weight: 'regular', })` + transition: color 0.3s ease-in-out; + margin-left: 6px; margin-bottom: 6px; + ${(props) => props.$error && 'color: var(--danger-color);'} +`; + +const ErrorLabel = styled(Span).attrs({ + $size: 'xs', + $weight: 'regular', + $color: '--danger-color', +})` + margin-left: 6px; + margin-top: 12px; `; export const RawInput = styled.input.attrs((props) => ({ @@ -23,7 +36,7 @@ export const RawInput = styled.input.attrs((props) => ({ display: block; padding: 16px; width: 100%; - border-radius: 10px; + border-radius: 12px; box-sizing: border-box; background-color: var(--container-primary-color); @@ -54,15 +67,27 @@ export const RawInput = styled.input.attrs((props) => ({ &[type='number'] { -moz-appearance: textfield; } + + ${(props) => props.$error && 'border-color: var(--danger-color);'} `; -export const Input = forwardRef(({ label, value, ...props }, ref) => { - return ( - - - - - ); -}); +export const Input = forwardRef( + ({ label, error_label, value, ...props }, ref) => { + return ( + + + + {error_label && {error_label ?? '여기에 입력'}} + + ); + }, +); Input.displayName = 'Input'; +Input.propTypes = { + label: PropTypes.string, + error_label: PropTypes.string, + value: PropTypes.string, + onChange: PropTypes.func, + type: PropTypes.string, +}; From c1b32dfd056050385321262f93781582a793d4e6 Mon Sep 17 00:00:00 2001 From: Giwon Date: Fri, 8 Nov 2024 12:46:10 +0900 Subject: [PATCH 7/7] =?UTF-8?q?chore:=20=EB=B6=84=EB=A6=AC=EB=90=9C=20?= =?UTF-8?q?=EC=BB=A8=ED=85=8C=EC=9D=B4=EB=84=88=20=EC=BB=B4=ED=8F=AC?= =?UTF-8?q?=EB=84=8C=ED=8A=B8=20=EC=82=AC=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Login.jsx | 13 +- src/pages/MyPage.jsx | 410 +++++++++++++++++-------------------------- src/pages/SignUp.jsx | 13 +- 3 files changed, 165 insertions(+), 271 deletions(-) diff --git a/src/pages/Login.jsx b/src/pages/Login.jsx index beb5826..fff6919 100644 --- a/src/pages/Login.jsx +++ b/src/pages/Login.jsx @@ -6,6 +6,7 @@ import { useForm } from 'react-hook-form'; import { useAuth } from '@components/navigation/AuthContext'; import { Text } from '@components/typograph/Text'; import { Button } from '@components/forms/Button'; +import { ContainerHeader } from '../components/ContainerHeader'; import { API } from '@/utils/api'; @@ -184,17 +185,7 @@ export default function Login() { return ( - - - - Login to KERT - - - 로그인 - - - - +
diff --git a/src/pages/MyPage.jsx b/src/pages/MyPage.jsx index 560c1fa..6cd628f 100644 --- a/src/pages/MyPage.jsx +++ b/src/pages/MyPage.jsx @@ -7,54 +7,38 @@ import styled from 'styled-components'; import useAlert from '@/hooks/modal/useAlert'; import { useAuth } from '@components/navigation/AuthContext'; -import { Text } from '@/components/typograph/Text'; +import { Container } from '@components/Container'; +import { Text } from '@components/typograph/Text'; import { Button } from '@components/forms/Button'; import { Alert } from '@components/forms/modal/Alert'; +import { ContainerHeader } from '../components/ContainerHeader'; import defaultProfilePic from '@/assets/icons/menu/User.png'; import { API } from '@/utils/api'; +import { ContainerControlBox } from '../components/ContainerControlBox'; +import { Input } from '../components/forms/Input'; -const Container = styled.div` - margin: 0; - padding-top: 100px; - - display: flex; - flex-direction: row; - justify-content: center; - align-items: center; - - background-color: var(--body-background); - color: var(--primary-text-color); -`; - -const MyPageContainer = styled.div` +const MyPageWrapper = styled.div` width: 100%; max-width: 1000px; - margin: 0 auto; - padding: 50px; -`; - -const Section = styled.div` - background-color: var(--container-primary-background); - border: 1px solid var(--container-border); + margin: 120px auto; - padding: 40px; - border-radius: 20px; - margin-bottom: 30px; + display: flex; + flex-direction: column; + gap: 50px; `; const ProfilePicContainer = styled.div` display: flex; align-items: center; - margin-top: 20px; - margin-bottom: 20px; + gap: 25px; `; const ProfilePic = styled.img` - width: 80px; - height: 80px; - border-radius: 50%; + width: 100px; + height: 100px; + border-radius: 100%; margin-right: 15px; `; @@ -88,77 +72,23 @@ const PicButtons = styled.div` `; const Form = styled.form` - margin-top: 20px; - margin-left: auto; - margin-right: auto; + width: 100%; display: flex; flex-direction: column; + gap: 10px; `; const InputGroup = styled.div` width: 100%; display: flex; - gap: 20px; + gap: 40px; & > * { width: 100%; } `; -const WarningMessage = styled.p` - font-size: 14px; - color: #ff6b6b; - margin-bottom: 20px; -`; - -const InputWrapper = styled.div` - & > span { - margin-left: 10px; - margin-bottom: 8px; - } - - .error-message { - margin-left: 10px; - color: var(--danger-color); - font-size: 14px; - margin-top: 10px; - } - - label { - font-size: 16px; - margin-bottom: 10px; - display: block; - } - - input { - transition: - border-color 0.2s ease-out, - background-color 0.2s ease-out; - width: 100%; - - box-sizing: border-box; - border-radius: 14px; - padding: 15px; - margin-bottom: 20px; - - background-color: var(--container-primary-background); - border: 1px solid var(--container-border); - color: var(--primary-text-color); - outline: none; - - &:read-only { - background-color: var(--container-secondary-background); - color: var(--primary-text-color); - } - &:focus { - border: 1px solid var(--primary-color); /* 파란색 테두리 */ - box-shadow: none; /* 흰색 테두리 제거 */ - background-color: var(--container-secondary-background); - } - } -`; - export default function MyPage() { const [userInfo, setUserInfo] = useState({ name: '', @@ -355,13 +285,22 @@ export default function MyPage() { }, ); - const handleImageUpload = (event) => { - const file = event.target.files[0]; - console.log(file); - if (file) { - setImagePreview(URL.createObjectURL(file)); - imageUploadMutation.mutate(file); - } + const handleImageUpload = () => { + // input 생성 + const fileInput = document.createElement('input'); + fileInput.type = 'file'; + fileInput.accept = 'image/*'; + fileInput.style.display = 'none'; + fileInput.onchange = (e) => { + const file = e.target.files[0]; + if (file) { + setImagePreview(URL.createObjectURL(file)); + imageUploadMutation.mutate(file); + } + // 파일 선택 후 input 제거 + fileInput.remove(); + }; + fileInput.click(); }; const passwordChangeMutation = useMutation( @@ -435,179 +374,152 @@ export default function MyPage() { }; return ( - + <> - - {/* /* Account Info Section */} -
- - Account Info - - - 계정 정보 - + + {/* Account Info Section */} + + - - - + + - - - - - - - - - - - -
- - {/* Change Password Section */} -
- - Change Password - - - 비밀번호 변경 - -
- - - - - {errors.newPassword && ( - {errors.newPassword.message} - )} - - - - - - value === getValues('newPassword') || - '비밀번호가 일치하지 않습니다.', - })} - /> - {errors.confirmPassword && ( - - {errors.confirmPassword.message} - - )} - - - - - - {errors.currentPassword && ( - - {errors.currentPassword.message} - - )} - - - {passwordError && {passwordError}} - -
- -
+ + +
-
+
+ + {/* 비밀번호 변경란 */} + + {/* 상단 컨테이너 헤더 */} + + + {/* 현재 비밀번호 검증 */} + + {/* 새 비밀번호 입력 & 검증 */} + + {/* 새 비밀번호 입력 */} + + {/* 새 비밀번호 검증 */} + + value === getValues('newPassword') || + '새 비밀번호와 일치하지 않습니다.', + })} + /> + + + {/* 버튼 컨트롤 박스 */} + + + + {/* Delete Account Section */} -
- - Delete Account - - - 계정 삭제 - + + -
- - 계정을 삭제하면 복구할 수 없습니다. 신중히 선택하세요. - + + KERT 계정을 삭제합니다. 삭제한 계정은 복구가 불가하며 삭제 후엔 + 새로운 계정을 생성해야합니다. + -
- -
-
-
- -
+ + + + + + ); } diff --git a/src/pages/SignUp.jsx b/src/pages/SignUp.jsx index eeaa2f0..4470179 100644 --- a/src/pages/SignUp.jsx +++ b/src/pages/SignUp.jsx @@ -7,6 +7,7 @@ import useAlert from '@/hooks/modal/useAlert'; import { Text } from '@components/typograph/Text'; import { Button } from '@components/forms/Button'; import { Alert } from '@components/forms/modal/Alert'; +import { ContainerHeader } from '../components/ContainerHeader'; import { API } from '@/utils/api'; @@ -175,17 +176,7 @@ export default function SignUp() { return ( - - - - Sign Up to KERT - - - 회원가입 - - - - +