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

[ FE ] [ DDeong ] 월, 화 진행 사항 #5

Merged
merged 14 commits into from
Apr 21, 2021

Conversation

jjunyjjuny
Copy link
Collaborator

@jjunyjjuny jjunyjjuny commented Apr 20, 2021

진행 사항

협업룰

  • 네이밍, 커밋규칙, 브랜치, 이슈, 기타 등등 협업 룰 작성

Feature List 설계

  • 컴포넌트 트리 및 기능 정리.
  • 구성 중 공통에 해당하는 Card, Badge, Carousel을 먼저 작업 진행 중

회고

Seong

  • 평소에 CSS를 정리하는 걸 귀찮아하고, 협업 때도 남한테 미루기만 했었는데 결국 대가를 치르게 되었다. 디자이너 분이 피그마로 다 정리 해줬음에도 불구하고 맘처럼 쉽게 되지 않는다. 그래도 이번 기회로 styled-component를 더 잘 다루게 될 것 같아 다행이다.
  • 또 CRA로 만든 구성은 다 의미가 있다는 걸 배웠다... index.html나 public 폴더 수정했다가 곤욕을 치뤘다. entrypoint? 리액트가 렌더링하는 방식을 알았다면 헤매지 않았을텐데 더 공부해야겠다.
  • 지금은 백엔드 부분을 애써 무시한 채 진행 중인데 Oauth가 어떤 친구일지 두려워진다.

DD

  • Carousel을 만드는 중인데, React에서 범용성 있는 컴포넌트로 만들려다 보니 생각보다 고려해야할 요소가 많았다.

  • 가장 고민하고 있는 부분은 '한 번 렌더링 된 DOM을 계속 유지할 것인가?'이다.

  • 결론적으로 현재 작업하고 있는 방향은 최초에는 하나의 list만 렌더되며, 렌더링한 DOM을 유지한다 이동 방향에 이미 렌더했던 DOM이 있다면 리렌더링 없이 translate만 변경한다. 더 이상 DOM이 없다면 새로운 DOM을 렌더해서 추가하거나, 반대편 요소를 옮긴 후 translate한다.

  • lazy loading과 흡사한(?) 방식으로 만들어보려고 하는데, 아직 완성되지 않고 여러 문제가 있다..

  • 이전 쇼핑하우에서는 보여지는 visiable 영역과 양쪽 hidden 영역 총 3개의 아이템이 렌더된 상태에서, 이동할 때 마다 반대편 요소는 지우고, 이동 방향에 새로운 아이템을 추가한 후에 translate를 이동시키는 방식이었다.

  • 이 방식은 DOM Tree에 3개의 요소만 남게 되는데 캐로셀을 반대방향으로 넘기면 아까 렌더링했던 아이템을 다시 렌더링해야한다는 불필요한 렌더?가 발생하는 것 같다.

  • 예를 들어 1,2,3에서 오른쪽으로 이동하면 2,3,4가 되며 1이 DOM Tree에서 사라지는데, 다시 왼쪽으로 이동하면 1, 2, 3이 되기 위해 1을 다시 렌더링해야 함.

  • 그렇다고 한 번에 모든 list를 다 렌더링하는건 별로! 아직 진행중이니 내일까지 의도한대로 동작하게 만들어볼 예정.

질문

DD

  • DOM Tree에 3개만 남기고 이동할 때 마다 필요한 item을 추가/삭제하며 렌더링 하는 방식과, 한 번 렌더링 한 item은 계속 유지시킨재로 translate하는 방식 중 어떤게 더 안티패턴일까?하는 궁금증이 있습니다.
  • 전자는 만들기 좀 더 편하지만 "리렌더링"이라는 행위가 더 자주 일어나는 단점이 있고, 반대로 후자는 "리렌더링"은 덜 하지만 overflow에 가려질 뿐, 사용할 수록 많은 DOM이 존재하는 상태로 translate되는 단점이 있습니다.
  • 둘 다 만들어보고 성능체크를 해야하겠지만, 막상 하다보니 후자의 경우도 소스를 많이 먹을거 같다는 느낌이 들더라구요..

jjunyjjuny and others added 14 commits April 19, 2021 17:20
add skeleton of Card component without production code
Carousel로 감싼 컴포넌트와 prop으로 받은 길이를 기반으로 적절한 데이터를 구성, 이를 기반으로 render
add CSS in Card.jsx, add hover event by mouseEnter,Leave
[0420] Complete Card component
[0420] Complete Badge component
add click event for change cardlist, add onerror event for img src error
add noto sans import in index.css, modify style in BestList.jsx
[0420] Complete BestList component
@jjunyjjuny jjunyjjuny added the review-FE FE 리뷰 label Apr 20, 2021
crongro pushed a commit that referenced this pull request Apr 21, 2021
@crongro
Copy link

crongro commented Apr 21, 2021

Feature List 설계

깃헙 이슈에 '할 일'을 생각나는 대로 다 올리고,
이번주에 할 것만 milestone으로 정의하는 것도 좋죠.

현업에서는 백로그는 엑셀형태로 정리하기도 합니다.

Copy link

@crongro crongro left a comment

Choose a reason for hiding this comment

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

수고하셨습니다.

벌써 carousel도 만들어보시고!

Comment on lines +56 to +58
fetch("https://h3rb9c0ugl.execute-api.ap-northeast-2.amazonaws.com/develop/baminchan/best")
.then((response) => response.json())
.then((json) => setBestList(() => json.body));
Copy link

Choose a reason for hiding this comment

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

아시겠지만 async 함수를 사용하시고, try-catch 도 사용하면서 에러처리까지 해보세요.

Comment on lines +67 to +71
{bestList.map((e, i) => (
<Tab key={parseInt(e.category_id)} onClick={clickHandler} index={i} select={index}>
{e.name}
</Tab>
))}
Copy link

Choose a reason for hiding this comment

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

이런 로직이 지금수준보다 더 복잡해지면 jsx밖으로 옮기는 것도 좋아요.

font-size: 14px;
line-height: 20px;

color: #ffffff;
Copy link

Choose a reason for hiding this comment

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

단축표기법을 사용하세요.

Comment on lines +25 to +31
return `
width: 160px;
height: 160px;
`;
default:
return;
}
Copy link

Choose a reason for hiding this comment

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

들여쓰기가 이상한데 포매터가 이렇게 해준건가요?

switch (props.size) {
case "LARGE":
return `
width: 384px;
Copy link

Choose a reason for hiding this comment

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

theme로 이런 값을 정의해두는 건 어때요?

아니면 객체형태로..mapping해두고 사용하던가요.

Comment on lines +30 to +38
if (dir === "prev") {
currentSlideIndex.current -= 1;
direction.current = "prev";
// setRealSlieds([newSlide, ...realSlides]);
} else {
currentSlideIndex.current += 1;
direction.current = "next";
// setRealSlieds([...realSlides, newSlide]);
}
Copy link

Choose a reason for hiding this comment

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

이렇게 해도 동일한 코드겠죠?

if (dir === "prev") currentSlideIndex.current -= 1;
else currentSlideIndex.current += 1;
direction.current  = dir;

Comment on lines +100 to +106
const moveToPrev = keyframes`
from{
transform: translateX(0px);
}to{
transform: translateX(100%);
};
`;
Copy link

Choose a reason for hiding this comment

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

transition 을 사용하면 애니메이션이 되는데 왜 keyframe으로 조절하시는 건가요? (궁금)

Copy link
Collaborator Author

@jjunyjjuny jjunyjjuny Apr 21, 2021

Choose a reason for hiding this comment

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

@crongro

  1. 현재 로직은 < 으로 이동했을 때 해당 요소가 있다면 Ref의 translate를 변경시켜 렌더없이 슬라이드 됩니다.
  2. < 으로 이동할 때 해당 요소가 없다면 렌더링해서 추가해야하는데, 이 때 translate값이 -100%인 상태로 렌더가 되고, 렌더가 끝나면 translate를 0로 변경시키며 슬라이드가 실행됩니다.
  3. 여기서 기본적으로 -100으로 렌더하고, 렌더가 끝나면 0으로 되돌리기 로직을 할때 transition을 사용하면
    첫 번째 문제는 -100으로 렌더할 때도 애니메이션이 적용되는 문제가 첫 번째(transition:'none'으로 껐다켰다 하는 로직이 추가 됨),
    두 번째 문제는 "렌더링이 끝나고 translate를 0으로 돌리는 로직"을 useEffect로 할 것인가, 적당히 1초 후에 실행되는 비동기 코드를 쓸 것인가(내키지 않음)하는 문제가 있습니다.
  4. keyframe을 사용하면 "렌더 된 후 -100에서 0으로" 이동을 한 번에 처리할 수 있을거 같아서 적용하려 했습니다만...

또 다른 문제로 리액트가 상위 container를 렌더링하지 않는 효율성을 발휘해준 덕분에 최초 렌더에만 keyframe이 걸리고 이후에는 실행이 되지 않는건지?? 알 수 없는 문제가 발생했습니다.
디버깅을 해보니 keyframe 호출 함수가 실행되는건 확인했는데, 처음에만 슬라이드가 되고 두 번째 클릭부터는 실행만 되고 애니메이션이 적용되지 않아서 결국 transition, useEffect를 사용했습니다. 다만 내키지 않네요.. ref의 style을 직접 조종하는 로직이라 뭔가 리액트답지 않달까 ..

}}
`;
const Slide = styled.ul`
background-color: #777777;
Copy link

Choose a reason for hiding this comment

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

단축표기법을 사용하세요.

${(props) => css`
${props.prev &&
css`
left: 10px;
Copy link

Choose a reason for hiding this comment

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

10px을 계산에 의해서 입력가능할까요? 변경되는 값 같아서 계산되어지면 더 좋을 듯.

@@ -0,0 +1,62 @@
const path = require("path");
Copy link

Choose a reason for hiding this comment

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

CRA를 사용했는데 webpack 설정이 어떤 이유로 있는건가요?

@crongro crongro merged commit ea1a99a into codesquad-members-2021:DDeong Apr 21, 2021
crongro pushed a commit that referenced this pull request Apr 22, 2021
crongro pushed a commit that referenced this pull request Apr 22, 2021
Sonjh1306 pushed a commit that referenced this pull request Apr 26, 2021
Sonjh1306 pushed a commit that referenced this pull request Apr 26, 2021
feat: Create DataSource and Check MainView (#5)
crongro pushed a commit that referenced this pull request Apr 26, 2021
* Chore: 환경셋팅 및 폴더링

* Feat. MainMenu 마크업, itemCard 샘플 마크업#9

* Chore. 샘플카드 작성 #9

* Chore. Category 컴포넌트 생성

* Feat. Category UI #4

* Style. Add  Header Styled Component #18

* Chore : .gitignore 파일 생성

* Chore : 프로젝트 폴더인 BE 폴더 안에 .gitignore 파일 생성

* Chore : side dish 스프링 부트를 이용한 gradle 프로젝트 생성

* Feat : jdbc를 이용한 mysql 연결을 위해 application.properties 설정

* Feat : side dish 프로젝트의 schema.sql 파일 생성

* Chore: .gitignore 추가

* Style. Head style and react icon 추가 #18

* Feat. delivery 작업 중 #9

* Feat: dish 관련 클래스와 레포지토리 생성

기본 프로젝트 골격을 잡기 위해 Dish, DishController, DishRepository, DishService, BestDishResponseDTO의 틀 생성

* Feat: badge 관련 클래스와 레포지토리 생성

기본 프로젝트 골격을 잡기 위해 Badge, BadgeRepository 생성

* Style: Category style #4

* Feat. hover & badge 완료

* Style: Category UI #4

* Delete BE directory

* Delete .gitignore

* Feat. 초기데이터 fetch 요청
-Fetch custom Hook 작성
-초기데이터: 메인메뉴, 카테고리1번

* Feat. tabClick 효과 구현 #33, MainMenu Fetch #3

* Style. categorySlide 1줄 나열. #4

* Chore. 더보기 버튼 구현시작 #5

* Feat. 상세페이지 폼 구현
- 배경색설정/상세페이지 위치 가운데로 설정/x버튼구현
- x버튼 클릭  시 기존 페이지로 보여줌 #36

* Chore. 불필요한 코드, 파일 제외하여 pr하기

* Feat. 상세데이터 fetch  받아옴 #38

Co-authored-by: eamon3481 <68339352+eamon3481@users.noreply.github.com>
Co-authored-by: jeong-inho <derosatam76@gmail.com>
Co-authored-by: Jeong InHo <63284310+eNoLJ@users.noreply.github.com>
crongro pushed a commit that referenced this pull request Apr 26, 2021
* [#1] init: 🎉 개발 환경 구축

* [#3] feat: ✨ Header 만들기

* [#5] feat: ✨ BestTab UI 구현

- BestTab UI
- 상수 파일
    - const.js
- 재사용 컴포넌트
    - Label.jsx
    - ItemCard.jsx

* [#7] feat: ✨ Slide UI 구현

- App.jsx
    - SlideContainer import
- BestItem.jsx
    - 삭제 (미사용)
- BestItems.jsx
    - ItemCard prop 추가
- BestTab.jsx
    - 스타일 수정
- SlideContainer.jsx
    - UI 구현
- SlideItems.jsx
    - UI 구현
- SlideArrowBtn.jsx
    - UI 구현
- ItemCard.jsx
    - 스타일 수정
    - prop 추가
- Label.jsx
    - prop 추가
    - 기본 값 추가

* [#8] feat: ✨ ShowMoreBtn UI 구현

- App.js
    - ShowMoreBtn import
- ShowMoreBtn.jsx
    - UI 구현

* [#10] feat: ✨ Header Dropdown 구현

- App.js
    - Header 경로 수정
- Header.jsx
    - 경로 변경
    - HeaderLeft & Right 분리
- HeaderLeft.jsx
    - 컴포넌트화
    - Navigations 컴포넌트화
- HeaderRight.jsx
    - 컴포넌트화
- Navigations.jsx
    - 컴포넌트화
    - Dropdown 구현

* [#13] feat: ✨ API에 fetch 요청 로직 구현

* [#13] feat: ✨ API 요청, 베스트 기능구현
- BestItems.jsx
   - API 데이터 동기화
- BestTab.jsx
   - useState, useEffect, API 요청
- BestTabContainer.jsx
   - API 데이터 동기화
- BestTabNavigator.jsx
   - API 데이터 동기화
- ItemCard.jsx
   - prop 변경
- Label.jsx
  - COLOR변수 추가

* [#15] feat: ✨ 상세 modal 페이지 UI 구현
- App.js
   - PopUpContainer import
-  PopUpContainer.jsx
   - UI 구현
- PopUpImages.jsx
   - UI 구현
- PopUpInformations.jsx
   - UI 구현

Co-authored-by: kowoohyuk <kowoohyuk91@gmail.com>
Malloc72P pushed a commit that referenced this pull request Apr 27, 2021
Malloc72P pushed a commit that referenced this pull request Apr 27, 2021
Malloc72P pushed a commit that referenced this pull request Apr 27, 2021
Malloc72P pushed a commit that referenced this pull request Apr 27, 2021
Malloc72P pushed a commit that referenced this pull request Apr 27, 2021
Malloc72P pushed a commit that referenced this pull request Apr 27, 2021
crongro pushed a commit that referenced this pull request Apr 27, 2021
* [#1] feat : create CRA

 - CRA를 설치했습니다

* [#1] feat : mediumCard index.jsx prop 추가

 - 상동

* [#1] feat : node-sass 추가

 - node sass를 추가했습니다

* [#1] feat : 폴더 구조 정리

 - atoms, molecules, images 등 파일 구조 수정했습니다

* [#5] feat : reset scss 추가

- reset scss 추가
- 기본 글꼴 추가

* [#5] feat : button, icon, tag components 추가

 - atoms의 button, icon, tag component를 재사용 가능한 형태로 생성했습니다.

* [#5] feat: set moculses structure

- LargeCard 구조설정
- MediumCard 구조 설정

* [#5] chore : 잘못 생성된 파일 수정

 - 파일 명을 sidedish -> frontend로 바꾸는 과정에서 폴더 구성이 꼬여서 수정

* [#5] feat: molcules- LargeCard,MediumCard 구조 생성

* [#13] feat : MainDish, More 컴포넌트 생성

 - 신규 컴포넌트 생성: maindish, more organisms

* [#11] feat: fetch를 위한 util dir 생성

- util/loadData 생성 : fetch로 data가져오기
- util/url 생성: 기본 url주소 변수 설정

* [#11] feat: HeaderLeft 생성

* [#13] feat : MediumCard TagType 추가

 - 메인요리에 medium카드를 사용하기 위해 medium카드 일부 속성을 수정했습니다.

* [#13] feat : useFetch 컴포넌트 추가

 - fetch기능을 분리하기 위해 util-useFetch컴포넌트를 생성

* [#11] feat: Header 생성

- HeaderLeft 구조 생성
- HeaderRight 구조 생성
- BestDish 구조 생성 중

* [#11] feat: useFatch fetch오류 해결

* [#12] feat: BestDish useTabs hook 사용

* [#13] feat : 카드 캐로셀 기능 완성

 - setTimeout으로 렌더링을 지연시켜 캐로셀 기능을 완성

* [#12] feat: BestDish UI 및 기능구성

- Tab 버튼 클릭시 rendering
- Header Style 일부 수정 (HeaderRight,HeaderLeft,Span,Icon)

* [#13] feat: CSS style 수정

- innerTitle 설정

* [#13] feat: MainDish,SideDish,BestDish CSS style디테일 설정

- mainDish의 <Icon>,<Image> margin 설정

* [#13] fix : tag 버튼 오류, carousel 렌더링 지연 방식 변경

 - tag 가 이벤트 특가만 나타나는 오류 수정
 - carousel 렌더링 지연 방식을 setTimeOut ->  onTransitionEnd 로 변경

Co-authored-by: ink-0 <71919983+ink-0@users.noreply.github.com>
ksundong pushed a commit that referenced this pull request Apr 28, 2021
- 재고 있음 표시

issue: #5
ksundong pushed a commit that referenced this pull request Apr 28, 2021
- Section과 Category의 id를 이용하여 Item 가져오기 가능

issue: #5
ksundong pushed a commit that referenced this pull request Apr 28, 2021
- 404 Not Found를 위한 Exception

issue: #5
ksundong pushed a commit that referenced this pull request Apr 28, 2021
- ItemDetail을 위한 서비스

issue: #5
ksundong pushed a commit that referenced this pull request Apr 28, 2021
[BE] Service 구현 

issue: closes #5
crongro pushed a commit that referenced this pull request May 3, 2021
* Chore. Category 컴포넌트 생성

* Feat. Category UI #4

* Style. Add  Header Styled Component #18

* Style. Head style and react icon 추가 #18

* Feat. delivery 작업 중 #9

* Style: Category style #4

* Feat. hover & badge 완료

* Style: Category UI #4

* Feat. 초기데이터 fetch 요청
-Fetch custom Hook 작성
-초기데이터: 메인메뉴, 카테고리1번

* Feat. tabClick 효과 구현 #33, MainMenu Fetch #3

* Style. categorySlide 1줄 나열. #4

* Chore. 더보기 버튼 구현시작 #5

* Feat. 상세페이지 폼 구현
- 배경색설정/상세페이지 위치 가운데로 설정/x버튼구현
- x버튼 클릭  시 기존 페이지로 보여줌 #36

* Chore. 불필요한 코드, 파일 제외하여 pr하기

* Feat: toggle button #5

* Feat. 상세데이터 fetch  받아옴 #38

* Feat: loading 중에 loading 이미지 삽입 #5

* Fix: 호버 이미지에 margin 적용 제거 #4

* Style: cursor and category title

* Feat. 배포API주소로 변경 (CATEGORY제외)

* Fix. REACT WARNING 수정: HEADER styled-components 선언 위치 수정

* Feat: env 파일에 url 넣기

* Chore: fetch 대신 axios 이용

* Fix: fetch error 임시로 고침

- detail 컴포넌트에서 처음에 fetch 받는 데이터를 유효한 url로 주어서 에러가 나오지 않게 했다.

* Fix: fetch error fix

- fetch hook 에 null 이 들어오면 fetch 를 하지 않게 해서 처음랜더링 될때 fetch 하지 않게 했음
- 더보기 클릭 연속으로하면 나타나는 warning Warning: Can't perform a React state update on an unmounted component.
-> useEffect에 클린함수로 상태값 초기화 시켜줘서 해결

* Fix: loading 화면 띄우게 하기

* Feat: Error handling

- useFetch 안에서 error 처리

* Fix: FeedBack 반영

- component 명칭 통일

* Fix: Feedback 반영

- ModalMode  => modalMode

* Feat: add Modal component

* Feat: loading gif MainMenu

* Feat: error component

* Chore. 복구

* Chore.  error 수정

* Feat. portal사용-> modalError 수정

* Fix: header hover 에러 고침

* Feat: stock 0 일시 버튼 disable

* Refactor: OrderBtn

* Feat. 수량 onChange 작업 중

* Chore. PRICEE + STOCK  관리 추가 MERGING

* Feat. 상세페이지 이미지클릭시 대표이미지 변경

* Feat. error 컴포넌트생성

* Feat. errorPage에서 메인홈으로 이동

* Chore. rebase FE

* Chore. rebase 2/13

* Chore : .gitignore 파일 생성

* Chore : 프로젝트 폴더인 BE 폴더 안에 .gitignore 파일 생성

* Chore : side dish 스프링 부트를 이용한 gradle 프로젝트 생성

* Feat : jdbc를 이용한 mysql 연결을 위해 application.properties 설정

* Feat : side dish 프로젝트의 schema.sql 파일 생성

* Chore: .gitignore 추가

* Feat: dish 관련 클래스와 레포지토리 생성

기본 프로젝트 골격을 잡기 위해 Dish, DishController, DishRepository, DishService, BestDishResponseDTO의 틀 생성

* Feat: badge 관련 클래스와 레포지토리 생성

기본 프로젝트 골격을 잡기 위해 Badge, BadgeRepository 생성

* Delete BE directory

* Delete .gitignore

* Chore. merging(error+oath)

* Feat. useFetch method전달방식 변경
- Ooath 인증코드 8080 포트로 post요청
-cors blocked

* Feat. 캐러셀 상세페이지 적용

* Feat. DetailPage 미니캐러셀 구현 중

* Feat. 재고주문api요청보냄, but실패

* Style : detailpage

* -

* Feat. LOGIN 요청중

* Chore. 로그인 작업구현중

* Feat. 재고수량 DB 업뎃가능, (새로고침시만)

* Fix: error

* Feat. Login구현
-atomic component화

* Feat. 받은 토큰으로 다시 get요청 ->  로그인정보 가져오기 구현

* Refactor . 파라미터 분해할당

* Chore. 불필요한 constant파일 삭제

* Feat.로그아웃 api 요청

* Update README.md

* Chore. igonore설정

* Chore.

* Chore. 끝나지않는 merge

* Feat. 범용성있는  Carousel은 전역 폴더링.
-기타 중복 파일 삭제

Co-authored-by: eamon3481 <68339352+eamon3481@users.noreply.github.com>
Co-authored-by: jeong-inho <derosatam76@gmail.com>
Co-authored-by: Jeong InHo <63284310+eNoLJ@users.noreply.github.com>
crongro pushed a commit that referenced this pull request May 3, 2021
* [#1] feat : create CRA

 - CRA를 설치했습니다

* [#1] feat : mediumCard index.jsx prop 추가

 - 상동

* [#1] feat : node-sass 추가

 - node sass를 추가했습니다

* [#1] feat : 폴더 구조 정리

 - atoms, molecules, images 등 파일 구조 수정했습니다

* [#5] feat : reset scss 추가

- reset scss 추가
- 기본 글꼴 추가

* [#5] feat : button, icon, tag components 추가

 - atoms의 button, icon, tag component를 재사용 가능한 형태로 생성했습니다.

* [#5] feat: set moculses structure

- LargeCard 구조설정
- MediumCard 구조 설정

* [#5] chore : 잘못 생성된 파일 수정

 - 파일 명을 sidedish -> frontend로 바꾸는 과정에서 폴더 구성이 꼬여서 수정

* [#5] feat: molcules- LargeCard,MediumCard 구조 생성

* [#13] feat : MainDish, More 컴포넌트 생성

 - 신규 컴포넌트 생성: maindish, more organisms

* [#11] feat: fetch를 위한 util dir 생성

- util/loadData 생성 : fetch로 data가져오기
- util/url 생성: 기본 url주소 변수 설정

* [#11] feat: HeaderLeft 생성

* [#13] feat : MediumCard TagType 추가

 - 메인요리에 medium카드를 사용하기 위해 medium카드 일부 속성을 수정했습니다.

* [#13] feat : useFetch 컴포넌트 추가

 - fetch기능을 분리하기 위해 util-useFetch컴포넌트를 생성

* [#11] feat: Header 생성

- HeaderLeft 구조 생성
- HeaderRight 구조 생성
- BestDish 구조 생성 중

* [#11] feat: useFatch fetch오류 해결

* [#12] feat: BestDish useTabs hook 사용

* [#13] feat : 카드 캐로셀 기능 완성

 - setTimeout으로 렌더링을 지연시켜 캐로셀 기능을 완성

* [#12] feat: BestDish UI 및 기능구성

- Tab 버튼 클릭시 rendering
- Header Style 일부 수정 (HeaderRight,HeaderLeft,Span,Icon)

* deploy : build 210423

* [#13] feat: CSS style 수정

- innerTitle 설정

* chore: add gitginore

* chore: Add basic gradlew files

* [#13] feat: MainDish,SideDish,BestDish CSS style디테일 설정

- mainDish의 <Icon>,<Image> margin 설정

* [#13] fix : tag 버튼 오류, carousel 렌더링 지연 방식 변경

 - tag 가 이벤트 특가만 나타나는 오류 수정
 - carousel 렌더링 지연 방식을 setTimeOut ->  onTransitionEnd 로 변경

* deploy : build 210424

* [#25] feat : Detail UI 컴포넌트 생성

 - Detail UI 를 위한 InfoGeneral, InfoImages, InfoNumber, InfoPrice, InfoProduct molecules 컴포넌트 생성

* [#24] feat: ADD tab click event(color change)

- Fix MediumCard Tag 부분

* [#25] fix : icon onClick 이벤트 실행 로직 수정

 - icon이 left, right 일 경우에만 moveSlide이벤트가 실행되도록 수정

* [#24] feat: ADD Img MouseOver event

- useState를 통한 isHover로 상태변경 가능

* [#24] feat: Fix CSS Detail in HoverEvent

* deploy : build 210427

* [#24] feat: ADD HeaderDrop event

- Header MouseOver 시 Drop event 추가
- Header DropMenu MouseOver 시 hover event 추가
- Private Component 이름 통일변경 (ex Div -> WrapDiv)
- Component들의 inex.style.jsx 추가 (Styled div 분리)

* [#25] fix : MainDish Carousel 스타일 적용 함수 분리

 - MainDish 스타일 및 매직넘버 삭제

* [#37] refactor : 코드리뷰 반영

 - useFatch 구조 변경 : loadData 컴포넌트 생성해서 데이터만 받아오고 useEffect는 각 컴포넌트에서 실행
 - tag 내용 및 컨텐츠 적용 방식 수정
 - span 스타일 컴포넌트 적용방식을 className 사용으로 변경

* [#25] feat : Detail UI 컴포넌트 수정

 - pages 컴포넌트 생성

* [#25] feat : Modal 컴포넌트 생성

- 모달 컴포넌트 생성 및 클릭 후 모달 오픈, close 버튼 클릭시 숨김 기능 구현

* [#25] feat: Modal data fetch 연결

* deploy : build 210428

* deploy : rebuild 210428

* deploy : rebuild 210428

* deploy : rebuild 210428

* build : rebuild 210428

* [#26] feat : 상세페이지 내 이미지 이벤트 추가

 - 이미지 및 썸네일 추가
 - 썸네일 클릭 시 메인 이미지 변경 이벤트 추가

* [#26] feat : large 카드에 모달 이벤트 추가

- large 카드에도 모달 이벤트를 추가했으나, 아직 베스트 반찬에는 데이터 api를 못받아오고 있으므로 실행은 되지 않게끔 주석처리 했습니다

* [#27] feat: Detail - Info UI 생성 및 fetch data 연결

* deploy :build 210429

* [#27] feat: Fix syntax error

* build : build 210429

* [#26] refactor : carousel 컴포넌트 생성

- 라이브러리화를 위해 carousel 컴포넌트 생성

* build : rebuild 210429

* build : rebuild 210429

* [#26] refactor : carousel 컴포넌트 완성

carousel, carousel style 컴포넌트를 mainDish 컴포넌트에서 분리 완료

* [#26] feat : OtherCard, DetailOther 컴포넌트 생성

 - 디테일 Carousel 작업을 위해 상기 컴포넌트 생성

* [#27] feat: Datail CSS UI 수정

- UI: BestMenu 오른쪽마진 수정
- UI: HoverCard 가운데 정렬  수정
- UI: Mouse cursor 디테일 설정
- feat: useTabs 삭제 및 component내부로 수정
- faet: getComma 파일생성 ( 원, (,) 넣는 함수)

* deploy : rebuild 210429

* deploy : build 210430

* [#27] FE API data fetch 연결 확인

* [#45] FE API data fetch 연결 확인

* [#26] feat : OtherCard 스타일 적용 완성

 - Other Card의 레이아웃 완성

* [#26] feat : OtherCard 케로셀 적용 중

* [#45] feat: 디테일한 CSS UI 구성

* [#26] feat : OtherCard 케로셀 완료

- portal을 적용해서 기존 캐러셀 컴포넌트를 재활용할 수 없는 관계로 캐로셀을 중복해서 사용함

* [#45] feat: fetch Data API and 합치기

* [#45]feat: Details 파일명 변경 및 데이터 전달

* [#45] feat:Details close error 해결

* [#45]feat: CSS style 수정

* [#45] feat: Image data 수정

* fix : Change directory name to camel case

Co-authored-by: ink-0 <71919983+ink-0@users.noreply.github.com>
Co-authored-by: woody <woojihye2339@gmail.com>
Co-authored-by: Tree <gmldbs1109@naver.com>
Co-authored-by: Ubuntu <ubuntu@ip-172-31-44-162.ap-northeast-2.compute.internal>
crongro pushed a commit that referenced this pull request May 4, 2021
* [#1] init: 🎉 개발 환경 구축

* [#3] feat: ✨ Header 만들기

* [#5] feat: ✨ BestTab UI 구현

- BestTab UI
- 상수 파일
    - const.js
- 재사용 컴포넌트
    - Label.jsx
    - ItemCard.jsx

* [#7] feat: ✨ Slide UI 구현

- App.jsx
    - SlideContainer import
- BestItem.jsx
    - 삭제 (미사용)
- BestItems.jsx
    - ItemCard prop 추가
- BestTab.jsx
    - 스타일 수정
- SlideContainer.jsx
    - UI 구현
- SlideItems.jsx
    - UI 구현
- SlideArrowBtn.jsx
    - UI 구현
- ItemCard.jsx
    - 스타일 수정
    - prop 추가
- Label.jsx
    - prop 추가
    - 기본 값 추가

* [#8] feat: ✨ ShowMoreBtn UI 구현

- App.js
    - ShowMoreBtn import
- ShowMoreBtn.jsx
    - UI 구현

* [#10] feat: ✨ Header Dropdown 구현

- App.js
    - Header 경로 수정
- Header.jsx
    - 경로 변경
    - HeaderLeft & Right 분리
- HeaderLeft.jsx
    - 컴포넌트화
    - Navigations 컴포넌트화
- HeaderRight.jsx
    - 컴포넌트화
- Navigations.jsx
    - 컴포넌트화
    - Dropdown 구현

* [#13] feat: ✨ API에 fetch 요청 로직 구현

* [#13] feat: ✨ API 요청, 베스트 기능구현
- BestItems.jsx
   - API 데이터 동기화
- BestTab.jsx
   - useState, useEffect, API 요청
- BestTabContainer.jsx
   - API 데이터 동기화
- BestTabNavigator.jsx
   - API 데이터 동기화
- ItemCard.jsx
   - prop 변경
- Label.jsx
  - COLOR변수 추가

* [#15] feat: ✨ 상세 modal 페이지 UI 구현
- App.js
   - PopUpContainer import
-  PopUpContainer.jsx
   - UI 구현
- PopUpImages.jsx
   - UI 구현
- PopUpInformations.jsx
   - UI 구현

* [#16] feat: ✨ 모달 페이지 이벤트 구현중

* [#16] feat: ✨ 수량정보 컴포넌트 분리

* [#19] refactor: 🔨 리팩토링, 부족한 부분 추가 구현
- 파일 및 폴더 구조 변경
   - common 폴더 생성
- Context.jsx
   - useContext 사용하여 prop drilling 개선
- 팝업 이벤트 구현
   - 수량 변경
   - 주문하기
   - 주문결과 안내 메시지 UI

* [#19] refactor: 🔨 리팩토링

* [#17] feat: ✨ dj-slider 폴더구조 구축

* [#17] feat: ✨ 슬라이드 1/2 구현 중

* [#23] refactor: 🔨 코드 리뷰 코멘트 반영 및 개선

* [#17] feat: ✨ 슬라이드 구현중/일부사항 수정
- util.js
   - price에 comma 붙이는 기능 구현
- PopUpItemCountContainer.jsx
   - price에 comma 붙이는 기능 import
- ItemCard.jsx
   - price에 comma 붙이는 기능 import
   - 이미지 background로 수정
- Label.jsx
   - 라벨 배경색상 적용

* [#17] feat: ✨ 슬라이드 구현중

- 모듈화
   - 시연을 위한 기능 구현을 위해 보류

* [#25] feat: ✨ 슬라이드 2/2 구현, API 데이터 동기화

- 슬라이드 명칭을 캐로셀로 변경
- API 데이터 동기화
- 캐로셀의 ItemCard를 children으로 변경
   - 모듈화를 위함!
- 아이템카드 mini, large 프로퍼티 추가
- 상세모달 캐로셀 추가
- 상세모달 스크롤 추가
- 모든 카테고리 보기 기능 구현

* [#27] feat: ✨ BestTab Skeleton UI 만들기

- Main.jsx
   - 시연을 위한 loop 설정 추가
- BestTab.jsx
   - SkeletonTab import
- BestTabNavigator.jsx
   - 주석 제거
- SkeletonTab.jsx
   - Skeleton UI 구현
- DicoJsonCarousel.jsx
   - Carousel 구현중

* [#29] feat: ✨ PopUp Skeleton UI 만들기

- Context.jsx
   - 주석 제거
- BestTab.jsx
   - 주석 제거
- PopUpContainer.jsx
   - Skeleton import
- PopUpItemsSlide.jsx
   - 주석 제거
- SkeletonPopUpContainerBody.jsx
   - Skeleton UI 구현

* feat: ✨ carousel loop 기능 구현

* [#31] feat: ✨ README.md 작성완료

Co-authored-by: kowoohyuk <kowoohyuk91@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
review-FE FE 리뷰
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants