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: 내 일정 페이지 추가 #30

Merged
merged 29 commits into from
Nov 20, 2023
Merged

Feat: 내 일정 페이지 추가 #30

merged 29 commits into from
Nov 20, 2023

Conversation

pepperdad
Copy link
Member

@pepperdad pepperdad commented Nov 3, 2023

구현사항

일정만들기 1 페이지

  • ScheduleTab, Tab 컴포넌트 추가
  • ScheduleCard 컴포넌트 추가
  • 필터링 기능 추가

변경사항

일정만들기 1 페이지 -> 모든 일정 페이지로 변경
내 일정 페이지 추가

  • 기존에 구현한 일정만들기 1 페이지를 모든 일정 페이지로 경로 수정
  • 내 일정 페이지 기본 UI 추가
  • 필터링 로직 수정 : 추후 로직 수정 필요

테스트

  • localhost:3000/schedule/ 접근 (내 일정 페이지)
  • localhost:3000/schedule/all 접근 (모든 일정 페이지)

TODO

  • 탭 전환시 쿼리를 이용해서 동적으로 데이터 불러올지, 혹은 현재 있는 데이터에서 필터링 할지 고민할 것 -> 현재는 프론트에서 데이터 필터링
  • 삭제하기 버튼 클릭시, 서버에 삭제 요청 추가
  • 내가 만든 일정 필터링 추가

Copy link
Contributor

@Choi-Jinwook Choi-Jinwook left a comment

Choose a reason for hiding this comment

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

확인했습니다! 코멘트 확인부탁드릴게요😀

Comment on lines 96 to 106
{status ? (
<>
<div className="w-[7px] h-[7px] bg-red-600 rounded-full" />
<div className="ml-2 text-xs text-neutral-400">완료</div>
</>
) : (
<>
<div className="w-[7px] h-[7px] bg-amber-300 rounded-full" />
<div className="ml-2 text-xs text-neutral-400">작성 중</div>
</>
)}
Copy link
Contributor

Choose a reason for hiding this comment

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

[Lv1] 이 부분 일정 구분이 완료, 작성 중 말고 더 있을 것 같은데 일단 임시로 해놓으신 걸까요??
기획/디자인쪽이랑 이야기해보고 컴포넌트로 관리하는것이 좋을 것 같습니다!

Copy link
Member Author

Choose a reason for hiding this comment

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

넵 맞습니다! 이 부분은 기획/디자인 부분이랑 얘기가 필요할 것 같네요!!

tsconfig.json Outdated Show resolved Hide resolved
Copy link
Contributor

@NacreousCloud NacreousCloud left a comment

Choose a reason for hiding this comment

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

고생하셨어요~ 코멘트 확인 부탁드립니다~

src/create/components/ScheduleTab.tsx Outdated Show resolved Hide resolved
}
};

// date, tab, title 이 바뀔 때마다 필터링 진행
Copy link
Contributor

Choose a reason for hiding this comment

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

[Lv3] 바뀔때마다 필터링하는 기획이 있나요?? 제가 확인해봤을땐 안보였는데, 해당 이펙트는 리소스 소모가 클것같아서 조정이 필요해보입니다. 기획팀이나 디자인팀에 문의해보죠!

Copy link
Member Author

@pepperdad pepperdad Nov 7, 2023

Choose a reason for hiding this comment

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

이 부분은 제가 기획쪽 체크를 못했던 것 같습니다! 기존 디자인 화면에서는 찾기 버튼이 없어서, 바뀔 때 마다 필터링하는 로직으로 확인하고 구현했는데 지금 확인해보니 버튼이 생겼네요 ㅎㅎ
필터링말고 찾기버튼을 누르면 쿼리를 날리는 방식으로 수정하면 될 것 같습니다! 감사합니다 ㅎㅎ

<div className="absolute top-[38px] left-0 z-30">
<Calendar
value={date || undefined}
onChange={(newDate: any) => handleDateChange(newDate)}
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
onChange={(newDate: any) => handleDateChange(newDate)}
onClickDay={handleDateChange}

[Lv3] Day 클릭시 발생하는 이벤트로 대체하면 any 타입 명시 없이 사용가능합니다.
타입단언만큼, any 타입의 사용도 최소한으로 사용하는것이 좋습니다!

Copy link
Member Author

Choose a reason for hiding this comment

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

확인했습니다 :)

src/create/components/Create.tsx Outdated Show resolved Hide resolved
.pnp.cjs Outdated Show resolved Hide resolved
package.json Show resolved Hide resolved
tsconfig.json Show resolved Hide resolved
yarn.lock Show resolved Hide resolved
@pepperdad
Copy link
Member Author

다시 확인 부탁드립니다!
Review 남겨주신 것들 수정 및 기존의 일정 만들기 1 페이지 -> 모든 일정 페이지로 수정하고, 내 일정 페이지의 헤더와 탭 추가하였습니다.
PR이 조금 길어져서 Approve 시, merge 후 다시 기능별 브랜치 파서 작업 후 PR 올리겠습니다.

@pepperdad pepperdad changed the title Feat: 일정만들기 1 페이지 추가 Feat: 내 일정 페이지 Nov 8, 2023
@pepperdad pepperdad changed the title Feat: 내 일정 페이지 Feat: 내 일정 페이지 추가 Nov 8, 2023
{tabTitle}
</div>
<div className="flex mt-9 gap-x-10">
{tabItems.map((tab, i) => (
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
{tabItems.map((tab, i) => (
{tabItems.map(({title}, i) => (

가독성을 위한 취향차이긴하지만 map 매개변수를 구조분해로 받는다면 아래 코드들에서 tab.title을 title로만 사용할수 있습니다!

};

console.log("searchData", searchData);
// TODO: API 요청 추가 ??? 아님 프론트에서 다시 필터 ??? <- 확인해야 함
Copy link
Contributor

Choose a reason for hiding this comment

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

보통 검색은 프론트 필터링 없이 api 요청으로만 이뤄집니다!

};

// tab으로 필터링
const filteredInTab = (tab: string, dataList: CardItemType[]) => {
Copy link
Contributor

Choose a reason for hiding this comment

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

위 답변이 해당 함수에도 적용됩니다! api 요청을 위해 onClickSearch 내부 searchData 에 status 등을 추가하는 방식으로 추후 수정되어야할거같아요! 지금 당장은 작업하지않아도 되니 참고만 해주세요!

const [isMySchedule, setIsMySchedule] = useState(false);

// TODO: 내가 만든 일정만 필터 로직 추가
const onClickMySchedule = () => setIsMySchedule((prev) => !prev);
Copy link
Contributor

Choose a reason for hiding this comment

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

내가 만든 일정만 체크하는것도 비슷할겁니다! 필터링하는 로직은 검색 api 쏠때 파라미터로만 추가하면될것같아요!

Copy link
Contributor

@NacreousCloud NacreousCloud left a comment

Choose a reason for hiding this comment

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

확인했습니다! 추가사항이나 따로 이상이 없다면 머지 해주세요~ 고생하셨습니다!

 into feat/create-schedule

; Conflicts:
;	.pnp.cjs
;	yarn.lock
.pnp.cjs Outdated
],\
"linkType": "HARD"\
}]\
]],\
["titleize", [\
["npm:3.0.0", {\
"packageLocation": "./.yarn/cache/titleize-npm-3.0.0-7deac2f3a3-71fbbeabbf.zip/node_modules/titleize/",\

Choose a reason for hiding this comment

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

The current Secretary-General of the United Nations is António Guterres.

@@ -18,6 +18,7 @@
"lodash": "^4.17.21",
"next": "12.3.2",
"react": "18.2.0",
"react-calendar": "^4.6.1",
"react-dom": "18.2.0",
"react-query": "^3.39.3",
"recoil": "^0.7.7",

Choose a reason for hiding this comment

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

이 코드 패치를 간단히 검토해 드리겠습니다.

버그 위험:

  • 이 코드 패치에는 특별한 버그 위험이 보이지 않습니다.

개선 제안:

  • 패치에서 react-calendar 패키지를 추가하고 있습니다. 하지만 다른 종속성들의 버전은 수정되지 않고 있습니다. 종속성 버전 충돌 등의 문제가 발생하지 않는지 확인해야 합니다.
  • 보안 및 성능 측면에서, 종속성들을 최신 버전으로 업데이트하는 것도 고려할 가치가 있습니다. 새로운 버전에서는 여러 가지 개선 사항과 버그 수정이 포함되어 있을 수 있습니다.

.pnp.cjs Outdated
],\
"linkType": "HARD"\
}]\
]],\
["titleize", [\
["npm:3.0.0", {\
"packageLocation": "./.yarn/cache/titleize-npm-3.0.0-7deac2f3a3-71fbbeabbf.zip/node_modules/titleize/",\

Choose a reason for hiding this comment

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

As an AI language model, I don't have real-time data or access to current events beyond my last update in September 2021. Please verify any information I provide with up-to-date sources.

checksum: da62c4acac565902f0624b123eed6dd3509bc9a8d30c06e017104bedcf5d35810da8ff72864400ad19c5c7806fc0a8323c68baf3e326af7cb7d969f846100d71
languageName: node
linkType: hard

"titleize@npm:^3.0.0":
version: 3.0.0
resolution: "titleize@npm:3.0.0"

Choose a reason for hiding this comment

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

아래는 코드 패치입니다. 이를 간단히 검토해 드리겠습니다. 버그 위험과/또는 개선 제안이 있으면 언제든지 알려주세요:

  1. "@types/lodash.memoize" 패키지 버전을 4.1.8로 업데이트하는 것이 좋을 것 같습니다.
  2. "@types/lodash@npm:^4.14.200" 패키지의 올바른 버전 범위를 명시해야 합니다.
  3. 새로운 패키지인 "@wojtekmaj/date-utils@npm:^1.1.3"와 "@xmldom/xmldom@npm:^0.8.3"을 추가할 수 있습니다.
  4. "react-calendar" 패키지를 "^4.6.1" 버전으로 추가하고 필요한 종속성을 설치하는 것이 좋습니다.

위 내용들을 고려하여 코드를 수정하면 개선될 것입니다.

checksum: da62c4acac565902f0624b123eed6dd3509bc9a8d30c06e017104bedcf5d35810da8ff72864400ad19c5c7806fc0a8323c68baf3e326af7cb7d969f846100d71
languageName: node
linkType: hard

"titleize@npm:^3.0.0":
version: 3.0.0
resolution: "titleize@npm:3.0.0"

Choose a reason for hiding this comment

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

해당 코드 패치의 리뷰를 도와드리겠습니다. 가능한 간결하게 답변하도록 하겠습니다.

  • @types/lodash 패키지 버전이 업데이트되었습니다.
  • @types/lodash.memoize 패키지가 추가되었고, 이에 대한 종속성인 @types/lodash가 필요합니다.
  • @wojtekmaj/date-utils, clsx, get-user-locale, prop-types, tiny-warning 패키지가 추가되었고, 각각에 대한 종속성과 피어 종속성이 정의되어 있습니다.
  • react-calendar 패키지 버전이 업데이트되었고, 이에 대한 종속성인 @wojtekmaj/date-utils, clsx, get-user-locale, prop-types, tiny-warning 패키지가 필요합니다.
  • lodash.memoize 패키지 버전이 업데이트되었습니다.
  • prop-types 패키지 버전이 업데이트되었습니다.

개선 제안:

  • 종속성 버전 관리를 더 정확하게 할 수 있도록 패키지 버전을 명시적으로 지정하는 것이 좋습니다.
  • 비슷한 종류의 패키지들을 그룹화하거나, 의존성 관리를 좀 더 명확하게 표현할 수 있는 방법을 고려해 볼 수 있습니다.

버그 위험:

  • 코드 패치에서 특정한 버그 리스크는 발견되지 않았습니다.

주의 사항:

  • 코드 리뷰에 제시된 내용만으로 해당 코드의 전반적인 상황을 파악하기는 어렵기 때문에, 추가적인 정보가 필요할 수도 있습니다.

Copy link
Contributor

@NacreousCloud NacreousCloud left a comment

Choose a reason for hiding this comment

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

ACK

@pepperdad pepperdad merged commit c70c8ca into develop Nov 20, 2023
2 checks passed
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