Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(member, time): 관리자 페이지 계정 추가 기능 #232

Merged
merged 15 commits into from
Sep 10, 2024
Merged

Conversation

SWARVY
Copy link
Contributor

@SWARVY SWARVY commented Sep 9, 2024

Summary

#228

관리페이지에 멤버 추가 기능을 구현합니다

Tasks

  • 관리페이지에 멤버 추가 기능을 구현했습니다.
  • useSuspenseQuery를 통해 멤버 관리 섹션에서 멤버 목록을 불러오고 있었으나, Suspense 컴포너트가 적용되어있지 않아 컴포넌트가 데이터 패칭 중 블링킹 하는 현상을 수정했습니다.

ETC

이번에 생성한 AddMemberForm의 경우 Section 디렉토리 내부에 넣어놓았습니다. 그 이유는 해당 폼 컴포넌트가 다른 페이지에서 재사용되지 않으며 현행 디자인대로 다른 디렉토리로 분리하여 관리할 경우 불필요한 코스트가 들 것이라고 생각했기 떄문입니다.

이와 더불어, 현재 디렉토링 방식에 대하여 전체적으로 분석해본 결과, 재사용되지 않는 컴포넌트들이 불필요하게 디렉토링 되어있다고 느껴집니다.

image

대표적으로 관리페이지에서 사용되는 AddScheduleForm입니다. 일정의 경우 관리탭에서 추가 / 삭제를 담당하고있기 때문에, 다른 페이지에서는 사용되지 않는 컴포넌트입니다. 하지만, manage 디렉토리에 존재하는것이 아니고 schedule 디렉토리에 존재하기떄문에 컴포넌트를 찾기 어렵습니다. (그냥 ctrl-f 혹은 ctrl-shift-f로 찾으면 되지만 모두 그렇게 해결할거라면 디렉토링은 중요하지 않으니까요)

따라서, 지금 현행 디렉토링 방식을 재사용성의 유무에 따라 재분류 할 것을 건의드립니다. 멤버스의 기능이 점점 커지고 있기때문에 지금도 코스트가 상당량 들어갈 것으로 예상되지만 지금 못한다면 이후에는 볼륨이 더 늘어나서 더 힘들어질 것으로 보입니다.

또, select.ts에 존재하는 SelectOptions 타입을 임시 비활성화 하였습니다.

image

해당 타입을 임시적으로 비활성화 한 이유는 다음과 같습니다.

  • key: string이라는 모호한 타입을 사용하고있어 SELECT_OPTIONS 객체를 참조했을 때 인텔리센스가 정상적으로 작동하지 않음.
  • SELECT_OPTIONS 객체에서만 해당 타입을 사용하고있고, 제거해도 정상 동작에 문제 없음

혹시 다른 부분에서 사용되고있다면 말씀해주세요, 해당 부분까지 고려하여 타입 자체를 재설계하는 방향으로 진행해보겠습니다.

그리고 책 추가는 바로 다음 작업으로 이어서 할게요 뀨잉

Screenshot

image

@SWARVY SWARVY added ✨ Feature 새로운 기능 명세 및 개발 🏠 Member member 프로젝트 관련 labels Sep 9, 2024
@SWARVY SWARVY self-assigned this Sep 9, 2024
Copy link

changeset-bot bot commented Sep 9, 2024

🦋 Changeset detected

Latest commit: 89d89d3

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

This PR includes changesets to release 2 packages
Name Type
@clab-platforms/member Minor
@clab-platforms/time 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

@SWARVY SWARVY requested a review from gwansikk September 9, 2024 08:31
Copy link
Contributor

@Jeong-Ag Jeong-Ag left a comment

Choose a reason for hiding this comment

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

현재 저도 SelectOptions 사용하는 부분 없는 것으로 확인됩니다.
프로젝트 볼륨이 더 커지기 전에 디렉토링 방식을 수정하는 부분에 동의해요. 활동 페이지나 도서 추가 등 지금 진행되고 있는 멤버스 개발이 마무리 된 후 진행하면 좋을 것 같아요 :)

Comment on lines 11 to 21
const [id, setId] = useState<string>('');
const [name, setName] = useState<string>('');
const [address, setAddress] = useState<string>('');
const [email, setEmail] = useState<string>('');
const [phoneNumber, setPhoneNumber] = useState<string>('');
const [major, setMajor] = useState<string>('');
const [grade, setGrade] = useState<number>(1);
const [birth, setBirth] = useState<string>('');
const [interest, setInterest] = useState<string>('NULL');
const [githubUrl, setGithubUrl] = useState<string>('');
const [studentStatus, setStudentStatus] = useState<string>('CURRENT');
Copy link
Contributor

Choose a reason for hiding this comment

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

useState 하나로 관리하는 더 편하지 않을까 싶어요

Comment on lines 8 to 22
export interface AddMemberRequestType {
id: string;
password: string;
name: string;
email: string;
contact: string;
department: string;
grade: number;
birth: string;
address: string;
interests: string;
githubUrl: string;
studentStatus: string;
imageUrl: string;
}
Copy link
Contributor

Choose a reason for hiding this comment

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

passwordimageUrl은 필수값이 아니라서 해당 부분은 optional으로 수정해도 좋을 것 같아요.

@gwansikk gwansikk changed the title feat: 멤버 추가 기능 구현 feat(member): 멤버 추가 기능 구현 Sep 9, 2024
@gwansikk gwansikk changed the title feat(member): 멤버 추가 기능 구현 feat(member): 관리자 페이지 계정 추가 기능 Sep 9, 2024
@gwansikk gwansikk changed the title feat(member): 관리자 페이지 계정 추가 기능 feat(member, time): 관리자 페이지 계정 추가 기능 Sep 9, 2024
Copy link
Member

@gwansikk gwansikk left a comment

Choose a reason for hiding this comment

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

LGTM!!

@gwansikk
Copy link
Member

@SWARVY build CI 실패 로그 확인해주세요

Copy link
Contributor

@Jeong-Ag Jeong-Ag left a comment

Choose a reason for hiding this comment

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

수고하셨습니다! CI 문제 해결되고 머지 해주시면 될 것 같아요!

@SWARVY SWARVY merged commit 1925c3a into main Sep 10, 2024
4 checks passed
@gwansikk gwansikk deleted the feature/228 branch September 10, 2024 05:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ Feature 새로운 기능 명세 및 개발 🏠 Member member 프로젝트 관련
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants