release/v2.0.0#333
Merged
Merged
Conversation
* feat: 프로젝트 초기 세팅 * feat: eslint "import/order" 설정 추가 * fix: prettier "semi" 설정값 true로 수정
* chore: style-dictionary 설치 * feat: 시멘틱 컬러 디자인 토큰을 테일윈드 css 변수로 적용 * feat: 폰트 디자인 토큰 적용 * fix: label-xs 폰트 사이즈 수정 * feat: scheme (gap, radius, stroke, opacity) 토큰 설정 * rename: 폰트 css 파일명 변경 (index.css -> typography.css) * fix: 디자인 토큰 파일 위치 styles/tokens/으로 변경 * feat: environment 토큰 설정 (shadow, motion) * feat: index.js 로 토큰 css파일 한번에 import 하기 * feat: typescript-eslint/naming-convention 설정 * feat: 글로벌 스타일 설정 (폰트) * fix: font-display 속성 block으로 변경 * chore: zustand 설치 * fix: font-display 속성 swap 으로 변경 * rename: build-tokens.js -> token.config.js로 파일명 변경, index.js -> index.ts로 변경 * fix: 타이포그래피 @layer utilities 사용 * remove: 불필요한 코드 제거 * remove: 주석 제거
* Add qodana.yaml file * Add github workflow file --------- Co-authored-by: Qodana Application <qodana-support@jetbrains.com>
* chore: storybook 패키지를 설치합니다. * chore: ts컴파일러에 스토리북을 포함시킵니다. * fix: naming convention 설정이 rules에 포함되도록 구문을 수정합니다. * feat: eslint ignore 옵션에 storybook 디렉토리를 추가합니다. * feat: storybook preview에 디자인 토큰 경로를 추가합니다. * feat: storybook preview 시 개발 환경과 동일한 스타일 설정을 주입합니다. * move: 기본적으로 설치된 스토리북 예시 파일을 삭제합니다. * feat: 스토리북 테스트를 위한 버튼 컴포넌트를 생성합니다. * feat: 버튼 컴포넌트에 대한 스토리북 코드를 추가합니다. * chore: dev dependencies에 chromatic 패키지를 설치합니다. * feat: 스토리북 자동 배포를 위한 yml 파일을 작성합니다. * feat: chormatic 명렁어를 삽입합니다. * feat: 버튼 디버깅을 위해 width 속성을 수정합니다. * chore: eslint 추가 설정을 위한 패키지를 설치합니다. * move: 사용하지 않는 tailwind 설정 파일을 제거합니다. * feat: 추가 패키지를 통해 eslint와 prettier에서 충돌이 나는 구간을 제어합니다. * fix: 수정된 eslint 설정에 맞춰 스토리북 코드를 수정합니다.
* feat: 폴더 아키텍처 설정 (임시파일생성) * chore: 절대 경로 처리를 위한 @types/node 모듈 설치 * feat: @(src) 절대 경로 설정 * fix: main.tsx 절대 경로로 import 하기 * chore: Tanstack query 관련 모듈 설치 * feat: eslint-plugin-query 플러그인 설정 * style: 파일 import 시 확장자 제거
* feat: 정적 분석 스크립트에 커스터마이징 옵션을 추가합니다. * feat: 스크립트 실행 시 의존성 설치를 선행하도록 처리합니다. * chore: yml파일의 네이밍을 수정합니다.
* feat: Interaction 컴포넌트 구현 * feat: Interaction의 공통 스타일 분리 (.interaction) * remove: 필요하지 않은 opacity 토큰 제거 tailwind 자체에서 제공하는 스타일과 동일하게 사용 가능 * fix: interaction 유틸리티 오류로 분리 작업 원상복귀 * Merge branch 'dev' of https://github.com/JECT-Study/JECT-Official-WebSite-Client into feat/9-interactionComponent * move: Interaction 파일 common 폴더로 이동 * feat: Interaction 스토리북 작성 * feat: InteractionStyle 객체 정의 * refactor: InteractionStyle 객체 활용하여 중복되는 코드 정리 * fix: tailwind의 클래스 네임 동적 구성으로 인한 오류 해결 객체에 저장된 클래스 네임을 완전한 클래스 네임으로 변경 * fix: 변경한 interactionStyle 객체 적용 * feat: 인터렉션 스토리북 추가 작성 * rename: 스토리 변수 대문자로 변경 * feat: eslint const 네이밍 컨벤션 PascalCase 허용 * feat: radius 기본값 빈문자열로 처리
* feat: Badge 컴포넌트 구현 * feat: Label 컴포넌트 구현 * feat: Badge 컴포넌트 재구현 Label 컴포넌트 이용 * feat: Badge 스토리북 작성 * feat: Label 스토리북 작성 * style: Label 객체 구성 수정 및 객체명 변경 * style: 코드 정리 * rename: 스토리 이름 Primary로 변경
* feat(preview.ts): 스토리북 배경색 dark로 기본 설정 * feat: Label의 텍스트 children으로 받도록 수정 * fix: Badge에 변경된 Label 적용 * feat: Label 스토리북 argTypes 및 폰트 색상 수정 * feat: 인터렉션 컴포넌트 수정 - 배경색 없는 자식 요소도 잘 동작하도록 함 - props명 변경 및 추가 * feat: 인터렉션 스토리북 수정 * style: Badge 및 Label 스토리 타입 코드 정리 * feat: 인터렉션 description 추가 * feat: ReactNode import 하기 * feat: Badge 컴포넌트 text props -> children으로 변경 * style: 타이포그래피 오타 수정 * feat: Badge, Interaction, Label 스토리북 컴포넌트 방식의 스토리 작성 * feat: 인터렉션 childHasBg, childRadius 값 받지 않고 인터렉션 내부에서 접근하도록 수정 * feat: 인터렉션 스토리북 수정
* feat: Title 컴포넌트 구현 * feat: Title 스토리북 작성 * fix: border-radius 스킴 토큰 오버라이딩 실패 문제로 토큰 파일 수정 * feat: CalloutNumerical 컴포넌트 구현 * feat: CalloutInformation 컴포넌트 구현 * feat: HeroIndex 컴포넌트 구현 * feat: Hero 컴포넌트 구현 * feat: HeroIndex의 index min-width 설정 * feat: CalloutNumerical 스토리북 작성 * feat: CalloutInformation 스토리북 작성 * feat: HeroIndex 스토리북 작성 * feat: Hero 스토리북 작성 * feat: Title ReactNode import 하기 * remove: titleStyle lineHeight 제거 * remove: labelStyle lineHeight 제거 * feat: 22PR 변경된 Label Badge 컴포넌트 반영 * feat: Title 스토리객체 타입 수정
* feat: ProgressIndex 컴포넌트 구현 * feat: ProgressBridge 및 ProgressIndicator 컴포넌트 구현 * feat: ProgressItem 컴포넌트 구현 * feat: Title textColor 선택적인 Prop 추가 * feat: ProgressVerticalBridge 구현 * feat: Progress 관련 스토리북 작성 (Bridge 컴포넌트 제외) * refactor: active style 상수 분리 * remove: console.log 제거 * feat: new Array -> Array.from() 방식으로 변경 * feat: Title || -> ?? 널 병합 연산자로 변경 undefined, null 일 경우에만 기본 폰트 색상 적용 (빈문자열과 같이 실수로 값을 넣었을 경우는 스타일 적용 X)
* chore: tailwind 사용 시 편의성을 위해 clsx 패키지를 설치합니다. * move: 예시로 사용된 버튼 컴포넌트를 제거합니다. * feat: BlockButton 컴포넌트를 구현합니다. * feat: BlockButton의 스토리북을 추가합니다. * feat: LabelButton 컴포넌트를 구현합니다. * feat: LabelButton의 스토리북을 추가합니다. * feat: storybook에서 사용할 수 있는 스타일 시트를 추가합니다. * feat: storybook이 기본적으로 docs를 생성하도록 설정합니다. * refactor: 버튼 컴포넌트들의 타입명을 수정합니다. * refactor: 스토리북 상에서 다양한 버튼을 표현하도록 수정합니다. * typo: import 파일의 네이밍 오류를 수정합니다. * typo: 스타일 파일에 잘못 선언된 스타일을 수정합니다. * typo: radius의 유틸리티 값 네이밍을 수정합니다. * feat: Interaction 컴포넌트를 적용하기 위한 맵 객체를 선언합니다. * feat: 선언한 map 객체를 이용해 BlockButton에 인터렉션을 적용합니다. * feat: 선언된 radius를 추출하기 위한 유틸리티 함수를 구현합니다. * refactor: 유틸리티 함수를 이용해 BlockButton의 radius 값을 Interaction 컴포넌트에 전달합니다. * feat: blockButton의 맵 객체 네이밍을 구체화합니다. * feat: labelButton의 Interaction 스타일 객체를 선언합니다. * feat: labelButton에 Interaction 컴포넌트를 적용합니다. * refactor: 수정된 Interaction 컴포넌트는 더이상 radius를 props로 받지 않습니다. * refactor: 버튼 컴포넌트가 Interaction 컴포넌트에 맞춰진 radius를 가지도록 설정합니다. * move: 사용하지 않는 유틸리티 함수를 삭제합니다. * feat: Interaction 컴포넌트에 outlineOffset 설정을 추가합니다. * feat: LabelButton의 스타일 객체에 사이즈 별 offset 값을 추가합니다. * refactor: labelButton이 Interaction 시에 offset 값을 동적으로 할당합니다. * feat: 동적 스타일링을 위한 매핑 객체를 생성합니다. * refactor: Interaction의 동적 스타일링 방식을 수정합니다.
* feat: 아이콘 13개 컴포넌트 구현 * feat: 아이콘 사이즈 스타일 객체 생성 * feat: 아이콘 사이즈 스타일 객체 생성 * feat: 아이콘 스토리북 작성 * feat: 스토리북 description 컴포넌트 이름 수정 * remove: 아이콘 개별 컴포넌트 삭제 * remove: 아이콘 개별 컴포넌트 스토리북 삭제 * chore: vite-plugin-svgr 설치 * chore: svg 아이콘을 컴포넌트로 사용하기 위한 설정 * feat: assets/svg 위치에 아이콘 svg 파일들 추가 * feat: 아이콘 통합 컴포넌트 생성 및 아이콘 이름 타입 정의 * feat: Icon 컴포넌트 스토리북 작성 * feat: Icon 컴포넌트 switch -> 객체 매핑 방식으로 변경
* fix: 인터렉션 재구현 - 인터렉션 scale 값으로 크기 조정 - 인터렉션 컴포넌트 부모 자식 관계 -> 형제 관계로 방식 변경 * design: semantic 토큰 업데이트 * feat: Interaction 컴포넌트 isInversed props 추가 * feat: 수정된 interactionStyle 반영 * remove: 불필요 코드 삭제 * feat: Interaction 컴포넌트 className props 추가 * feat: 인터렉션 스토리북 수정 * fix: LabelButton import 버그 수정 * remove: semantic.json 파일 삭제 * docs: token.config.js 에 semantic.css 파일 생성 방법 주석 달기 * style: Interaction className 코드 줄바꿈
* feat: InputTextArea 컴포넌트 구현 * Merge branch 'dev' of https://github.com/JECT-Study/JECT-Official-WebSite-Client into feat/24-input * feat: TextAreaField 컴포넌트 분리, AnswerBox로 컴포넌트명 변경 * design: InputField grow 값 수정 * feat: environment의 duration 토큰 값 생성 * feat: AnswerBox, InputField 컴포넌트 스토리북 작성 * feat: InputField, TextAreaField에 duration 및 motion 적용 * rename: AnswerBox -> InputArea 로 컴포넌트명 변경 * rename: InputField -> Input 컴포넌트명 변경 * feat: Input 스토리북 아이콘 스토리 추가 * rename: TextAreaField -> TextArea로 컴포넌트명 변경 * feat: InputArea required args 추가 * style: TextArea 코드 정리 * style: Input 코드 정리 * feat: Label cursor-default 속성 추가 * style: inputArea 코드 정리 * feat: InputField 버튼 요소들 children으로 전부 변경 * feat: Input 스토리북 수정 * feat: InputField 불필요한 props 제거 * feat: InputField 스토리북 작성 * style: TextArea 코드 정리 * feat: input, textarea 요소 타입 ComponentPropsWithoutRef 사용
* chore: react-router-dom 설치 * feat: router 세팅 및 /apply 라우터 설정 * feat: ProgressItem의 content prop 타입 ReactNode로 변경 * feat: client-apply-01 페이지 UI 구현 (버튼 제외) * feat: 지원하기 링크 클릭 시 페이지 하단으로 이동 * fix: 아이콘 설정 추가 * feat: 지원 하기 버튼 생성 * feat: ProgressItem p 태그 -> div 태그로 변경 * feat: 머지시 충돌있었던 파일 병합 * remove: 불필요한 코드 제거 * feat: moveToBottom utils 함수 생성 * feat: CreateNewTab 컴포넌트 생성 - 새로운 탭으로 하이퍼링크 열기 * rename: scrollFucion -> scrollFunction으로 파일명 오타 수정 * feat: apply page에 필요한 데이터 객체 배열 생성 * feat: 리팩토링 및 지원하기 버튼 ui 구현 * style: 코드 스타일 정리 * remove: router.tsx 파일 이동 * fix: router import 경로 수정 * feat: now -> currentDate로 변수명 변경 및 applyData 객체 id 값 추가 * feat: 지원하기 페이지 타이틀 상수화 * rename: CreateNewTab -> NewTabLink 컴포넌트명 수정
* feat: Post 컴포넌트를 퍼블리싱 합니다. * feat: Post 컴포넌트의 스토리북을 추가합니다. * feat: Card 컴포넌트를 퍼블리싱 합니다. * feat: 스토리북을 위한 샘플 이미지를 추가합니다. * feat: Card 컴포넌트의 스토리북을 추가합니다. * feat: descriptionVisible props에 따라 children 요소의 출력 유무를 조건부로 렌더링합니다. * feat: 조건부 렌더링 시 분기가 필요한 태그를 반영합니다. * feat: 추가된 props를 스토리북에 반영합니다. * fix: 공용 컴포넌트가 단독 디렉토리를 가지도록 수정합니다. * rename: boolean typo의 props 네이밍을 수정합니다. * refactor: 부모 container에 items-stretch를 적용하고, flex grow를 적용합니다. * feat: 스토리북에 기본 args를 주입합니다.
* feat: Tab 컴포넌트를 구현합니다. * feat: Tab 컴포넌트의 스토리북을 추가합니다. * feat: Tab 컴포넌트에 Interaction을 적용합니다. * feat: active 시 TabItem의 stroke가 기본 stroke에 올라오도록 합니다. * refactor: context API를 사용하여 Tab의 전반적인 콘텐츠와 탭 헤더를 관리합니다. * feat: 실질적인 메인 인터페이스를 분리합니다. * typo: 컴포넌트와 인터페이스의 네이밍을 단수형으로 수정합니다. * feat: 수정된 컴포넌트를 스토리북에 반영합니다. * refactor: tab의 id를 number 형태로 변환합니다. * refactor: tab header의 width를 100%로 처리합니다. * feat: 추가적인 케이스의 스토리북을 주입합니다. * feat: 태그에 명시적인 aria-label을 추가합니다.
* feat: faq 페이지 및 라우터 생성 * move: Badge, Label, Title 폴더로 묶음 * feat: Badge, Label, Title 변경된 경로 수정 * fix: Title textColor null 타입 허용 * feat: Accordion 컴포넌트 생성 * feat: list-ject(list-style-type) 유틸리티 스타일 생성 * feat: faq '지원 관련' TabPanel 구성 * feat: Accordion 컴포넌트 expand 아이콘 및 캡션 prop 추가 * feat: FAQ 페이지 데이터 객체 배열 생성 * feat: list-decimal margin 수정 및 list-ject -> list-disc-ject 로 스타일 네이밍 변경 * feat: Faq 페이지 컴포넌트 faq 객체 데이터 적용 * feat: Accordion 스토리북 작성 * fix: Accordion 컴포넌트, ref 이용한 스타일 주입 방식 -> className에 직접 조건부 처리 방식으로 변경
* move: 불필요한 import 문을 제거합니다. * feat: Select 컴포넌트를 구현합니다. * feat: Select 컴포넌트의 스토리북을 추가합니다. * feat: Select 컴포넌트에 Interaction을 주입합니다. * feat: Interaction 사용시 duration과 motion 속성을 추가합니다. * refactor: Select 컴포넌트에 disabled props를 추가합니다. * feat: 수정된 컴포넌트를 스토리북에 반영합니다. * fix: 적용되지 않던 motion과 duration 스타일을 수정합니다. * refactor: SelectItem의 인터페이스 구조를 확장성 있게 변경합니다. * fix: 최상위 div의 width를 100%로 수정합니다. * rename: rest props의 네이밍을 직관적으로 수정합니다. * rename: props로 전달된 onClick 핸들러의 이름을 구분 짓습니다. * refactor: Select 컴포넌트에 defaultValue 옵셔널 props를 추가합니다.
* feat: blockButton의 Interaction에 isInversed 값을 추가합니다. * feat: button 컴포넌트에 peer 스타일을 추가합니다. * refactor: BlockButton에 disabled 속성을 추가합니다. * feat: BlockButton의 disabled case의 추가에 맞춰 스토리북을 수정합니다. * feat: Icon이 있을 시에 disabled 케이스를 추가합니다. * feat: BlockButton의 Interaction에 motion과 duration을 추가합니다. * refactor: LabelButton에 disabled 속성을 주입합니다. * move: 더 이상 사용하지 않는 Interaction 관련 객체를 제거합니다. * feat: LabelButton의 Interaction에 isInversed 요소를 추가합니다. * feat: LabelButton의 Interaction에 duration과 motion을 추가합니다. * feat: LabelButton의 Interaction에 scale을 주입합니다. * feat: 수정된 LabelButton을 스토리북에 반영합니다. * feat: LabelButton에 Interaction 주입을 위한 peer 속성을 추가합니다. * rename: 버튼 컴포넌트들의 스토리북 네이밍을 컴포넌트 이름과 통일합니다. * feat: SnackBar 컴포넌트를 구현합니다. * feat: SnackBar 컴포넌트의 스토리북을 추가합니다. * feat: LabelButton의 children을 옵셔널로 수정합니다. * feat: LabelButton에서 아이콘만 있는 스토리를 추가합니다. * refactor: onAction props를 옵셔널에서 필수로 변경합니다.
* feat: 인터렉션 스타일 네임 생성 * feat: global.css에 interaction.css 등록 * remove: 기존 인터렉션 컴포넌트, 스토리북, 스타일 파일 삭제 * fix: 기존 인터렉션 적용되어있던 컴포넌트에 새로운 인터렉션 스타일 적용 * feat: transition-faster-fluent 스타일 정의 * refactor: transition-faster-fluent 공통으로 들어가는 곳에 적용 * fix: Variant, Density 타입 생성하여 eslint 에러 해결
* feat: Header, Footer 컴포넌트 생성 * feat: Layout 컴포넌트 생성 * feat: 레이아웃 라우터 설정 * feat: Logo 컴포넌트 구현 * feat: NavigationItem 컴포넌트 구현 * feat: /project, /activity 라우터 생성 및 pathName 타입 생성 * feat: NavigationItem path에 따라 UI 변경 * feat: Navigation 컴포넌트 구현 * feat: Header 구현 * fix: NewTabLink 컴포넌트 children 타입 ReactNode로 변경 * feat: Footer 컴포넌트 구현 * chore: footer 용 유튜브 svg 생성 * fix: Navigation 컴포넌트 시멘틱 태그 활용 * feat: PageContainer 생성 - page 컴포넌트들의 높이, 배경색 지정 * refactor: NavigationItem button props 제거 및 disabled props 추가 * move: PathName 타입 NavigationItem.tsx로 이동 * feat: Navigation Logo 홈 이동 기능 구현 및 focus-visible 스타일 지정 * feat: Footer의 젝트 소개 문구 및 이메일 상수화 * rename: Footer, Header, Layout, PagesContainer 파일 위치 수정 * fix: NavigationItem의 PathName 타입 수정 * feat: Footer, Navigation, NavigationItem 컴포넌트 스토리북 작성 * fix: router Layout import 경로 수정 * fix: faq 페이지 main태그->section태그로 변경 * feat: Logo 스토리북 작성 * remove: Logo 스토리북 불필요한 코드 제거 * fix: Navigation 스토리북 스토리 수정 * rename: ject.ts -> footer.ts 로 파일명 변경 * feat: 네비게이션 PathName 타입 생성 * fix: 생성한 PathName 타입 적용 * feat: footer.ts 상수 임포트 경로 수정 * feat: PATH 네임 상수화 * feat: PathKeys, PathValues 타입 생성 * refactor: PATH 상수 적용 * fix: NavigationItem pathName 타입 PathValues 로 지정 * remove: 불필요파일 삭제 * fix: NavigationItem, button -> NavLink 태그로 변경 및 인터렉션 재적용 * fix: NavigationItem className 띄어쓰기 추가 * feat: NavigationItem disabled 상태 태그 제거
* refactor: Card 컴포넌트의 최상위 태그를 button으로 변경합니다. * feat: Card 컴포넌트에 Interaction을 주입합니다. * refactor: Card 컴포넌트에 disabled 속성을 추가합니다. * refactor: Card 컴포넌트의 사진이 출력되는 구조를 변경합니다. * feat: Card 컴포넌트의 imageContainer에 하단 border을 추가합니다. * feat: 스토리북에 disabled의 사례를 추가합니다. * feat: disabled의 유무에 따라 cursor 이벤트를 추가합니다. * feat: Card 컴포넌트의 disabled 기본 옵션을 추가합니다. * refactor: Post 컴포넌트에 disabled 속성을 추가합니다. * fix: 잘못적용된 Interaction의 duration을 수정합니다. * feat: Post 컴포넌트에 Interaction을 주입합니다. * feat: Post 컴포넌트에 Pointer 이벤트를 추가합니다. * feat: Post 컴포넌트의 실제 사용 예시와 disabled 케이스를 추가합니다. * refactor: 스타일링을 내부 clsx로 통일하여 관리합니다. * refactor: 최상위 button 태그를 a 태그로 수정합니다. * feat: 텍스트가 표현되는 부분에 truncate 클래스를 주입합니다. * refactor: Label와 Title 컴포넌트에 스타일을 오버라이딩 할 수 있는 요소를 추가합니다. * refactor: Card 컴포넌트의 텍스트 요소들이 오버플로우 시 말줄임표 처리를 합니다. * fix: 잘못 적용된 border을 수정합니다. * refactor: Post 컴포넌트의 최상위 태그를 a 태그로 변경합니다. * refactor: Post 컴포넌트에서 잘못 적용된 스타일링을 수정합니다. * feat: Post 컴포넌트의 args를 주입하여 Default 케이스를 생성합니다. * refactor: Post 컴포넌트의 구조를 변경하고, 말줄임표 처리가 될 수 있도록 합니다. * move: disabled 시 선언된 불필요한 속성을 제거합니다. * refactor: Card 컴포넌트의 최상위 태그를 Link 태그로 변경합니다. * refactor: Card 컴포넌트의 스토리북에 MemoryRouter을 주입 후 To 기본 설정을 추가합니다. * refactor: 덮어씌워지는 block 요소를 제거 후 className으로만 스타일을 재설정합니다. * refactor: 내용 필드의 height를 재주입합니다. * refactor: Post 컴포넌트에서 덮어씌워지는 block 요소를 제거 후 className으로만 스타일을 재설정합니다. * move: 사용하지 않게된 date props를 제거합니다. * refactor: Post 컴포넌트의 수정된 구조를 반영합니다. * feat: a 태그에 적합한 기본 target과 rel을 추가합니다. * feat: Post 컴포넌트의 기본 target과 rel 설정에 대한 설명을 스토리북에 추가합니다. * feat: Post 컴포넌트의 스토리북에 href를 사용하는 케이스를 추가합니다. * refactor: Title 컴포넌트 구조를 단순화합니다. * refactor: Label 컴포넌트 구조를 단순화하고 className props를 제거합니다. * refactor: Interaction 컴포넌트를 제거하고, className으로 말줄임표 처리를 처리합니다. * feat: 자주 사용되는 interaction의 케이스를 추가합니다. * refactor: 수정된 Interaction을 Post에 재적용합니다. * fix: 수정된 interaction의 네이밍을 적용합니다. * refactor: 수정된 Interaction을 Card 컴포넌트에 적용합니다. * move: 사용하지 않는 className을 제거합니다. * refactor: focus 효과는 키보드 사용자에게만 나타납니다.
* feat: 이미지 asset을 png 형태로 추가합니다. * feat: Badge 컴포넌트를 구현합니다. * feat: Badge 컴포넌트의 storybook을 추가합니다. * feat: Role 컴포넌트 중 Hero를 구현합니다. * feat: Hero 컴포넌트의 스토리북을 추가합니다. * fix: 스토리북의 title을 중복되지 않게 수정합니다. * fix: props의 네이밍을 직관적으로 수정합니다. * refactor: 단순한 스타일을 템플릿 리터럴 형식으로 수정합니다. * rename: 공통된 이름을 가진 Badge를 RoleBadge로 네이밍을 수정합니다. * rename: 공통된 이름을 가진 Hero를 RoleHero로 네이밍을 수정합니다. * refactor: img의 alt 네이밍을 직관적으로 수정합니다. * refactor: 최상위 div의 스타일을 템플릿 리터럴 형태로 변경합니다. * move: 불필요한 import 문을 제거합니다. * move: 불필요한 import 문을 제거합니다. * refactor: 컴포넌트 배경에 반영된 opacity를 반영합니다. * refactor: 공통적으로 사용되는 타입을 분리합니다. * fix: opacity 스타일 적용 방식을 변경합니다.
* feat: Dialog 컴포넌트 구현 * feat: useDialog 훅 생성 * feat: Dialog 스토리북 작성 * remove: 불필요한 index.ts 파일 삭제 * refactor: useDialog useState 타입 명시 제거 * fix: props 네이밍 변경 및 btnLayout에 따른 버튼 위치 수정 + 스토리북 수정 * feat: Dialog BlockButton className 제거
* chore: 파비콘 png 추가 * chore: index.html 파비콘 설정
* chore: 새로운 아이콘 svg 파일 6개 추가 * feat: 아이콘 컴포넌트에 새로운 아이콘 추가 * feat: 아이콘 스토리북 업데이트 (새로운 아이콘 6개 추가)
* fix: HeroIndex의 Badge 배경색상/폰트색상 주입가능하도록 props 수정 * feat: HeroIndex 스토리북 작성 수정
* feat: 활동 페이지 router 설정 * feat: 임시 데이터 이용하여 Activity 페이지 UI 구현
* feat radix의 NavigationMenu를 기반으로 한 네비게이션 컴포넌트를 구현합니다 - 디바이스 환경에대한 변형 구현 X * chore: menu-line 아이콘을 추가합니다 * feat: device 환경에 따른 네비게이션 스타일을 구현합니다(모바일 반응형) * docs: viewport에 따라 네비게이션 스토리를 작성합니다 * fix: ThemeSwitcher를 제거하고 해당 요소는 외부에서 조합하는 방식으로 변경합니다 * refactor: 네이밍 변경 및 몇몇 컴포넌트를 asChild 대신 emotion 스타일 컴포넌트로 수정합니다 * fix: NavigationBlockItem의 BlockButton 컴포넌트를 스타일링이 같은 a 태그 컴포넌트로 대체합니다 * refactor: LabelButton, BlockButton을 외부에서 조합하는 방식으로 변경합니다 * refactor: Navigation.Trigger의 asChild를 true 기본값을 가지도록 수정합니다 * refactor: GlobalNavigation으로 네이밍을 변경합니다 * refactor: useNavigationVariant 훅을 useGlobalNavigationVariant로 네이밍을 변경합니다 * fix: Title 컴포넌트를 다형성 컴포넌트로 변경합니다 * feat: LocalNavigation 컴포넌트를 구현합니다 * feat: useMediaQuery, useMediaQueryFlags 훅을 생성합니다 * feat: LocalNavigation device에 따른 반응형 스타일을 구현합니다 * docs: GlobalNavigation 스토리를 수정합니다 * refactor: GlobalNavigation, LocalNavigation 디렉토리를 분리합니다 * feat: components/index.ts에 Navigation 컴포넌트를 추가합니다 * refactor: localNavigation.types.ts에 사용하지 않는 타입을 제거합니다 * feat: aria-label를 추가합니다 * refactor: aria-label을 수정합니다 * refactor: @/components로 import 경로를 수정합니다. * feat: GlobalNavigation.List에 align 속성을 추가합니다 * fix: Navigation 파일들 순환참조 문제를 해결합니다 * fix: 다른 컴포넌트 순환참조 문제를 상대경로로 변경하여 해결합니다 * fix: 버튼을 제외한 aria-label을 제거합니다 * fix: NavigationMenu가 radix-ui에서 import되도록 변경합니다 * fix: Title props 타입을 ComponentProps<typeof StyledTitle>로 처리합니다 * fix: useMediaQuery에서는 Breakpoints 타입만 사용하도록 변경합니다 * refactor: LocalNavigation의 뒤로 가기 버튼 aria-label을 수정합니다 * refactor: LocalNavigationButtonGroup의 return 값을 null로 변경합니다 * feat: LocalNavigation.BackButton 서브 컴포넌트를 생성합니다 * feat: useMediaQuery 훅에서 resize 이벤트 대신 matchMedia 메서드 및 change 이벤트를 사용합니다 * fix: hooks/index.ts를 수정합니다. * fix: LocalNavigation BackButton의 aria-label을 제거합니다 * feat: 범용적인 훅은 @ject/jds/hooks로 import할 수 있도록 설정합니다 * fix: 명시적인 import를 위해 src/index.ts에 hooks export 를 제거합니다 * chore: lint를 적용합니다
* feat: Step 컴포넌트와 컴포넌트의 스타일링을 구현합니다. * feat: Step 컴포넌트의 인터페이스를 작성합니다. * feat: 변경된 인터페이스에 따라 컴포넌트의 구조를 간소화합니다. * feat: controlled, uncontrolled 상태일 때의 status를 제어하기 위한 순수 유틸리티 함수를 작성합니다. * feat: Context를 사용하여 CardItem이 Context의 Consumer이 되는 구조로 변경합니다. * feat: css로 선언된 counter를 제거하고, 불필요한 스타일 객체를 제거합니다. * test: Step 컴포넌트의 스토리 파일을 작성 후 테스트 합니다. * test: Uncontrolled로 사용할 때의 케이스를 구체화합니다. * feat: 구현한 Step 컴포넌트를 export합니다. * feat: Footer에서 export가 누락된 부분을 추가합니다. * feat: 다른 컴포넌트의 lineHeight가 영향을 미치는 테스트 케이스를 변경합니다.
* feat: interceptor에서 에러를 처리하는 플로우를 throw를 사용하여 직관적으로 개선합니다. - 암묵적으로 undefined 로 처리되는 에러 플로우 제거 - early return으로 중첩된 조건문 개선 * feat: httpClient의 책임을 줄이고 zod를 활용하여 응답 데이터의 런타임 타입 검증 로직을 구현합니다. - httpClient는 요청을 수행하고, 응답 데이터의 런타임 타입 검증만 수행합니다. - 에러 처리는 상위 레이어에 위임 * feat: API 요청에서 스키마를 선택적으로 사용할 수 있도록 변경합니다. - request 수행 시 스키마가 있으면 검증 수행 - 검증 여부와는 관련 없이 response.data 반환 * feat: 이중으로 에러를 throw하는 구조를 제거하고, 단순화합니다. * chore(web): react-error-boundary를 설치합니다. * feat: Suspense 용도로 사용되는 임시 로딩 페이지를 생성합니다. * feat: ErrorBoundary와 fallback용 임시 ui를 구현합니다. * feat: 전역 설정에 에러 바운더리와 Suspense를 추가합니다. * feat: 에러 타입에 유효성 에러를 추가합니다. * feat: 글로벌 error 핸들러에 zod 스키마 타입 검증 에러 발생 케이스를 추가합니다. * feat: 환경별 API URL 상수를 추가합니다. * feat: NonSpecificError에서 undefined error 처리를 추가합니다. - useRouteError가 undefined를 반환할 수 있는 경우 대응 - 실제 error가 존재할 때만 Sentry로 전송하도록 한 변경점 * feat: 환경별 URL 상수를 외부에 선언 후 import합니다. * chore: 변경된 API 스펙 적용을 위한 TODO를 추가합니다. * move: 사용하지 않는 스크립트를 제거합니다. - assignReviewer 자체가 중복된 리뷰어를 할당하는 문제 - web 작업에 참석하지 않는 유저들에게도 reviewers 가 할당되는 문제 * feat: zod 에러는 sentry로 전송하고 re-throw 하지 않도록 변경합니다. * test: localhost와 qa 사이트에서 테스트를 위한 테스트 스크립트를 생성합니다. * feat: httpClient의 타입 추론을 개선합니다. - Promise<T> 반환을 통해 스키마 사용 시 타입을 자동 추론할 수 있도록 합니다. * feat: 추가된 API의 엔드포인트를 작성합니다. * feat: 수정된 Error Code에 맞춰 Status의 타입을 추가합니다. * feat: refreshToken을 요청하는 로직에 수정된 에러코드를 반영합니다. * test: API 테스트 코드에 사용해야하는 모든 API를 반영합니다.
* feat: NumericBadge의 empty 스타일의 패딩값을 0으로 수정합니다 * feat: contentBadgeFeedbackStylesMap의 alpha 스타일의 배경색상을 subtle에서 subtler로 변경합니다 * feat: contentBadgeThemeMutedStylesMap의 alpha, outlined의 텍스트 색상을 assistive에서 subtle로 변경합니다 * feat: navigation/global, local의 좌우 padding값을 md에서 lg로 수정합니다 * feat: GlobalNavigationList에 role='list'를 추가합니다
* feat: Label 컴포넌트 color 기본값을 currentColor로 설정합니다 * feat: MenuItem 컴포넌트를 생성합니다 * feat: resetCss에서 a 태그의 color inherit 속성을 제거하고 button padding을 초기화합니다 * feat: MenuItem index.ts에 MenuItemVariant, MenuItemSize 타입을 추가합니다 * feat: MenuItem의 Label를 span 태그로 사용합니다 * feat: resetCss에 ul, button를 수정합니다 * feat: Menu 컴포넌트를 생성합니다 * feat: MegaMenu 컴포넌트를 생성합니다 * refactor: Menu 관련 스토리를 Components/Menu 디렉토리로 이동합니다 * feat: resetCss에 li 태그 outline을 none으로 초기화합니다 * feat: index.ts에 Menu 관련 컴포넌트를 추가합니다 * remove: 쓰지 않는 StyledMenuItem 스타일 컴포넌트를 제거합니다 * feat: menuItem에 hoverStyle transition을 추가합니다 * fix: MenuItem prefixIconVisible, suffixIconVisible 기본값을 true로 변경합니다. * fix: isPropValid import 경로를 수정합니다
* feat: 제네릭을 이용해 다형성 처리 시 forwardRef 를 돕는 헬퍼 함수를 생성합니다. * refactor: Label 컴포넌트가 다양한 메타 태그로 사용될 수 있도록 다형성 처리를 적용합니다. * test: 스토리북에서 Label 컴포넌트의 색상이 주입되는 케이스를 추가합니다. * feat: 수정된 Label 컴포넌트 관련 속성을 barrel export합니다. * feat: 수정된 Label 컴포넌트의 영향을 받는 Badge 컴포넌트의 구조를 수정합니다. * feat: Interaction 유틸리티가 CSS Object 타입을 반환하도록 명시합니다. * feat: 다형성 처리를 돕는 유틸리티 함수가 displayName을 지원하도록 변경합니다. - polymorphicForward 래핑 시 displayName을 명시할 수 있도록 처리하는 변경점 * feat: Image 컴포넌트가 다양한 메타 태그를 가질 수 있도록 변경합니다. - 기존 readOnly 일 때 <button>을 가지는 의미론적 문제점에 대한 개선안 * feat: Compound Component 패턴을 사용하기 위한 내부 Context를 선언합니다. * feat: Card 컴포넌트의 Image 부분을 구현합니다. * feat: Compound Component에서 사용하는 스타일링 코드의 초안을 작성합니다. * feat: CardContent의 구현 및 추가 스타일링을 처리합니다. * feat: Card의 context 내부에서 titleVariant 변경을 처리하지 않습니다. - variant 변경 이벤트를 전파할 필요가 없다고 판단 * feat: Card의 base가 되는 Card.Root를 선언합니다. * feat: 변경된 context를 CardImage에 반영합니다. * feat: 변경된 context를 스타일링에 반영합니다. * feat: Card 컴포넌트 중 Title 부분을 구현합니다. * feat: Card 컴포넌트 중 label을 담당하는 컴포넌트 들을 구현합니다. * feat: Card 컴포넌트 중 MetaData를 전달하는 요소들을 구현합니다. * feat: Card 컴포넌트의 Preset를 생성합니다. - 프리셋에 맞는 인터페이스 생성 - 프리셋은 케이스에 따라 미리 지정된 Compound의 세트입니다. * feat: Label 컴포넌트의 스타일링과 동일한 액션을 수행하는 유틸리티 함수를 생성합니다. * feat: 공통 InteractionLayer 를 생성하는 유틸리티 함수를 생성합니다. * feat: 구현한 컴포넌트들을 barrel export합니다. * fix: where 로 표현된 의사 클래스의 미적용 문제를 직접 선언으로 해결합니다. * feat: 변경된 스타일 토큰을 기존 스타일링에 반영합니다. * feat: Card Root의 다형성 구조를 제거하고 Article Element Type으로 변경합니다. - 추상화된 비즈니스 레이어 내에서 다형성 구조로 사용하기 위함 * feat: 추상화된 비즈니스 레이어 내에서 Polymorphic한 구조를 사용하도록 변경합니다. * test: Card 컴포넌트의 스토리북을 작성합니다. * chore: Storybook에 Globalstyles를 추가합니다. * feat: forwardRef의 타입캐스팅 방식을 변경하고, ref를 병합하는 방식을 변경합니다. * feat: Card의 인터렉션을 위한 Overlay를 추가합니다. * refactor: Card의 root는 div로 명시하고, context 내에서 interactive props을 관리하도록합니다. * refactor: 스타일링에 overlay를 추가합니다. * refactor: 추상화된 프리셋 레이어에 유니온 타입을 활용해 특정 태그로 사용될 수 있음을 명시합니다. * feat: CardImage의 구조를 variant 분기로 다른 구조를 가지도록합니다. * refactor: Image가 Card 내부에서 사용될 때 크기를 명시적으로 선언합니다. * refactor: Image가 Card 내부에서 사용될 때 크기를 명시적으로 선언합니다. * feat: 프리셋에서 캡션의 위치를 변경합니다. * feat: 불필요한 description을 제거하고, 하위 요소의 말줄임 속성을 통일합니다. * test: 스토리북의 Card 테스트 케이스를 구체화합니다. * feat: Card.Root와 Image는 항상 부모의 width와 height를 따르도록 합니다. * test: Card 스토리북에 description을 작성하고, 부모 컨테이너의 스타일에 width, height를 명시합니다. * feat: 작성한 컴포넌트들을 export합니다. * docs: 불필요하게 처리된 개행을 제거합니다. * merge: dev branch와의 포맷팅 차이를 해결합니다. * fix: 변경된 Image props에 맞춰서 Banner의 인터페이스를 변경합니다. - Image가 다형성 구조로, ImageOwnProps로 인터페이스 구조 변경에 대한 변경점 * fix: storybook의 import 경로를 변경합니다. * fix: 변경된 Label props의 구조를 checkbox에 반영합니다. * fix: storybook의 import 경로를 변경합니다. * fix: 스토리 파일의 중복되는 name annotation을 제거합니다. * feat: Label 컴포넌트의 다형성에 맞춰 의미론적으로 span 태그로 사용하는 부분을 변경합니다. - Snackbar, InputArea, FileItem 등 아직 명시하지 않은 부분 존재 - 일괄 수정 보다 명확하게 판단되는 컴포넌트들에 대해 우선 수정 적용 * feat: CardOverlay가 context 내부에서 소비되도록 구조를 변경합니다. * feat: 프리셋에서 CardOverlay에 layout 값을 전달하도록 변경합니다. * feat: 디자인 의도에 맞춰 가로형의 Post 프리셋에 Image가 고정 크기를 가지도록 변경합니다. * feat: CardImage의 ratio 객체는 ratio를 선언하지 않았을 때의 fallback으로만 사용하도록 합니다. * test: 스토리북에서 카드의 부모 container의 크기에 맞춰 Card 컴포넌트의 크기를 결정 짓도록 하고, Interaction의 구체적인 케이스를 추가합니다. * fix: Interaction에서 offset이 요구되는 부분에 스타일링 버그를 수정합니다. - Interaction에 offset을 주입 - focus 링이 정상적으로 출력되지 않는 문제 해결 * feat: 상수와 헬퍼 함수를 이용해 스타일링 구조를 개선합니다. * feat: 스타일링에 중첩 삼항 연산자를 제거하고 early return 하는 구조로 변경합니다. - 일부 case에 대해 any를 허용 * move: SSOT 관점에 위배되는 스타일링 함수를 제거합니다. * feat: 스프레드 연산자를 사용해 사용하는 텍스트의 스타일링을 선언합니다. * feat: CardLabel이 CardRoot로 부터 variant context를 제공 받아 스타일링을 수행하도록 변경합니다. * feat: Card 프리셋에서 caption 단독 사용을 판단할 수 있는 prop을 추가 후 스타일링을 분기합니다. * feat: disabled 상태를 전달하여 인터렉션이 발생하지 않도록 변경합니다. * feat: Label 컴포넌트의 기본 메타 태그 변경점을 todo에 작성합니다. * feat: import 경로 에러를 해결합니다.
* feat: GlobalNavigation.Item의 position을 relative로 수정합니다. Content를 Item의 중앙에 위치하도록 수정합니다. * fix: GlobalNavigation의 NavigationMenu import 경로를 수정합니다 * fix: megaMenu의 minHeight를 제거합니다 * fix: megaMenu의 gap 값을 수정합니다 * feat: GNB UI를 구현합니다 * feat: PATH 생성 및 GNB에 href를 연결합니다 * feat: GlobalNavigation.MobileMenuButton을 분리합니다. * chore: jds의 utils를 외부에서 사용할 수 있도록 설정합니다 * fix: GlobalNavigation의 viewport에 따른 크기를 수정합니다 * feat: 모바일 버전의 사이드바를 구현합니다. * fix: theme 빌드 에러를 수정합니다. jds/tokens/index.ts를 외부에서 사용할 수 있도록 설정합니다. * feat: style에서 className을 사용하도록 수정합니다 * fix: 스타일을 emotion에서 tailwind 적용 방식으로 변경합니다
* chore: Header 컴포넌트 임시 비활성화 * feat: 직군별 아이콘 추가 (frontend, backend, product, design) * feat: 메인 페이지 Hero Section 구현 및 텍스트 로테이션 애니메이션 추가 * feat: Callout 컴포넌트에 className prop 추가 및 width 100% 적용 * feat: EmptyState 컴포넌트 export 추가 * feat: semantic-margin-5xl 토큰 추가 * feat: IntroSection 컴포넌트 구현 및 메인 페이지 적용 * feat: Banner.Image 컴포넌트 스타일 개선 * feat: CycleSection 컴포넌트 구현 및 메인 페이지 적용 * feat: Banner.Image 그라데이션 색상을 테마 토큰으로 변경 * feat: JoinSection 컴포넌트 구현 및 메인 페이지 적용 * feat: Logo 컴포넌트에 inverse hierarchy 추가 * feat: Footer 컴포넌트에 static inverse 토큰 적용 * feat: Layout에 jds Footer 컴포넌트 적용 * feat: JoinSection 모바일 반응형 레이아웃 적용 * refactor: 메인 페이지 섹션별 스크롤 트리거 설정 조정 * chore: 단일 파일 섹션 폴더들을 sections 폴더로 병합 * refactor: HeroSection 그라디언트에 디자인 토큰 적용 * refactor: IntroSection 배경색에 테마 대응 토큰 적용 * fix: Footer Divider가 테마에 영향받지 않도록 수정 * fix: HeroSection Label 텍스트 색상 흰색으로 고정 * feat: Banner.Image fullScreen 옵션 추가로 뷰포트 전체 높이 지원 * fix: Banner 컴포넌트에서 불필요한 fullScreen 옵션 제거 * style: JoinSection 레이아웃 하단 패딩 추가
* feat: 아코디언 컴포넌트를 구현합니다 * feat: 아코디언의 애니메이션 토큰값을 변경합니다. * feat: Tab 컴포넌트를 다시 구현합니다 * feat: 아코디언 컴포넌트 스타일을 수정합니다 * feat: jds/src/components/index.ts에 Tab 컴포넌트를 추가합니다 * feat: Tab 컴포너트의 borderBottom이 겹쳐보이도록 수정합니다 * feat: 아코디언의 content에 textStyle을 지정합니다 * feat: Tab.List의 border 크기를 1px로 수정합니다 * feat: Accordion의 isStretched에 따른 padding 값을 수정합니다 * feat: FAQ 페이지를 구현합니다 * feat: 아코디언, tab의 줄바꿈 및 정렬을 수정합니다 * feat: faq 모바일 반응현 UI를 구현합니다 * feat: 랜딩페이지에서만 GNB가 항상 다크모드가 되도록 수정합니다. * feat: PagesContainer의 배경색상에 토큰 변수를 사용합니다 * feat: tailwind global.css에 브레이크포인트 prefix를 지정합니다 * feat: StyledAccordionTrigger에 색상 토큰을 지정합니다 * feat: 아코디언 레이블에 textWrap: wrap 속성을 설정합니다 * feat: FAQ 모바일 뷰포트 크기를 360px으로 수정합니다 * remove: 아코디언 컴포넌트에서 중복되는 textStyle 코드를 제거합니다. * remove: 사용하지 않는 import 를 제거하여 빌드에러를 수정합니다 * feat: FAQ 페이지 margin top 40px를 추가합니다 * feat: faq 젝트 이메일에 underline 스타일을 추가합니다
* feat: 비전 페이지 및 Hero 섹션 구현 * feat: ProjectStartSection, GoalSection 섹션 구현 * feat: 비전 페이지 MemberSection 구현 * feat: 비전 페이지 GrowthStorySection 구현 * fix: Footer 개인정보처리방침 링크 수정 * fix: GNB 클릭 이벤트 블로킹 문제 수정 * refactor: MemberSection에 변경된 Tab 컴포넌트 적용 및 breakpoint 수정 * refactor: 랜딩 페이지 breakpoint 수정
* feat: dialog 컴포넌트 구현 * feat: dialog 컴포넌트 스토리북 추가 * fix: Title 컴포넌트 textAlign prop 값 추가
* feat: GlobalNavigation.Item의 position을 relative로 수정합니다. Content를 Item의 중앙에 위치하도록 수정합니다. * fix: GlobalNavigation의 NavigationMenu import 경로를 수정합니다 * fix: megaMenu의 minHeight를 제거합니다 * fix: megaMenu의 gap 값을 수정합니다 * feat: GNB UI를 구현합니다 * feat: PATH 생성 및 GNB에 href를 연결합니다 * feat: GlobalNavigation.MobileMenuButton을 분리합니다. * chore: jds의 utils를 외부에서 사용할 수 있도록 설정합니다 * fix: GlobalNavigation의 viewport에 따른 크기를 수정합니다 * feat: 모바일 버전의 사이드바를 구현합니다. * fix: theme 빌드 에러를 수정합니다. jds/tokens/index.ts를 외부에서 사용할 수 있도록 설정합니다. * feat: style에서 className을 사용하도록 수정합니다 * fix: 랜딩페이지일 경우에만 GlobalNavigationBar(empty)가 항상 다크모드가 되도록 수정합니다 * feat: 팀 프로젝트 페이지 UI 구현 및 API를 연동합니다. * fix: GNB에 pointer-events-none 속성을 추가합니다 * fix: 다크/라이트 모드 전환을 위해 PagesContainer의 배경색을 테마 변수 사용으로 변경합니다. * feat: 팀 프로젝트 페이지 반응형 UI를 구현합니다 * feat: 기존 Project 컴포넌트를 deprecated 처리합니다 * chore: 포지션 아이콘을 추가합니다 * feat: 프로젝트 상세 페이지 desktop UI를 구현합니다 * feat: 프로젝트 목록 조회 페이지 너비를 설정합니다. * feat: 프로젝트 상세 페이지 UI 구현 및 API를 연동합니다 * feat: 프로젝트 상세 페이지 반응형 UI를 구현합니다 * feat: 프로젝트 목록 조회 페이지에서 무한스크롤을 적용합니다 * feat: 프로젝트 목록 아이템의 body 값을 description 내용으로 변경합니다. * fix: 빌드 에러를 해결합니다 * feat: 변경된 팀프로젝트 목록 조회 API를 연동합니다. * fix: TeamProject에서 semesterMap을 수정합니다 * feat: 팀프로젝트 상세 페이지의 변경된 API 데이터 구조를 반영합니다 * feat: map 함수 사용되는 곳에 key 속성을 작성합니다 * feat: 모바일 접근 불가 페이지를 제거합니다 * feat: 팀 프로젝트 상세 페이지 배너 사이즈 비율을 수정합니다 * fix: 빌드 에러를 수정합니다 * fix: 사용하지 않는 route를 제거하여 빌드 에러를 수정합니다 * remove: 과거 Project 페이지 컴포넌트를 제거해 빌드 에러를 해결합니다 * feat: marginTop으로 인해 헤더가 흰색 배경으로 보이는 현상을 해결합니다 * feat: 프로젝트 상세 페이지 반응형 UI를 구현합니다
* feat: 미니 스터디 페이지 구현 * feat: 라이브 세션 페이지 구현 * refactor: 라이브 세션 기수 필터링을 semesters api 기반으로 개선 * chore: 사용하지 않는 Project 관련 import 제거
* chore: @use-funnel 패키지를 설치합니다. - 지원 플로우에 funnel 구조 도입을 위함 * feat: funnel 구조를 사용하기 위해 step별 context를 정의합니다. * feat: @use-funnel에서 권장하는 패턴에 맞춰 funnel 구조를 개선합니다. - 불필요한 옵셔널 props 제거 - 타입 가드를 제거하고 런타임에서 직접 검사할 수 있는 방식 * feat: 지원 플로우에서 사용하는 공통 헤더 컴포넌트를 구현합니다. - current 유무에 따라 Step의 렌더링을 결정 - jobFamily가 있다면 데이터 객체를 사용 - 지원 플로우, 핀 재설정, 이어서 작성하기 플로우 모두 공통적으로 사용하는 컴포넌트 * feat: 지원하기 플로우에서 공통적으로 사용하는 폼을 구현합니다. - 이메일 입력 폼 - 인증번호 입력 폼 * feat: 지원 상태를 확인할 수 있는 컴포넌트를 생성합니다. - STEP을 동적으로 할당할 때 사용 * feat: #291의 Dialog 컴포넌트를 사용합니다. * feat: 지원단계에서 사용하는 공통 레이아웃을 구현합니다. * feat: 지원하기 Funnel에서 이메일 인증을 수행하는 Step 컴포넌트를 구현합니다. * feat: 지원하기 Funnel에서 존재하는 이메일의 지원상태를 검증하는 Step 컴포넌트를 구현합니다. * feat: 타이머 동작을 수행하는 커스텀 훅을 구현합니다. * refactor: 불필요한 state를 제거하고 AuthCode를 다루는 로직에 집중합니다. - 타이머와 같은 부수적인 로직은 커스텀 훅으로 전환 - 불필요하게 선언된 외부 의존성 컴포넌트 제거 * feat: AuthCodeForm에서 실제 비즈니스 로직이 수행되는 변경점을 반영합니다. * refactor: getter 함수 패턴을 제거하고 validation 정책을 선언부에 드러나도록 변경합니다. - 순수 함수를 통해 명시적으로 상태를 드러내기 위함 - JSX 내에서 getter 함수의 가독성 저하 문제 해결 * feat: 약관 동의 체크박스 그룹 컴포넌트를 구현합니다. - 개인정보 수집 및 이용 동의 - 회비 및 보증금 납입 정책 동의 * refactor: TextField 대신 TextField.Button을 사용하고, 컴포넌트 렌더링 구조를 변경합니다. - CheckBoxGroup 추가 - validation 조건(정책)을 명시적으로 선언 - mutation 호출 시 불필요한 isPending 값 제거(다음 Step으로 이동하기 때문) * feat: 이메일 인증 Step에서도 CheckBox의 상태를 전달하도록 변경합니다. * feat: PIN 로그인에서 공통으로 사용하는 TextField 컴포넌트를 작성합니다. * feat: validation 상태를 return하는 유틸리티 함수를 생성합니다. * feat: CheckBox를 제거하고, 폼 상태를 react-hook-form에서만 관리하도록 변경합니다. * feat: AuthCodeForm의 readonly UI를 재사용하기 위한 컴포넌트를 작성합니다. * feat: Apply 단계에서 필요한 공통 컴포넌트를 export합니다. * feat: 이메일 인증 단계에서부터 CTA 버튼이 출력되도록 변경합니다. * feat: PIN 인증 단계를 담당하는 컴포넌트를 구현합니다. * feat: 지원자 프로필을 작성하는 Step 컴포넌트를 작성합니다. * feat: jobFamily에 대한 레이블 데이터는 지원 안내 페이지에서만 관리하도록 변경합니다. * feat: 지원 완료 Step 컴포넌트를 작성합니다. * feat: 질문 제목과 입력 필드를 감싸는 공통 레이아웃을 생성합니다. * feat: Text 형태로 렌더링 되는 필드들을 구현합니다. - InputArea를 사용하는 TextQuestionField - TextField를 사용하는 UrlQuestionField * feat: Apply에서 지원서 작성을 담당하는 Step을 구현합니다. * feat: 업로드된 파일 아이템을 담당하는 순수 표시 컴포넌트를 구현합니다. - 업로드 로직은 FileQuestionField에서 컬렉션 단위로 관리 - 클릭 시 파일 미리보기 및 삭제 버튼 표시용 * feat: 포트폴리오 파일을 다루는 포맷팅 함수들을 생성합니다. - tsDocs로 상세 설명 * feat: File 타입을 가지는 객체 데이터에 대한 필드 컴포넌트를 구현합니다. - 공통 Wrapper + Uploader로 구성 * feat: 신규 생성한 포트폴리오 포맷팅 유틸리티를 export합니다. * feat: 수정된 포트폴리오 등록 로직을 RegistrationStep에 반영합니다. * feat: 지원서 작성에 필요한 상수들을 선언합니다. * feat: 지원서 등록에 사용하는 컴포넌트들을 export합니다. * feat: 지원서 작성 시의 form 상태와 임시 저장 상태를 초기화 하는 커스텀 훅을 구현합니다. * feat: registrationStep을 export합니다. * feat: 이어쓰기 Funnel의 첫단계를 담당하는 Step 컴포넌트를 구현합니다. - 이메일+PIN 검증으로 본인확인을 담당 - PIN 재설정에서 들어오는 경우도 고려 * feat: 이어쓰기 단계에서 사용자 인증 시 pending 상태에서 스피너가 도는 액션을 추가합니다. * feat: 지원 상태를 담당하는 step들을 export합니다. * feat: 신규 회원 지원하기 플로우를 관리하는 Funnel 컴포넌트를 구현합니다. - 기존 회원의 이어쓰기는 ContinueWritingFunnel에서 담당 * feat: 기존 회원이 이어쓰기를 할 수 있는 Funnel을 구현합니다. * feat: ApplyFunnel 안에서 지원자 정보(step2)에 해당하는 데이터를 전달하지 않도록 변경합니다. * feat: PIN 재설정 Funnel에서 이메일 입력과 인증번호를 받는 STEP 컴포넌트를 구현합니다. - 이메일 + 인증번호 받기 - 기존회원은 인증번호 입력란 표시 후 새 PIN 설정으로 이동 - 미가입 회원의 경우 에러 메시지 표시 * feat: PIN 재설정 Funnel에서 새로운 6자리 PIN 설정을 담당하는 STEP 컴포넌트를 작성합니다. - 새로운 6자리 PIN 설정 - 완료 시 returnTo 경로로 이동, 토스트 표시 * feat: PIN 재설정 플로우를 관리하는 Funnel 컴포넌트를 구현합니다. - 모든 단계에서 returnTo 사용 - funnel 외부로 나가는 경우 navigate 사용 * feat: Auth Step에서 사용하는 컴포넌트들을 export합니다. * move: 레거시 코드들을 제거합니다. * feat: API 응답에 대한 타입을 스키마로 설정합니다. - API 응답은 외부 데이터이기 때문에 런타임 검증이 필요 - request 시 payload나 클라이언트 도미엔 전용 타입의 경우 해당 스키마가 불필요 * feat: 스키마로 선언된 타입은 스키마 파일에서 추출하여 사용하도록 변경합니다. - SSOT를 보장 * feat: 스키마로 선언된 타입은 스키마 파일에서 추출하여 사용하도록 변경합니다. - SSOT를 보장 * feat: Apply 도메인에서 사용하는 Query Key와 Query Option을 선언합니다. - queryKey와 queryFn은 함께 정의해서 관리 - 의미 단위로 key 분리 * feat: Apply 도메인에서 사용하는 API 호출부를 factory 패턴을 사용하여 선언합니다. * feat: 스키마로 선언된 타입은 스키마 파일에서 추출하여 사용하도록 변경합니다. - SSOT를 보장 * feat: API의 엔드 포인트를 최신화합니다. * feat: Dialog 컴포넌트의 객체 데이터를 추가합니다. * feat: 스키마로 선언된 타입은 스키마 파일에서 추출하여 사용하도록 변경합니다. - SSOT를 보장 * feat: JDS에서 export되고 있지 않던 컴포넌트들을 export 합니다. * feat: Layout에서 Toast 컴포넌트를 제거합니다. * feat: Toast를 JDS의 Provider를 이용해 사용합니다. * move: API 테스트용 파일을 제거합니다. * feat: Apply 도메인의 API 모듈을 export합니다. * feat: Label과 Value로 이루어진 프로필 타입을 선언합니다. - (value-label) 형태의 상수 데이터 * feat: GlobalErrorHandler에서 토스트 출력 방식을 변경합니다. * feat: Apply Funnel 별 라우터 경로를 추가합니다. * feat: Apply Funnel 별 라우터 경로를 추가합니다. * feat: 레거시 Navigation 컴포넌트에 수정된 라우팅 경로를 반영합니다. * feat: 스키마로 선언된 타입은 스키마 파일에서 추출하여 사용하도록 변경합니다. - SSOT를 보장 * feat: 스키마로 선언된 타입은 스키마 파일에서 추출하여 사용하도록 변경합니다. - SSOT를 보장 * feat: 업데이트된 상수 데이터를 추가합니다. * feat: 토스트 출력 로직은 mutation 내부에서 처리합니다. * feat: 페이지 Container에 기본 배경색을 변경합니다. * feat: 지원자 정보 입력 폼 훅의 구조를 변경합니다. - form이 모든 필드의 상태와 유효성 검사를 담당 - Step 컴포넌트는 UI 조립만 하도록 * feat: 이메일 인증 번호의 유효성은 제출 시에만 검증하도록 변경합니다. * feat: 변경된 라우팅 경로를 반영합니다. * feat: 지원자 정보 데이터 스키마를 추가합니다. * feat: 변경된 funnel 구조에 맞춰 타입을 수정합니다. - ApplyFunnel에서 다음 Step으로 넘어갈 때 ProfileData를 전달하지 않음 * feat: 변경된 API에 맞춰 Apply 도메인에 사용되는 커스텀 훅을 구현합니다. - React Query v5 콜백 시그니처 적용 - Factory Pattern으로 선언된 쿼리키 사용 * feat: 수정된 커스텀 훅을 apply 관련 컴포넌트에 적용합니다. * merge: dev branch의 변경사항을 merge 합니다. * feat: 지원 안내 페이지에 사용하는 png assets을 추가합니다. * feat: 지원 목록 페이지를 퍼블리싱 합니다. * feat: 사용하지 않는 라우트 경로를 제거합니다. * feat: 지원 목록 페이지를 라우터에 추가합니다. * feat: GNB에 지원하기 클릭시 이동하는 path를 추가합니다. * feat: 지원 완료 페이지에 사용하는 이미지를 추가합니다. * feat: 지원 목록 페이지의 라우팅 경로를 SideBar에 추가합니다. * feat: 지원 완료 Step에서 누락된 이미지를 추가합니다. * feat: 지원 상세 페이지를 퍼블리싱합니다. * feat: 지원 상세 페이지 중 Tab에 들어갈 내용을 추가합니다. * feat: (JDS)Accordion 컴포넌트에 size prop을 추가합니다. * feat: (JDS)Accordion 컴포넌트에 width를 조정합니다. * feat: 미작성된 Tab Content 항목을 작성합니다. * feat: (JDS)Accordion의 Label이 남은 공간을 다 채우도록 변경합니다. * feat: 객체 데이터에 값들을 추가합니다. * feat: 퍼블리싱 시 누락된 디자인 부분을 조정합니다. * feat: CTA 버튼이 부모 요소에 영향을 받지 않도록 변경합니다. * feat: Email 템플릿 코드 파라미터를 수정합니다. -API 스펙 변경에 따른 수정 사항 * feat: Email 템플릿 코드 파라미터를 수정합니다. -API 스펙 변경에 따른 수정 사항 * feat: interceptor가 항상 응답을 unwrap하여 사용하도록 변경합니다. - 실제 데이터를 사용 - 객체 데이터(응답 형식)은 항상 truthy 하기 때문 * feat: URL params로 Tab을 제어할 수 있도록 변경합니다. * feat: 미구현된 라우팅 로직과 타이머 메시지를 수정합니다. * feat: 토스트 표시 문구를 변경합니다. * feat: 이메일 인증 실패 시 에러 토스트를 출력합니다. - onError시 토스트 출력으로 로직 변경 - 기타 레이아웃 조정 * feat: 인증번호 검증 API에 주어지는 params 명을 정정합니다. * feat: 인증번호 검증 API 실패 시 토스트 로직을 추가합니다. * feat: Apply 단계에 레이아웃 스타일을 수정합니다. * feat: 체크박스의 디자인을 디자인 에셋에 맞춰 변경합니다. * feat: 핀번호 설정 디자인을 디자인 에셋에 맞춰 변경합니다. * feat: 회원 등록 API의 경로를 API 스펙에 맞춰 변경합니다. * feat: 핀번호 유효성 검증 문구를 변경합니다. * feat: (JDS)Select의 Item이 overflow되도록 변경합니다. * feat: (JDS)Input 컴포넌트의 Label의 타입을 ReactNode로 변경합니다. - Label 위치에 오는 스타일링의 다양성에 대응하기 위한 수정 * chore: (Web) Theme에 미기재된 색상을 추가합니다. * feat: 지원자 정보 입력 Step에 구조를 디자인 에셋에 맞게 수정합니다. * feat: 지원자 등록 폼에서 기본 값을 전부 undefined로 할당합니다. * feat: 프로필 저장 API 호출 시 request body에 jobFamily를 추가합니다. * feat: queryFn에서 404 에러를 catch하여 빈 데이터를 반환하도록 변경합니다. - [GET] /apply/temp 호출 시 404 응답은 정상 케이스로 처리 - 신규 사용자의 경우 불러올 데이터가 없기 때문 * feat: (JDS) Uploader의 크기 설정을 변경합니다. - width 가 고정 값으로 선언되어있던 문제 * feat: 상수 데이터의 값을 변경합니다. * feat: 지원서 문항 목록에 isRequired 값에 따라 추가 텍스트를 삽입합니다. * feat: RegistrationStep의 레이아웃을 조정합니다. * feat: Suspense와 ErrorBoundary를 결합한 AsyncBoundary 컴포넌트를 선언합니다. * feat: Apply 관련 페이지들의 공통 레이아웃을 선언합니다. - AsyncBoundary를 통해 공통 Suspense/ErrorBoundary 처리 - Apply 플로우에서만 다른 Layout 사용 * feat: Apply 플로우에 사용되는 페이지를 생성합니다. * feat: async-boundary에서 선언한 값들을 export합니다. * merge: 병합 과정에서 발생하는 에러를 해결합니다. * feat: (JDS) InputArea의 스타일링 속성을 변경합니다. - 브라우저 마다 다르게 적용되는 속성 제거 * feat: (JDS) 토스트의 position을 변경합니다. - relative일 때도 같은 위치에 적용하기 위함 * feat: 상수 데이터의 값을 변경하여 적용합니다. * feat: 이어쓰기에서 사용되는 Step은 독립적인 TextField를 사용하도록 변경합니다. * feat: 인증 단계에서 사용하는 CTA 버튼을 분리합니다. * feat: 이어서 작성하기 플로우에서 본인확인 후 status API 호출하도록 변경 - ContinueWritingFunnel에서 URL 파라미터 대신 /apply/status API로 실제 상태 확인 - 이미 제출 완료/이어서 작성할 내용이 없는 경우 안내 후 리다이렉트 - tempSavedStep URL 파라미터 및 관련 prop 제거 * feat: 스키마에서 실제 response와 일치하지 않는 부분을 optional로 변경합니다. * feat: (JDS) FileItem의 색상을 변경합니다. * feat: 상수 데이터를 수정합니다. * feat: 지원 완료 페이지의 디자인을 디자인 스펙에 맞춰 변경합니다. * feat: 지원 완료 페이지의 디자인을 디자인 스펙에 맞춰 변경합니다. * feat: useUploadFileToS3Mutation에서 에러 토스트 옵션을 추가합니다. * feat: 에러 토스트는 catch 블록에서 한번만 출력되도록 변경합니다.
* style: HeroSection에 고정 다크 테마 배경색 적용 * fix: 랜딩 페이지에서 새로고침 시 스크롤이 최상단으로 이동되도록 수정 * fix: 모바일/태블릿에서 CycleSection 위로 스크롤 시 이전 섹션으로 이동되지 않는 문제 수정 * style: HeroSection 상단에 그라디언트 오버레이 추가 * fix: 모바일에서 랜딩 페이지에 가로 스크롤이 발생하는 문제 수정 * fix: IntroSection EmptyState가 1열일 때 전체 너비 차지하도록 수정 * fix: MemberSection 이미지 로드 실패 시 대체 이미지 표시되도록 수정 * fix: miniStudy, jectalk, semester API 응답 타입 불일치 수정 * refactor: IntroSection Hero 컴포넌트 통합 및 불필요한 wrapper 제거 * feat: JoinSection 지원하러 가기 버튼 클릭 시 /apply/list 페이지로 이동하도록 수정 * refactor: live-session 페이지에서 기수 선택 select 관련 코드 제거 * refactor: mini-study 페이지에서 기수 선택 select 관련 코드 제거 * refactor: MemberSection useState 불필요한 타입 명시 제거
* feat: Footer를 별도의 컴포넌트로 분리합니다 * feat: 404 에러 페이지 UI를 구현합니다 * feat: 공용 에러 페이지 UI를 구현합니다 * feat: 404 에러 페이지 UI를 수정합니다 * remove: 사용하지 않는 import를 제거합니다 * feat: 서비스 점검 중 페이지 UI를 구현합니다 * feat: 토큰 만료 다이얼로그 내용을 수정합니다 * fix: 토큰 변수 오타를 수정합니다
* feat: GNB sideBar가 열려있을 때 스크롤 기능을 비활성화합니다 * fix: FAQ 페이지에서 중복되는 질문과 답변을 제거합니다 * feat: 파비콘을 변경합니다
* fix: 지원 안내 페이지 로우레이블 밀림 현상을 해결합니다. Card의 Post 레이아웃 구조를 변경함. Card의 Post 컴포넌트 이슈 - variant='label' 구현 안되어있음. 'title'만 되어있음. - 타이틀 요소가 말줄임 처리되어있음. * feat: Card 타이틀 textWrap을 warp 속성으로 변경합니다 * fix: step의 레이블이 줄바꿈 되지 않도록 합니다 * fix: 팀프로젝트 목록 및 상세 페이지 조회 실패 문제를 해결합니다 * fix: 스토리북 에러를 해결합니다 * fix: GNB 스크롤 발생/미발생 시 높이 값 차이 발생 문제를 해결합니다 * fix: ProjectDetail 페이지에서 발생하는 빌드 에러를 수정합니다 * fix: TeamProject에서 발생하는 사용하지 않는 import를 제거하여 빌드 에러를 해결합니다
* feat: 이메일을 가지고 프로필 등록 여부를 파악할 수 있는 API를 추가합니다. * feat: apply status 를 검증하는 쿼리를 suspenseQuery 형태로 변경합니다. - 해당 쿼리 호출 전에 await을 해야하는 상황이 발생 * feat: 이메일을 가지고 프로필 등록 여부를 파악할 수 있는 API의 엔드포인트와 호출부를 선언합니다. * feat: 지원상태에서 사용하지 않는 스키마를 제거합니다. * feat: 회원 인증과 지원 인증 상태를 판단하는 API를 분리해서 적용합니다. * feat: 불필요한 step을 제거하고 인증 책임을 EmailVerificationStep에 위임합니다. * feat: 이어서 작성하기 단계에서 프로필 작성 여부를 먼저 검증하고, 지원 상태를 조회하도록 변경합니다. * feat: 사용자 인증을 관리하는 커스텀 훅을 생성하여 pending 상태로 state를 대체합니다. * feat: Dialog의 상수 데이터를 변경합니다. * feat: (JDS) Dialog 반응형과 props 구조를 개선합니다. * fix: 제출 완료 시 Dialog의 hierachy를 변경합니다. * fix: 프로필 작성 시 잘못 적용되어있던 required 스키마를 변경합니다. * fix: 상수 데이터를 업데이트합니다. * fix: 관심 도메인 선택 관련 정책 상수를 정의하고 render 내부에 정책을 명확한 이름으로 선언합니다. * fix: 관심 도메인의 반응형 그리드를 재적용합니다. * fix: Tab 내부 Content를 상수 데이터 기반으로 출력하는 구조로 변경합니다. * fix: 파일 업로드 시 누락된 토스트 메시지를 추가합니다.
* feat: feat: 지원서 작성 페이지 이탈 차단 기능 구현 * feat: 브라우저 뒤로가기/새로고침 시 이탈 확인 다이얼로그 추가 * chore: 테스트용 funnel 초기 설정 복구 * chore: dev 브랜치 머지 및 미사용 import 정리 * fix: 미니스터디, 라이브세션 페이지 상단 여백 mt에서 pt로 변경 * refactor: useNavigationBlock 전역 상태를 useRef로 변경 및 최적화
* chore: 모노레포 구조로 변경된 build 디렉토리를 deploy.yml에 반영합니다. * chore: Pull Request 시에 빌드 테스트를 스크립트에 추가합니다.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
💡 작업 내용
💡 자세한 설명
구현한 의도를 설명해주세요.
수정 사항이 있다면 수정한 이유를 적어주세요.
필요하다면 스크린샷 또는 코드 조각을 사용해주세요.
📗 참고 자료 (선택)
📢 리뷰 요구 사항 (선택)
✅ 셀프 체크리스트
closes #329