Skip to content

Conversation

@hongggyelim
Copy link
Collaborator

@hongggyelim hongggyelim commented Apr 29, 2025

마이페이지 UI 변경사항 반영 [4/29]

  • 글자수 추가
  • 자기소개 text area로 변경
  • 이미지 드래그앤드롭 기능 추가 : hello-pangea/dnd 라이브러리 사용
  • 대표 이미지 툴팁 추가
  • 닉네임 필드 추가

비밀번호 변경 모달 추가 [10/8]

  • 피그마에 정보수정 페이지 내 모달 너비 420 px 가 아님 - 컴포넌트 자체는 420px fixed 라서 확인 부탁드립니다

- file onChange 수정
- radio : boolean으로 수정
@hongggyelim hongggyelim requested a review from jongjunpark April 29, 2025 12:12
@changeset-bot
Copy link

changeset-bot bot commented Apr 29, 2025

🦋 Changeset detected

Latest commit: ced30bc

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@date-project/user Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@hongggyelim
Copy link
Collaborator Author

TODO

  • 각 탭에서 내용 작성 후 다른 탭으로 넘어갈 때 데이터를 어떻게 할 것인가, 다시 원래 탭으로 넘어왔을때는 어떻게 할 지 결정 (submit 또는 임시 저장?)
  • 비밀번호 변경 모달 추가
  • api 연동 ㅎㅎ

@hongggyelim
Copy link
Collaborator Author

피그마에 정보수정 페이지 내 모달 너비 420 px 가 아님 - 컴포넌트 자체는 420px fixed 라서 확인 부탁드립니다

Copy link
Collaborator

@jongjunpark jongjunpark left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

파일/폴더명 컨벤션 및 아키텍쳐 통일성필요

  1. 같은 단어이나 컨벤션이 다른 케이스
    • app/mypage
    • shared/components/myPage
  2. 같은 dir 내에 다른 컨벤션
    • shared/components/myPage/Stages (이것만 pascal)
    • shared/components/myPage/components
  3. 아키텍쳐의 모호성
    • shared/components/myPage/components (components에 또 다시 components가 등장)
  4. 3번과 비슷 구조적으로 어떻게 나뉜거인지 잘 모르겠음
    아래 두개 종류로 나뉜것 같은데, 어떤 기준점인지 모호함
    • shared/components/layouts
    • shared/components/myPage, notApproved, sigupSection
  5. style 파일 위치가 제각각
    왜 mypage만 따로 있는지 모르겠음 그러나 개인적으로 mypage 처럼 나뉘었으면 좋겠음 하나의 파일에서 관리하는건 좋은 것은 아님
    • (auth)/_styles/style.css.ts
    • (auth)/mypage/style.css.ts
  6. libs의 역할
    libs는 libarary를 의미하나 파일들이 모두 상수만 있음. 이는 model, constants, config와 같은 네이밍이 더 어울림

Comment on lines 68 to 70
{stage === "required" && <RequiredStage />}
{stage === "optional" && <OptionalStage />}
{stage === "account" && <AccountStage />}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

요런거 ts-pattern 같은 라이브러리 써보는것도 추천

}, [isOpenDropdown]);

useEffect(() => {
setHeaderDOM(document.getElementById("main"));
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

apps/user/src/app/(auth)/layout.tsx가 적용되는 페이지가 login, signup인데 header를 쓰지않는 페이지인데,
왜 여기에 state값을 저장하려는건지 궁금함

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

추가로 DOM을 가져오는건 지양하고 ref를 활용했으면 함

/>
)}
{isOpenDropdown &&
createPortal(
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Portal 컴포넌트를 만들었으니깐 만든걸 활용

@@ -1,6 +1,5 @@
import { Color, textSprinkles } from "@repo/ui";
import { Color, textSprinkles, Zindex } from "@repo/ui";
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

요거 왜 zIndex가 아니라 Zindex로 이상하게 되었지

@@ -16,6 +18,8 @@ import {
* @todo : 입력한 정보가 있을때는 해당 데이터를 가져와야함
*/
const AccountStage = () => {
const [isOpenResetPasswordDialog, setIsOpenResetPasswordDialog] =
useState(false);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

얘 왜 혼자 밑에 내려와있어

<Dialog.Content>
<div className={content}>
<Label>현재 비밀번호</Label>
<TextInput
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TextInput에 type="password" 추가 필요

</div>
</Dialog.Content>
<Dialog.Footer>
<Button type="button" variant="outline" onClick={onClose}>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Button의 높이가 디자인과 다름

  • Button 디자인이 기본 40px 고정값을 사용하고 있음 참고

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

디자인과 상이한 부분

  • Dialog size 설정필요 (참고)
  • label gap이 디자인과 다름

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tooltip은 tool-tip 합성어가 아니라 tooltip이 하나의 단어임
따라서, ToolTip이 아니라 Tooltip이 맞음

};
const ToolTip = ({ content }: Props) => {
return (
<>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

불필요한 Fragment

@jongjunpark
Copy link
Collaborator

추가 리뷰

  1. watch를 useWatch로 변경할 것
  2. design과 달리 텍스트가 조금 더 굵게 보임. 왜 그런지 한번 알아보는 시간을 가져볼 것

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants