-
Notifications
You must be signed in to change notification settings - Fork 1
[FEAT] 로그인 페이지 구현 #24
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
Conversation
jaeml06
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
빠르게 시간에 로그인 페이지를 구현해주셨네요!!
구현해주신 코드에 리뷰 남겼습니다.
src/page/LoginPage/LoginPage.tsx
Outdated
| <DefaultLayout.Header.Center>의회식</DefaultLayout.Header.Center> | ||
| <DefaultLayout.Header.Right>제목</DefaultLayout.Header.Right> | ||
| </DefaultLayout.Header> | ||
| <div className="flex flex-col h-screen items-center justify-center"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
prettier은 적용이 제대로 된 것 같은데 아직 eslint는 적용되지 않는 것 같아요! vscode상에서 esLint를 사용하기 위해서 확장프로그래밍이 필요로 합니다.
https://velog.io/@2_hyeonju/Prettier-ESLint-%EC%99%84%EC%A0%84-%EC%A0%95%EB%B3%B5#eslint-%EC%82%AC%EC%9A%A9%EC%9D%84-%EC%9C%84%ED%95%9C-2%EA%B0%80%EC%A7%80-%EC%A4%80%EB%B9%84
설치해주시고 저장해주시면 자동으로 순서를 변경해줄겁니다!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
확인하여 적용하였습니다. 감사합니다.
| <DefaultLayout.Header.Left>헤더</DefaultLayout.Header.Left> | ||
| <DefaultLayout.Header.Center>의회식</DefaultLayout.Header.Center> | ||
| <DefaultLayout.Header.Right>제목</DefaultLayout.Header.Right> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
중첩 컴포넌트에서 불필요하다고 생각하면 굳이 채울 필요는 없습니다. 그래서 굳이 전부 채울 필요 없이
DefaultLayout.Header.Left만을 사용해서 저의 프로젝트 이름 정도만 작성해도 좋을 것 같아요
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Figma와이어프레임를 확인하였을때 같은 navbar UI 사용한 것을 확인하여 일단 같게 두었습니다! 이후 필요 시 수정하겠습니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
넵
| <input | ||
| id="nickname" | ||
| placeholder="닉네임을 입력해주세요" | ||
| className="text-center bg-slate-300 placeholder-black p-5 rounded-lg" | ||
| /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이 부분도 Figma에 같은 색상으로 되어 있어 일단 검정색으로 하긴 했지만, 다음부터 고려해서 디자인해야겠네요. 의견 감사합니다. 수정하여 커밋하였습니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
넵 감사합니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LinkButton 컴포넌트로 로그인 버튼을 분리해주셨네요.
제 경우에는 컴포넌트를 분리하는 기준이 재사용을 높이기 위해서, UI 복잡성이 커서 분리가 필요하다는 판단이 되어서 등이 있습니다. LinkButton의 경우 컴포넌트 이름에 비해 table이라는 페이지로 이동하고 '로그인'이라는 텍스트 때문에 한정적이 기능을 한다고 생각이들어요 그래서 아예 파일명을 LoginButton이라고 변경하던가 아니면
디자인만을 재사용하고 싶다면
const navigate = useNavigate();를 상위에 선언하고 button의 요소를 props로 받아 디자인을 재사용할 수 있습니다.
import { ButtonHTMLAttributes } from 'react';
export default function LinkButton(
props: ButtonHTMLAttributes<HTMLButtonElement>,
) {
const { children, ...args } = props;
return (
<button
{...args}
className="rounded-lg bg-amber-300 p-5 transition-transform duration-200 hover:scale-105"
>
{children}
</button>
);
}이 이외에도 linkButton을 재사용성이 높게 만들려면 url주소와 버튼 내부요소를 props로 받으면 더 유연하게 사용할 수 있을 것 같아요!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/noti
피드백 반영하여 url과 title를 props로 넘겨주는 방식으로 하여 컴포넌트를 재사용성을 향상시켰습니다.
확인해주시면 감사하겠습니다!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
넵 확인했습니다 감사합니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
제가 남기고자 했던 피드백(텍스트 필드와 버튼 간 구분이 모호한 부분)을 치코님이 먼저 적어주셔서 저는 승인 남기도록 하겠습니당
- url과 title을 props로 넘김
jaeml06
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR확인했습니다. 일단 button은 확인했습니다. 다만 나머지 리뷰에 대한 의견이 없으셔서 아직 반영이 되지 않는 것인지 아니면 다른 의견이 있는 것인지 파악하기 힘드네요...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
넵 확인했습니다 감사합니다.
|
eslint 자동정렬 설정했습니다. 확인 부탁드립니다. |
* Update issue templates * docs: 파일명 수정 * docs: PR 템플릿 생성 (#2) * docs: 자동 issue 설정 할당 * docs: 불필요한 주석 제거 * docs: 이슈 프로젝트 권한 추가 * docs: 자동할당 로직 변경 * feat: 권한 문제로 자동 Project할당 제거 * docs: PR 자동할당 yml 작성 * docs: 불필요한 Project 정보 제거 * docs: Discord comment 알림 yml 작성 * chore: 프로젝트 초기 세팅 * chore: prettier 설정 추가 * feat: 3개의 영역으로 구분된 header(StickyTriSectionHeader) 구현 * feat: 하단에 고정되어 있는 footer wrapper 구현 * feat: main 레이아웃 구현 * feat: 중첩 컴포넌트로 기본 레이아웃 구현 * design: layout의 ContentContanier 가운데 정렬 추가 * design: layout의 ContentContanier padding 추가 * feat: PropsAndConsTitle 구현 * feat: TimerCreationButton 구현 * feat: 테이블 타입 작성 * feat: 초를 분, 초로 포맷팅하는 함수 구현 * feat: DebatePanel 구현 * feat: 테이블 구성 페이지 초기 UI rngus * feat: Pretendard 웹폰트 추가 * chore: storybook 설정 추가 * test: DebatePanel 스토리 북 작성 * test: PropsAndConsTitle 스토리북 테스트 작성 * test: TimerCreationButton 스토리북 테스트 작성 * fix: 파일명에 불필요한 공백 제거 * [FEAT] 페이지 라우팅 적용 (#22) * chore: install react-router-dom * feat: App.tsx와 main.tsx 에서 라우팅 설정 * refactor: createBrowerRouter 방식 적용 - router.tsx 파일 생성하여 라우터 적용 - main.tsx 에서 <RouterProvider router={router} /> 적용 * chore: 불필요한 App.tsx 컴포넌트 삭제 * chore: eol prettier 적용 * [FEAT] 타이머 박스 생성 모달 구현 (#17) * feat: 포털 렌더링 관리를 위한 GlobalPortal 컴포넌트 추가 * feat: 모달 생성을 위한 modal 커스텀 훅 구현 * feat: GlobalPortal 적용 * feat: 제출 이벤트, 버튼 추가 * feat: uesModal 구조 변경 * feat: Stance, DebateType에 export 추가 * test: useModal 테스트 코드 작성 * feat: 타이머 박스 생성 모달 구현 * feat: 타임 테이블 구성 페이지 피그마 UI에 맞게 구성 * refactor: 불필요한 테스트 파일 삭제 * test: 타임 테이블 구성 페이지 스토리북 작성 * test: 타임 테이블 구성 페이지 테스트 코드 작성 * refactor: params변경에 따른 수정 * test: GlbalPortal 추가 * chore: chromatic 추가 * fix: 파일명에 불필요한 공백 제거 * chore: 크로매틱 배포 토큰 변경 * [FEAT] 로그인 페이지 구현 (#24) * feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경 * chore: lint와 test를 넣은 CI yml 파일 작성 (#27) * [FEAT] 테이블 목록화면 구현 (#26) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * refactor: Table 타입 분리 및 Type네이밍 변경 * [TEST] 로그인 페이지 Storybook 테스트코드 구현 (#31) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * feat: LoginPage Storybook 구현 * test: LinkButton 스토리북 구현 * [FIX] 타임 테이블 구성 페이지 피드백 사항 반영 (#29) * fix: 텍스트를 더 자세하게 수정 * feat: 최상단 컴포넌트에 GlobalPortal추가 * fix: 하단 버튼에 main의 content가 가려지던 문제 수정 * refactor: formatSecondsToMinutes 반환 값 변경 * feat: 선택 진영에 따라 모달 제목 텍스트 색상 변경 * feat: input을 select로 변경 * feat: stace에 따른 색상 변경 함수 구현 * feat: debateType가 중립일 경우 stance을 값을 빈문자열로 표시 * feat: input Numer의 leading zero삭제 * feat: 초기값을 이전 설정한 값으로 설정되게 변경 * feat: stace가 중립일 speakerNumber 수정 불가능하게 변경 * feat: 이전 데이터가 중립일 경우 debateType이 이전 데이터를 반영하지 않도록 변경 * [TEST] 테이블 목록 컴포넌트 Storybook 테스트코드 구현 (#35) * test: Table 컴포넌트 Storybook 구현 * test: TableListPage 페이지 Storybook 구현 * test: DropdownForDebateType 컴포넌트 Storybook 구현 * fix: test 코드 통과를 위해 코드 h2 tag 수정 * [FEAT] 테이블 조회 화면 구현 (#34) * refactor: PropsAndConsTitle의 재사용에 따른 폴더 위치 변경 * feat: 테이블 선택 페이지 기본 레이아웃 구현 * fix: footerWrapper을 flex정렬 방향 변경 * refactor: FixedFooterWrapper position 속정 변경에 따른 컴포넌트 명 수정 * feat: TableOverview 라우터 추가 * test: TableOverview 스토리북 작성 * test: PropsAndConsTitle의 위치 변경 * feat: 불필요한 주석 제거 * feat: 버튼 text 수정 * test: MemoryRouter추가 * fix: 사용되지 않은 getStanceColor 수정 * [TEST] 로그인 및 테이블 조회 컴포넌트 테스트코드 구현 (#37) * [CHORE] API 처리를 위해 패키지 추가 (#39) * chore: Added API-related packages to the project * chore: Added and modified codes for API - 가상 API 사용을 위한 msw 관련 파일 추가 - TanStack Query 및 msw 대응하여 main.tsx 수정 * chore: Let msw only enabled on 'dev-mock' mode * chore: Added one blank line at end of package.json * chore: Added EOL at end of environment variable files * [FEAT] 테이블 수정 및 삭제 구현 (#44) * chore: 수정 및 삭제 아이콘을 위해 react-icons 추가 * feat: Table 컴포넌트에 Icons 추가 * feat: implement handleDelete method * feat: implement EditModalButton to edit Tables * refactor: stopPropagation method with MouseEvent 추가 - 버튼 클릭 이벤트가 상위로 전파되는 것을 막기 위해서 추가함 * feat: Edit 버튼 눌렀을 때, CreateTableModal 나오게 구현 * chore: unused closeModal function 삭제 * feat: Table 삭제를 위해 DeleteModalButton 구현 * feat: EditTableModal 구현 * feat: EditTableButton 구현 - 이후 수정 RestAPI 로직 추가 필요 * refactor: Edit 관련 컴포넌트에 name 매개변수 추가 * refactor: DebateTable 타입에 extends하여 delete 타입 추가 * refactor: 토론 유형 수정 불가 * refactor: 토론유형 hover: curser-not-allowed 추가 * refactor: handleDelete 함수형 업데이트로 수정 * refactor: EditTableButton 컴포넌트에 closeModal 매개변수 추가 * fix: TableListPage 테스트코드 수정 * [FEAT] 타임박스에 수정 및 삭제 UI 추가 (#42) * chore: 수정, 삭제 아이콘 이용을 위한 react-icons 추가 * style: 컴포넌트 간의 간경을 더 좁게 수정 * feat: 수정, 삭제 버튼을 합친 EditDeleteButtons 컴포넌트 구현 * style: 분기에 따른 컴포넌트의 높이를 동일하게 수정 * feat: 수정, 삭제 handler 함수 작성 * refactor: 가독성을 위해 중첩된 삼항연산자 분리 * feat: 삭제 버튼 클릭 시, 삭제 확인 모달 구현 * feat: EditDeleteButtons에 aria-label 추가 * test: EditDeleteButtons 스토리북 코드 작성 * feat: TableSetup 테스트에 수정, 삭제 기능 테스트 추가 * [FEAT] API 요청 관련 기능 구현 (#45) * feat: Added API mocking handler * feat: Implemented API request logics - 추가로, BE API 명세서의 반환 예시에 맞추어 일부 변수 이름을 수정 * refactor: Applied some minor changes - URL 생성 함수가 슬래시(/)를 여러 개 포함하는 문제 수정 - 모든 API 함수를 apis.ts에 통합 (추후 메소드 많아지면 분리) * feat: Let msw handler catch arguments 그 외 변경사항으로, API 함수들에서 경로 매개변수(path parameters)가 생략되어 있었던 문제를 해결 * refactor: 주석 추가 * fix: DebateTable 인터페이스 변경에 따른 일부 오류 수정 * feat: Added string identifier for 'useQuery' function --------- Co-authored-by: jaeml06 <jaeml0630@gmail.com> * [FEAT] 타임박스의 수정을 드래그앤드롭으로 변경하는 기능 구현 (#47) * feat: 이벤트 발생 비용 감소를 위한 useThrottle 작성 * faet: 타임박스 드래그앤 드롭을 위한 useDragAndDrop 구현 * feat: 타임박스에 드래그앤드롭 영역 지정 * feat: TableSetup에 드래그앤 드롭 선언 * refactor: 불필요한 주석 삭제 * fix: 병합과정에서 발생한 오류 수정 * [CHORE] storybook에 전역적인 decorators 설정 추가 (#50) * chore: 라우터, GlobalPortal설정을 전역 설정에 decorators로 추가 * chore: storybook에 msw 설정 추가 * [FIX] Mock Handler 파일에서 타입 에러 해결 (#54) * feat: Table 타입인 TableInfo 정의 * refactor: result 객체에 속핸 info의 타입을 명시하기 위해 request에 TableInfo 타입 명시 * chore: 이미 정의되있던 PostDebateTableResponseType 타입 사용 * [CHORE] VS Code 작업 영역에 대한 설정 파일 추가 #62 * [FEAT] 타이머 화면 구현 (#58) * feat: Implemented TimerPage * feat: Applied sound effect And applied minor design changed * refactor: Let TimerComponent change TimerPage's background * fix: NEUTRAL 항목에 불필요한 아이콘 뜨는 오류 수정 * feat: Added keyboard event listener on Timer * fix: 토론 순서 조작 시 발생하는 인덱스 초과 오버플로우 해결 * feat: 피드백에 따른 디자인 변경 사항 반영 * feat: Added loading and error screen on TimerPage * feat: Applied feedbacks from PR * fix: 타이머가 현재 debateInfo의 index를 불러오지 못하는 오류 수정 * refactor: 콘솔 로깅 비활성화 * fix: Storybook 출력되지 않는 문제 수정 - use-sound 패키지 제거하고 HTML 태그로 소리 출력 - 별도 컴포넌트를 거치지 않고 직접 gif 파일을 불러와 출력 * refactor: Removed unnecessary codes and comments * refactor: Hoisted all data and functions to the root page * fix: Cleared focus on button when space bar pressed * [FEAT] `ErrorBoundary` 도입 (#65) * feat: ErrorBoundary 도입 * feat: Wrapped router with ErrorBoundaryWrapper * feat: Enabled 'throwOnError' option on QueryClient * feat: Added refresh button on ErrorPage * refactor: Applied feedbacks from PR review - Declared string constants for ErrorBoundary - Set icon size on 'size' parameter instead of TailwindCSS 'className' * [FEAT] API 연결과 테이블 생성과 수정을 위해 funnel 패턴을 이용하여 멀티 스텝 폼 구현 (#57) * fix: 응답 타입을 문서에 맞게 수정 * feat: Agenda 타입 추가 * feat: 테이블을 추가하는 api 훅 추가 * feat: 테이블을 삭제하는 api 훅 추가 * feat: 사용자를 추가하는 api 훅 추가 * feat: 의회식 토론을 수정하는 api 훅 추가 * feat: 토론 리스트를 가져오는 api 훅 추가 * feat: 의호식 토론 정보를 가져오는 api 훅 추가 * style: 컴포넌트간의 간격 추가 * feat: multi-step form 구현을 위한 useFunnel 작성 * feat: multi-step form동안에 새로고침시에도 상태 유지를 위한 useBrowserStorage 구현 * feat: DropdownForDebateType의 로직 변경 * feat: 멀티 스텝을 이용한 방식으로 수정으로 인한 생성 모달, TableSetupPage를 변경 * feat: 테이블 생성과 수정을 위한 멀티 스텝 폼, TableComposition 구현 * feat: 테이블 form 정보 커스텀 훅 구현 * feat: 로그인 페이지에 상태와 api훅 추가 * fix: 타임박스 ui 버그 수정 * feat: 멀티 스텝 폼을 위해 TableSetupPage의 commponents 파일 이동 * feat: 테이블 수정을 모달에서 멀티스텝 폼 변경으로 인한 수정 * refactor: 더미 데이터 제거 * feat: composition 라우터 추가 * fix: 응답값에 맞게 msw 수정 * feat: 테이블 조회에 api 훅 추가 * refactor: 모달에서 멀티스텝폼 변경으로 인한 컴포넌트 명 변경 * fix: agenda와 type의 혼동으로 type 문제 수정 * fix: TableComposition 구현으로 인한 불필요한 파일 삭제 * fix: Type 타입을 영어로 수정 * fix: import 경로 수정 * feat: 테스트 mock을 위한 vitest 설정 * test: TableComposition 구현으로 인한 수정사항 반영 * feat: 버튼에 aria-label 추가 * chore: storybook msw 사용가능하게 설정 추가 * fix: stace 오타 변경 * test: storybook 경로 변경 * test: TableCompositon 스토리북 코드 작성 * fix: TableSetup삭제로 인한 라우터 변경 * chore: cleanup 함수 추가 * feat: 인터페이스 명 수정 * refactor: 한글에서 영어로 상수 변경 * refactor: NEUTRAL Stance 타입 변경 * refactor: typeMapping을 constants로 분리 * refactor: DebatePanel의 DebateTypeToString 수정 * refactor: type 값을 영어 상수로 변경 * [CHORE] 배포 파이프라인 자동화 구축 (#60) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * fix: 병합과정에 충돌 오류 수정 --------- Co-authored-by: jaeml06 <jaeml0630@gmail.com> * hotfix: 에러바운더리 코드가 삭제된 것에 대한 반영 (#69) * [REFACTOR] 타이머 기능 개선 외 (#66) * refactor: Applied several changes - Changed interval to 1000 ms (1 sec) - Added function that changes background to remove duplication of same codes - Removed isRunning not necessary * feat: Made TimerPage be able to catch parameters * fix: Recovered deleted ErrorBoundary related files * fix: Set icon size on 'size' argument instead of 'className' * refactor: Separated loading component to page * refactor: Applied several changes - Moved TimerLoadingPage to /src/TimerPage from /src/TimerPage/component - Set css file to print CR/LF correctly - Changed 'useQuery' to 'useGetParliamentaryTableData' hook * refactor: Deleted unneccesary codes * [HOTFIX] GitHub Actions 빌드 실패 문제 해결 (#73) - TableCompositionStep 상수 값을 한글(타임박스입력)에서 영어(TimeBox)로 바꾸며 발생한 문제 수정 - Type 상수 값을 한글(의회식 토론)에서 영어(PARLIAMENTARY)로 바꾸며 발생한 문제 수정 * [FEAT] AWS S3 및 FrontCloud dev, prod 각각 분리 배포 및 github action 구축 (#76) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * feat: dev 배포를 위한 deploy 코드 작성 * feat: prod 배포를 위한 deploy 코드 작성 * chore: merge 후 생성된 불 필요한 코드 삭제 * chore: dev 배포 명료성을 위해 access key 및 secret key 네이밍 변경 * chore: Dev 배포 관련 yml파일에서 bucket 네이밍 변경 * [FEAT] 닉네임 기반 로그인 구현 (#71) * feat: 로그인 시, memberId를 반환하도록 변경 * feat: memberId를 session 스토리지에 저장하도록 util 함수 작성 * fix: currentStep을 영문으로 변경 * feat: 정적으로 선언되 memberId를 스토리지에서 가져오도록 변경 * refactor: route.tsx 위치를 routes 폴더로 변경 * feat: ProtectedRoute 구현 * feat: ProtectedRoute 적용 * refactor: routes위치 변경에 따른 import 수정 * feat: 토론하기 클릭 시, TimerPage 연결 * refactor: 라우터 변경에 따른 수정사항 반영 --------- Co-authored-by: Shawn Kang <77564014+i-meant-to-be@users.noreply.github.com> * [FEAT] 추가 작전 시간 타이머 구현 외 (#77) * feat: Changed API base url to deployed server * feat: Implemented AdditionalTimerComponent * fix: Recovered horizontal padding of useModal wrapper * feat: Deleted top margin of AdditionalTimerSummaryItem * fix: Fixed linting errors * fix: Removed hard-coded URL on source codes * fix: Make app get server URL from .env file * chore: Deleted .env files * chore: Updated .gitignore file to ignore .env files * [CHORE] 배포 최적화 및 배포 환경 구분 (#82) * chore: Separated deploy environments and variables * chore: Applined vite-plugin-compressions2 to compress builds * chore: Changed job name * fix: Added quotes on target path of Cloudfront cache invalidation * chore: Changed web page title * chore: Removed compression-related packages and codes * [HOTFIX] 배포된 앱이 서버와 통신하지 못하는 문제 수정 (#84) * [FIX] PostUserResponseType타입 수정, TableOverview에서 tableId를 url에서 정상적으로 가져오도록 수정 (#86) * fix: PostUserResponseType 타입 변경 * fix: 정적 navigate 제거 * fix: 불필요한 console.log제거 * fix: tableId를 정상적으로 불러오도록 수정 --------- Co-authored-by: jaeml06 <jaeml0630@gmail.com> Co-authored-by: EunWoo <eunwoo1341@gmail.com>
* Update issue templates * docs: 파일명 수정 * docs: PR 템플릿 생성 (#2) * docs: 자동 issue 설정 할당 * docs: 불필요한 주석 제거 * docs: 이슈 프로젝트 권한 추가 * docs: 자동할당 로직 변경 * feat: 권한 문제로 자동 Project할당 제거 * docs: PR 자동할당 yml 작성 * docs: 불필요한 Project 정보 제거 * docs: Discord comment 알림 yml 작성 * chore: 프로젝트 초기 세팅 * chore: prettier 설정 추가 * feat: 3개의 영역으로 구분된 header(StickyTriSectionHeader) 구현 * feat: 하단에 고정되어 있는 footer wrapper 구현 * feat: main 레이아웃 구현 * feat: 중첩 컴포넌트로 기본 레이아웃 구현 * design: layout의 ContentContanier 가운데 정렬 추가 * design: layout의 ContentContanier padding 추가 * feat: PropsAndConsTitle 구현 * feat: TimerCreationButton 구현 * feat: 테이블 타입 작성 * feat: 초를 분, 초로 포맷팅하는 함수 구현 * feat: DebatePanel 구현 * feat: 테이블 구성 페이지 초기 UI rngus * feat: Pretendard 웹폰트 추가 * chore: storybook 설정 추가 * test: DebatePanel 스토리 북 작성 * test: PropsAndConsTitle 스토리북 테스트 작성 * test: TimerCreationButton 스토리북 테스트 작성 * fix: 파일명에 불필요한 공백 제거 * [FEAT] 페이지 라우팅 적용 (#22) * chore: install react-router-dom * feat: App.tsx와 main.tsx 에서 라우팅 설정 * refactor: createBrowerRouter 방식 적용 - router.tsx 파일 생성하여 라우터 적용 - main.tsx 에서 <RouterProvider router={router} /> 적용 * chore: 불필요한 App.tsx 컴포넌트 삭제 * chore: eol prettier 적용 * [FEAT] 타이머 박스 생성 모달 구현 (#17) * feat: 포털 렌더링 관리를 위한 GlobalPortal 컴포넌트 추가 * feat: 모달 생성을 위한 modal 커스텀 훅 구현 * feat: GlobalPortal 적용 * feat: 제출 이벤트, 버튼 추가 * feat: uesModal 구조 변경 * feat: Stance, DebateType에 export 추가 * test: useModal 테스트 코드 작성 * feat: 타이머 박스 생성 모달 구현 * feat: 타임 테이블 구성 페이지 피그마 UI에 맞게 구성 * refactor: 불필요한 테스트 파일 삭제 * test: 타임 테이블 구성 페이지 스토리북 작성 * test: 타임 테이블 구성 페이지 테스트 코드 작성 * refactor: params변경에 따른 수정 * test: GlbalPortal 추가 * chore: chromatic 추가 * fix: 파일명에 불필요한 공백 제거 * chore: 크로매틱 배포 토큰 변경 * [FEAT] 로그인 페이지 구현 (#24) * feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경 * chore: lint와 test를 넣은 CI yml 파일 작성 (#27) * [FEAT] 테이블 목록화면 구현 (#26) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * refactor: Table 타입 분리 및 Type네이밍 변경 * [TEST] 로그인 페이지 Storybook 테스트코드 구현 (#31) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * feat: LoginPage Storybook 구현 * test: LinkButton 스토리북 구현 * [FIX] 타임 테이블 구성 페이지 피드백 사항 반영 (#29) * fix: 텍스트를 더 자세하게 수정 * feat: 최상단 컴포넌트에 GlobalPortal추가 * fix: 하단 버튼에 main의 content가 가려지던 문제 수정 * refactor: formatSecondsToMinutes 반환 값 변경 * feat: 선택 진영에 따라 모달 제목 텍스트 색상 변경 * feat: input을 select로 변경 * feat: stace에 따른 색상 변경 함수 구현 * feat: debateType가 중립일 경우 stance을 값을 빈문자열로 표시 * feat: input Numer의 leading zero삭제 * feat: 초기값을 이전 설정한 값으로 설정되게 변경 * feat: stace가 중립일 speakerNumber 수정 불가능하게 변경 * feat: 이전 데이터가 중립일 경우 debateType이 이전 데이터를 반영하지 않도록 변경 * [TEST] 테이블 목록 컴포넌트 Storybook 테스트코드 구현 (#35) * test: Table 컴포넌트 Storybook 구현 * test: TableListPage 페이지 Storybook 구현 * test: DropdownForDebateType 컴포넌트 Storybook 구현 * fix: test 코드 통과를 위해 코드 h2 tag 수정 * [FEAT] 테이블 조회 화면 구현 (#34) * refactor: PropsAndConsTitle의 재사용에 따른 폴더 위치 변경 * feat: 테이블 선택 페이지 기본 레이아웃 구현 * fix: footerWrapper을 flex정렬 방향 변경 * refactor: FixedFooterWrapper position 속정 변경에 따른 컴포넌트 명 수정 * feat: TableOverview 라우터 추가 * test: TableOverview 스토리북 작성 * test: PropsAndConsTitle의 위치 변경 * feat: 불필요한 주석 제거 * feat: 버튼 text 수정 * test: MemoryRouter추가 * fix: 사용되지 않은 getStanceColor 수정 * [TEST] 로그인 및 테이블 조회 컴포넌트 테스트코드 구현 (#37) * [CHORE] API 처리를 위해 패키지 추가 (#39) * chore: Added API-related packages to the project * chore: Added and modified codes for API - 가상 API 사용을 위한 msw 관련 파일 추가 - TanStack Query 및 msw 대응하여 main.tsx 수정 * chore: Let msw only enabled on 'dev-mock' mode * chore: Added one blank line at end of package.json * chore: Added EOL at end of environment variable files * [FEAT] 테이블 수정 및 삭제 구현 (#44) * chore: 수정 및 삭제 아이콘을 위해 react-icons 추가 * feat: Table 컴포넌트에 Icons 추가 * feat: implement handleDelete method * feat: implement EditModalButton to edit Tables * refactor: stopPropagation method with MouseEvent 추가 - 버튼 클릭 이벤트가 상위로 전파되는 것을 막기 위해서 추가함 * feat: Edit 버튼 눌렀을 때, CreateTableModal 나오게 구현 * chore: unused closeModal function 삭제 * feat: Table 삭제를 위해 DeleteModalButton 구현 * feat: EditTableModal 구현 * feat: EditTableButton 구현 - 이후 수정 RestAPI 로직 추가 필요 * refactor: Edit 관련 컴포넌트에 name 매개변수 추가 * refactor: DebateTable 타입에 extends하여 delete 타입 추가 * refactor: 토론 유형 수정 불가 * refactor: 토론유형 hover: curser-not-allowed 추가 * refactor: handleDelete 함수형 업데이트로 수정 * refactor: EditTableButton 컴포넌트에 closeModal 매개변수 추가 * fix: TableListPage 테스트코드 수정 * [FEAT] 타임박스에 수정 및 삭제 UI 추가 (#42) * chore: 수정, 삭제 아이콘 이용을 위한 react-icons 추가 * style: 컴포넌트 간의 간경을 더 좁게 수정 * feat: 수정, 삭제 버튼을 합친 EditDeleteButtons 컴포넌트 구현 * style: 분기에 따른 컴포넌트의 높이를 동일하게 수정 * feat: 수정, 삭제 handler 함수 작성 * refactor: 가독성을 위해 중첩된 삼항연산자 분리 * feat: 삭제 버튼 클릭 시, 삭제 확인 모달 구현 * feat: EditDeleteButtons에 aria-label 추가 * test: EditDeleteButtons 스토리북 코드 작성 * feat: TableSetup 테스트에 수정, 삭제 기능 테스트 추가 * [FEAT] API 요청 관련 기능 구현 (#45) * feat: Added API mocking handler * feat: Implemented API request logics - 추가로, BE API 명세서의 반환 예시에 맞추어 일부 변수 이름을 수정 * refactor: Applied some minor changes - URL 생성 함수가 슬래시(/)를 여러 개 포함하는 문제 수정 - 모든 API 함수를 apis.ts에 통합 (추후 메소드 많아지면 분리) * feat: Let msw handler catch arguments 그 외 변경사항으로, API 함수들에서 경로 매개변수(path parameters)가 생략되어 있었던 문제를 해결 * refactor: 주석 추가 * fix: DebateTable 인터페이스 변경에 따른 일부 오류 수정 * feat: Added string identifier for 'useQuery' function --------- * [FEAT] 타임박스의 수정을 드래그앤드롭으로 변경하는 기능 구현 (#47) * feat: 이벤트 발생 비용 감소를 위한 useThrottle 작성 * faet: 타임박스 드래그앤 드롭을 위한 useDragAndDrop 구현 * feat: 타임박스에 드래그앤드롭 영역 지정 * feat: TableSetup에 드래그앤 드롭 선언 * refactor: 불필요한 주석 삭제 * fix: 병합과정에서 발생한 오류 수정 * [CHORE] storybook에 전역적인 decorators 설정 추가 (#50) * chore: 라우터, GlobalPortal설정을 전역 설정에 decorators로 추가 * chore: storybook에 msw 설정 추가 * [FIX] Mock Handler 파일에서 타입 에러 해결 (#54) * feat: Table 타입인 TableInfo 정의 * refactor: result 객체에 속핸 info의 타입을 명시하기 위해 request에 TableInfo 타입 명시 * chore: 이미 정의되있던 PostDebateTableResponseType 타입 사용 * [CHORE] VS Code 작업 영역에 대한 설정 파일 추가 #62 * [FEAT] 타이머 화면 구현 (#58) * feat: Implemented TimerPage * feat: Applied sound effect And applied minor design changed * refactor: Let TimerComponent change TimerPage's background * fix: NEUTRAL 항목에 불필요한 아이콘 뜨는 오류 수정 * feat: Added keyboard event listener on Timer * fix: 토론 순서 조작 시 발생하는 인덱스 초과 오버플로우 해결 * feat: 피드백에 따른 디자인 변경 사항 반영 * feat: Added loading and error screen on TimerPage * feat: Applied feedbacks from PR * fix: 타이머가 현재 debateInfo의 index를 불러오지 못하는 오류 수정 * refactor: 콘솔 로깅 비활성화 * fix: Storybook 출력되지 않는 문제 수정 - use-sound 패키지 제거하고 HTML 태그로 소리 출력 - 별도 컴포넌트를 거치지 않고 직접 gif 파일을 불러와 출력 * refactor: Removed unnecessary codes and comments * refactor: Hoisted all data and functions to the root page * fix: Cleared focus on button when space bar pressed * [FEAT] `ErrorBoundary` 도입 (#65) * feat: ErrorBoundary 도입 * feat: Wrapped router with ErrorBoundaryWrapper * feat: Enabled 'throwOnError' option on QueryClient * feat: Added refresh button on ErrorPage * refactor: Applied feedbacks from PR review - Declared string constants for ErrorBoundary - Set icon size on 'size' parameter instead of TailwindCSS 'className' * [FEAT] API 연결과 테이블 생성과 수정을 위해 funnel 패턴을 이용하여 멀티 스텝 폼 구현 (#57) * fix: 응답 타입을 문서에 맞게 수정 * feat: Agenda 타입 추가 * feat: 테이블을 추가하는 api 훅 추가 * feat: 테이블을 삭제하는 api 훅 추가 * feat: 사용자를 추가하는 api 훅 추가 * feat: 의회식 토론을 수정하는 api 훅 추가 * feat: 토론 리스트를 가져오는 api 훅 추가 * feat: 의호식 토론 정보를 가져오는 api 훅 추가 * style: 컴포넌트간의 간격 추가 * feat: multi-step form 구현을 위한 useFunnel 작성 * feat: multi-step form동안에 새로고침시에도 상태 유지를 위한 useBrowserStorage 구현 * feat: DropdownForDebateType의 로직 변경 * feat: 멀티 스텝을 이용한 방식으로 수정으로 인한 생성 모달, TableSetupPage를 변경 * feat: 테이블 생성과 수정을 위한 멀티 스텝 폼, TableComposition 구현 * feat: 테이블 form 정보 커스텀 훅 구현 * feat: 로그인 페이지에 상태와 api훅 추가 * fix: 타임박스 ui 버그 수정 * feat: 멀티 스텝 폼을 위해 TableSetupPage의 commponents 파일 이동 * feat: 테이블 수정을 모달에서 멀티스텝 폼 변경으로 인한 수정 * refactor: 더미 데이터 제거 * feat: composition 라우터 추가 * fix: 응답값에 맞게 msw 수정 * feat: 테이블 조회에 api 훅 추가 * refactor: 모달에서 멀티스텝폼 변경으로 인한 컴포넌트 명 변경 * fix: agenda와 type의 혼동으로 type 문제 수정 * fix: TableComposition 구현으로 인한 불필요한 파일 삭제 * fix: Type 타입을 영어로 수정 * fix: import 경로 수정 * feat: 테스트 mock을 위한 vitest 설정 * test: TableComposition 구현으로 인한 수정사항 반영 * feat: 버튼에 aria-label 추가 * chore: storybook msw 사용가능하게 설정 추가 * fix: stace 오타 변경 * test: storybook 경로 변경 * test: TableCompositon 스토리북 코드 작성 * fix: TableSetup삭제로 인한 라우터 변경 * chore: cleanup 함수 추가 * feat: 인터페이스 명 수정 * refactor: 한글에서 영어로 상수 변경 * refactor: NEUTRAL Stance 타입 변경 * refactor: typeMapping을 constants로 분리 * refactor: DebatePanel의 DebateTypeToString 수정 * refactor: type 값을 영어 상수로 변경 * [CHORE] 배포 파이프라인 자동화 구축 (#60) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * fix: 병합과정에 충돌 오류 수정 --------- * hotfix: 에러바운더리 코드가 삭제된 것에 대한 반영 (#69) * [REFACTOR] 타이머 기능 개선 외 (#66) * refactor: Applied several changes - Changed interval to 1000 ms (1 sec) - Added function that changes background to remove duplication of same codes - Removed isRunning not necessary * feat: Made TimerPage be able to catch parameters * fix: Recovered deleted ErrorBoundary related files * fix: Set icon size on 'size' argument instead of 'className' * refactor: Separated loading component to page * refactor: Applied several changes - Moved TimerLoadingPage to /src/TimerPage from /src/TimerPage/component - Set css file to print CR/LF correctly - Changed 'useQuery' to 'useGetParliamentaryTableData' hook * refactor: Deleted unneccesary codes * [HOTFIX] GitHub Actions 빌드 실패 문제 해결 (#73) - TableCompositionStep 상수 값을 한글(타임박스입력)에서 영어(TimeBox)로 바꾸며 발생한 문제 수정 - Type 상수 값을 한글(의회식 토론)에서 영어(PARLIAMENTARY)로 바꾸며 발생한 문제 수정 * [FEAT] AWS S3 및 FrontCloud dev, prod 각각 분리 배포 및 github action 구축 (#76) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * feat: dev 배포를 위한 deploy 코드 작성 * feat: prod 배포를 위한 deploy 코드 작성 * chore: merge 후 생성된 불 필요한 코드 삭제 * chore: dev 배포 명료성을 위해 access key 및 secret key 네이밍 변경 * chore: Dev 배포 관련 yml파일에서 bucket 네이밍 변경 * [FEAT] 닉네임 기반 로그인 구현 (#71) * feat: 로그인 시, memberId를 반환하도록 변경 * feat: memberId를 session 스토리지에 저장하도록 util 함수 작성 * fix: currentStep을 영문으로 변경 * feat: 정적으로 선언되 memberId를 스토리지에서 가져오도록 변경 * refactor: route.tsx 위치를 routes 폴더로 변경 * feat: ProtectedRoute 구현 * feat: ProtectedRoute 적용 * refactor: routes위치 변경에 따른 import 수정 * feat: 토론하기 클릭 시, TimerPage 연결 * refactor: 라우터 변경에 따른 수정사항 반영 --------- * [FEAT] 추가 작전 시간 타이머 구현 외 (#77) * feat: Changed API base url to deployed server * feat: Implemented AdditionalTimerComponent * fix: Recovered horizontal padding of useModal wrapper * feat: Deleted top margin of AdditionalTimerSummaryItem * fix: Fixed linting errors * fix: Removed hard-coded URL on source codes * fix: Make app get server URL from .env file * chore: Deleted .env files * chore: Updated .gitignore file to ignore .env files * [CHORE] 배포 최적화 및 배포 환경 구분 (#82) * chore: Separated deploy environments and variables * chore: Applined vite-plugin-compressions2 to compress builds * chore: Changed job name * fix: Added quotes on target path of Cloudfront cache invalidation * chore: Changed web page title * chore: Removed compression-related packages and codes * [HOTFIX] 배포된 앱이 서버와 통신하지 못하는 문제 수정 (#84) * [FIX] PostUserResponseType타입 수정, TableOverview에서 tableId를 url에서 정상적으로 가져오도록 수정 (#86) * fix: PostUserResponseType 타입 변경 * fix: 정적 navigate 제거 * fix: 불필요한 console.log제거 * fix: tableId를 정상적으로 불러오도록 수정 --------- Co-authored-by: Shawn Kang <77564014+i-meant-to-be@users.noreply.github.com> Co-authored-by: EunWoo <eunwoo1341@gmail.com>
* feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경
* Update issue templates * docs: 파일명 수정 * docs: PR 템플릿 생성 (#2) * docs: 자동 issue 설정 할당 * docs: 불필요한 주석 제거 * docs: 이슈 프로젝트 권한 추가 * docs: 자동할당 로직 변경 * feat: 권한 문제로 자동 Project할당 제거 * docs: PR 자동할당 yml 작성 * docs: 불필요한 Project 정보 제거 * docs: Discord comment 알림 yml 작성 * chore: 프로젝트 초기 세팅 * chore: prettier 설정 추가 * feat: 3개의 영역으로 구분된 header(StickyTriSectionHeader) 구현 * feat: 하단에 고정되어 있는 footer wrapper 구현 * feat: main 레이아웃 구현 * feat: 중첩 컴포넌트로 기본 레이아웃 구현 * design: layout의 ContentContanier 가운데 정렬 추가 * design: layout의 ContentContanier padding 추가 * feat: PropsAndConsTitle 구현 * feat: TimerCreationButton 구현 * feat: 테이블 타입 작성 * feat: 초를 분, 초로 포맷팅하는 함수 구현 * feat: DebatePanel 구현 * feat: 테이블 구성 페이지 초기 UI rngus * feat: Pretendard 웹폰트 추가 * chore: storybook 설정 추가 * test: DebatePanel 스토리 북 작성 * test: PropsAndConsTitle 스토리북 테스트 작성 * test: TimerCreationButton 스토리북 테스트 작성 * fix: 파일명에 불필요한 공백 제거 * [FEAT] 페이지 라우팅 적용 (#22) * chore: install react-router-dom * feat: App.tsx와 main.tsx 에서 라우팅 설정 * refactor: createBrowerRouter 방식 적용 - router.tsx 파일 생성하여 라우터 적용 - main.tsx 에서 <RouterProvider router={router} /> 적용 * chore: 불필요한 App.tsx 컴포넌트 삭제 * chore: eol prettier 적용 * [FEAT] 타이머 박스 생성 모달 구현 (#17) * feat: 포털 렌더링 관리를 위한 GlobalPortal 컴포넌트 추가 * feat: 모달 생성을 위한 modal 커스텀 훅 구현 * feat: GlobalPortal 적용 * feat: 제출 이벤트, 버튼 추가 * feat: uesModal 구조 변경 * feat: Stance, DebateType에 export 추가 * test: useModal 테스트 코드 작성 * feat: 타이머 박스 생성 모달 구현 * feat: 타임 테이블 구성 페이지 피그마 UI에 맞게 구성 * refactor: 불필요한 테스트 파일 삭제 * test: 타임 테이블 구성 페이지 스토리북 작성 * test: 타임 테이블 구성 페이지 테스트 코드 작성 * refactor: params변경에 따른 수정 * test: GlbalPortal 추가 * chore: chromatic 추가 * fix: 파일명에 불필요한 공백 제거 * chore: 크로매틱 배포 토큰 변경 * [FEAT] 로그인 페이지 구현 (#24) * feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경 * chore: lint와 test를 넣은 CI yml 파일 작성 (#27) * [FEAT] 테이블 목록화면 구현 (#26) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * refactor: Table 타입 분리 및 Type네이밍 변경 * [TEST] 로그인 페이지 Storybook 테스트코드 구현 (#31) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * feat: LoginPage Storybook 구현 * test: LinkButton 스토리북 구현 * [FIX] 타임 테이블 구성 페이지 피드백 사항 반영 (#29) * fix: 텍스트를 더 자세하게 수정 * feat: 최상단 컴포넌트에 GlobalPortal추가 * fix: 하단 버튼에 main의 content가 가려지던 문제 수정 * refactor: formatSecondsToMinutes 반환 값 변경 * feat: 선택 진영에 따라 모달 제목 텍스트 색상 변경 * feat: input을 select로 변경 * feat: stace에 따른 색상 변경 함수 구현 * feat: debateType가 중립일 경우 stance을 값을 빈문자열로 표시 * feat: input Numer의 leading zero삭제 * feat: 초기값을 이전 설정한 값으로 설정되게 변경 * feat: stace가 중립일 speakerNumber 수정 불가능하게 변경 * feat: 이전 데이터가 중립일 경우 debateType이 이전 데이터를 반영하지 않도록 변경 * [TEST] 테이블 목록 컴포넌트 Storybook 테스트코드 구현 (#35) * test: Table 컴포넌트 Storybook 구현 * test: TableListPage 페이지 Storybook 구현 * test: DropdownForDebateType 컴포넌트 Storybook 구현 * fix: test 코드 통과를 위해 코드 h2 tag 수정 * [FEAT] 테이블 조회 화면 구현 (#34) * refactor: PropsAndConsTitle의 재사용에 따른 폴더 위치 변경 * feat: 테이블 선택 페이지 기본 레이아웃 구현 * fix: footerWrapper을 flex정렬 방향 변경 * refactor: FixedFooterWrapper position 속정 변경에 따른 컴포넌트 명 수정 * feat: TableOverview 라우터 추가 * test: TableOverview 스토리북 작성 * test: PropsAndConsTitle의 위치 변경 * feat: 불필요한 주석 제거 * feat: 버튼 text 수정 * test: MemoryRouter추가 * fix: 사용되지 않은 getStanceColor 수정 * [TEST] 로그인 및 테이블 조회 컴포넌트 테스트코드 구현 (#37) * [CHORE] API 처리를 위해 패키지 추가 (#39) * chore: Added API-related packages to the project * chore: Added and modified codes for API - 가상 API 사용을 위한 msw 관련 파일 추가 - TanStack Query 및 msw 대응하여 main.tsx 수정 * chore: Let msw only enabled on 'dev-mock' mode * chore: Added one blank line at end of package.json * chore: Added EOL at end of environment variable files * [FEAT] 테이블 수정 및 삭제 구현 (#44) * chore: 수정 및 삭제 아이콘을 위해 react-icons 추가 * feat: Table 컴포넌트에 Icons 추가 * feat: implement handleDelete method * feat: implement EditModalButton to edit Tables * refactor: stopPropagation method with MouseEvent 추가 - 버튼 클릭 이벤트가 상위로 전파되는 것을 막기 위해서 추가함 * feat: Edit 버튼 눌렀을 때, CreateTableModal 나오게 구현 * chore: unused closeModal function 삭제 * feat: Table 삭제를 위해 DeleteModalButton 구현 * feat: EditTableModal 구현 * feat: EditTableButton 구현 - 이후 수정 RestAPI 로직 추가 필요 * refactor: Edit 관련 컴포넌트에 name 매개변수 추가 * refactor: DebateTable 타입에 extends하여 delete 타입 추가 * refactor: 토론 유형 수정 불가 * refactor: 토론유형 hover: curser-not-allowed 추가 * refactor: handleDelete 함수형 업데이트로 수정 * refactor: EditTableButton 컴포넌트에 closeModal 매개변수 추가 * fix: TableListPage 테스트코드 수정 * [FEAT] 타임박스에 수정 및 삭제 UI 추가 (#42) * chore: 수정, 삭제 아이콘 이용을 위한 react-icons 추가 * style: 컴포넌트 간의 간경을 더 좁게 수정 * feat: 수정, 삭제 버튼을 합친 EditDeleteButtons 컴포넌트 구현 * style: 분기에 따른 컴포넌트의 높이를 동일하게 수정 * feat: 수정, 삭제 handler 함수 작성 * refactor: 가독성을 위해 중첩된 삼항연산자 분리 * feat: 삭제 버튼 클릭 시, 삭제 확인 모달 구현 * feat: EditDeleteButtons에 aria-label 추가 * test: EditDeleteButtons 스토리북 코드 작성 * feat: TableSetup 테스트에 수정, 삭제 기능 테스트 추가 * [FEAT] API 요청 관련 기능 구현 (#45) * feat: Added API mocking handler * feat: Implemented API request logics - 추가로, BE API 명세서의 반환 예시에 맞추어 일부 변수 이름을 수정 * refactor: Applied some minor changes - URL 생성 함수가 슬래시(/)를 여러 개 포함하는 문제 수정 - 모든 API 함수를 apis.ts에 통합 (추후 메소드 많아지면 분리) * feat: Let msw handler catch arguments 그 외 변경사항으로, API 함수들에서 경로 매개변수(path parameters)가 생략되어 있었던 문제를 해결 * refactor: 주석 추가 * fix: DebateTable 인터페이스 변경에 따른 일부 오류 수정 * feat: Added string identifier for 'useQuery' function --------- * [FEAT] 타임박스의 수정을 드래그앤드롭으로 변경하는 기능 구현 (#47) * feat: 이벤트 발생 비용 감소를 위한 useThrottle 작성 * faet: 타임박스 드래그앤 드롭을 위한 useDragAndDrop 구현 * feat: 타임박스에 드래그앤드롭 영역 지정 * feat: TableSetup에 드래그앤 드롭 선언 * refactor: 불필요한 주석 삭제 * fix: 병합과정에서 발생한 오류 수정 * [CHORE] storybook에 전역적인 decorators 설정 추가 (#50) * chore: 라우터, GlobalPortal설정을 전역 설정에 decorators로 추가 * chore: storybook에 msw 설정 추가 * [FIX] Mock Handler 파일에서 타입 에러 해결 (#54) * feat: Table 타입인 TableInfo 정의 * refactor: result 객체에 속핸 info의 타입을 명시하기 위해 request에 TableInfo 타입 명시 * chore: 이미 정의되있던 PostDebateTableResponseType 타입 사용 * [CHORE] VS Code 작업 영역에 대한 설정 파일 추가 #62 * [FEAT] 타이머 화면 구현 (#58) * feat: Implemented TimerPage * feat: Applied sound effect And applied minor design changed * refactor: Let TimerComponent change TimerPage's background * fix: NEUTRAL 항목에 불필요한 아이콘 뜨는 오류 수정 * feat: Added keyboard event listener on Timer * fix: 토론 순서 조작 시 발생하는 인덱스 초과 오버플로우 해결 * feat: 피드백에 따른 디자인 변경 사항 반영 * feat: Added loading and error screen on TimerPage * feat: Applied feedbacks from PR * fix: 타이머가 현재 debateInfo의 index를 불러오지 못하는 오류 수정 * refactor: 콘솔 로깅 비활성화 * fix: Storybook 출력되지 않는 문제 수정 - use-sound 패키지 제거하고 HTML 태그로 소리 출력 - 별도 컴포넌트를 거치지 않고 직접 gif 파일을 불러와 출력 * refactor: Removed unnecessary codes and comments * refactor: Hoisted all data and functions to the root page * fix: Cleared focus on button when space bar pressed * [FEAT] `ErrorBoundary` 도입 (#65) * feat: ErrorBoundary 도입 * feat: Wrapped router with ErrorBoundaryWrapper * feat: Enabled 'throwOnError' option on QueryClient * feat: Added refresh button on ErrorPage * refactor: Applied feedbacks from PR review - Declared string constants for ErrorBoundary - Set icon size on 'size' parameter instead of TailwindCSS 'className' * [FEAT] API 연결과 테이블 생성과 수정을 위해 funnel 패턴을 이용하여 멀티 스텝 폼 구현 (#57) * fix: 응답 타입을 문서에 맞게 수정 * feat: Agenda 타입 추가 * feat: 테이블을 추가하는 api 훅 추가 * feat: 테이블을 삭제하는 api 훅 추가 * feat: 사용자를 추가하는 api 훅 추가 * feat: 의회식 토론을 수정하는 api 훅 추가 * feat: 토론 리스트를 가져오는 api 훅 추가 * feat: 의호식 토론 정보를 가져오는 api 훅 추가 * style: 컴포넌트간의 간격 추가 * feat: multi-step form 구현을 위한 useFunnel 작성 * feat: multi-step form동안에 새로고침시에도 상태 유지를 위한 useBrowserStorage 구현 * feat: DropdownForDebateType의 로직 변경 * feat: 멀티 스텝을 이용한 방식으로 수정으로 인한 생성 모달, TableSetupPage를 변경 * feat: 테이블 생성과 수정을 위한 멀티 스텝 폼, TableComposition 구현 * feat: 테이블 form 정보 커스텀 훅 구현 * feat: 로그인 페이지에 상태와 api훅 추가 * fix: 타임박스 ui 버그 수정 * feat: 멀티 스텝 폼을 위해 TableSetupPage의 commponents 파일 이동 * feat: 테이블 수정을 모달에서 멀티스텝 폼 변경으로 인한 수정 * refactor: 더미 데이터 제거 * feat: composition 라우터 추가 * fix: 응답값에 맞게 msw 수정 * feat: 테이블 조회에 api 훅 추가 * refactor: 모달에서 멀티스텝폼 변경으로 인한 컴포넌트 명 변경 * fix: agenda와 type의 혼동으로 type 문제 수정 * fix: TableComposition 구현으로 인한 불필요한 파일 삭제 * fix: Type 타입을 영어로 수정 * fix: import 경로 수정 * feat: 테스트 mock을 위한 vitest 설정 * test: TableComposition 구현으로 인한 수정사항 반영 * feat: 버튼에 aria-label 추가 * chore: storybook msw 사용가능하게 설정 추가 * fix: stace 오타 변경 * test: storybook 경로 변경 * test: TableCompositon 스토리북 코드 작성 * fix: TableSetup삭제로 인한 라우터 변경 * chore: cleanup 함수 추가 * feat: 인터페이스 명 수정 * refactor: 한글에서 영어로 상수 변경 * refactor: NEUTRAL Stance 타입 변경 * refactor: typeMapping을 constants로 분리 * refactor: DebatePanel의 DebateTypeToString 수정 * refactor: type 값을 영어 상수로 변경 * [CHORE] 배포 파이프라인 자동화 구축 (#60) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * fix: 병합과정에 충돌 오류 수정 --------- * hotfix: 에러바운더리 코드가 삭제된 것에 대한 반영 (#69) * [REFACTOR] 타이머 기능 개선 외 (#66) * refactor: Applied several changes - Changed interval to 1000 ms (1 sec) - Added function that changes background to remove duplication of same codes - Removed isRunning not necessary * feat: Made TimerPage be able to catch parameters * fix: Recovered deleted ErrorBoundary related files * fix: Set icon size on 'size' argument instead of 'className' * refactor: Separated loading component to page * refactor: Applied several changes - Moved TimerLoadingPage to /src/TimerPage from /src/TimerPage/component - Set css file to print CR/LF correctly - Changed 'useQuery' to 'useGetParliamentaryTableData' hook * refactor: Deleted unneccesary codes * [HOTFIX] GitHub Actions 빌드 실패 문제 해결 (#73) - TableCompositionStep 상수 값을 한글(타임박스입력)에서 영어(TimeBox)로 바꾸며 발생한 문제 수정 - Type 상수 값을 한글(의회식 토론)에서 영어(PARLIAMENTARY)로 바꾸며 발생한 문제 수정 * [FEAT] AWS S3 및 FrontCloud dev, prod 각각 분리 배포 및 github action 구축 (#76) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * feat: dev 배포를 위한 deploy 코드 작성 * feat: prod 배포를 위한 deploy 코드 작성 * chore: merge 후 생성된 불 필요한 코드 삭제 * chore: dev 배포 명료성을 위해 access key 및 secret key 네이밍 변경 * chore: Dev 배포 관련 yml파일에서 bucket 네이밍 변경 * [FEAT] 닉네임 기반 로그인 구현 (#71) * feat: 로그인 시, memberId를 반환하도록 변경 * feat: memberId를 session 스토리지에 저장하도록 util 함수 작성 * fix: currentStep을 영문으로 변경 * feat: 정적으로 선언되 memberId를 스토리지에서 가져오도록 변경 * refactor: route.tsx 위치를 routes 폴더로 변경 * feat: ProtectedRoute 구현 * feat: ProtectedRoute 적용 * refactor: routes위치 변경에 따른 import 수정 * feat: 토론하기 클릭 시, TimerPage 연결 * refactor: 라우터 변경에 따른 수정사항 반영 --------- * [FEAT] 추가 작전 시간 타이머 구현 외 (#77) * feat: Changed API base url to deployed server * feat: Implemented AdditionalTimerComponent * fix: Recovered horizontal padding of useModal wrapper * feat: Deleted top margin of AdditionalTimerSummaryItem * fix: Fixed linting errors * fix: Removed hard-coded URL on source codes * fix: Make app get server URL from .env file * chore: Deleted .env files * chore: Updated .gitignore file to ignore .env files * [CHORE] 배포 최적화 및 배포 환경 구분 (#82) * chore: Separated deploy environments and variables * chore: Applined vite-plugin-compressions2 to compress builds * chore: Changed job name * fix: Added quotes on target path of Cloudfront cache invalidation * chore: Changed web page title * chore: Removed compression-related packages and codes * [HOTFIX] 배포된 앱이 서버와 통신하지 못하는 문제 수정 (#84) * [FIX] PostUserResponseType타입 수정, TableOverview에서 tableId를 url에서 정상적으로 가져오도록 수정 (#86) * fix: PostUserResponseType 타입 변경 * fix: 정적 navigate 제거 * fix: 불필요한 console.log제거 * fix: tableId를 정상적으로 불러오도록 수정 --------- Co-authored-by: Shawn Kang <77564014+i-meant-to-be@users.noreply.github.com> Co-authored-by: EunWoo <eunwoo1341@gmail.com>
* feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경
* Update issue templates * docs: 파일명 수정 * docs: PR 템플릿 생성 (#2) * docs: 자동 issue 설정 할당 * docs: 불필요한 주석 제거 * docs: 이슈 프로젝트 권한 추가 * docs: 자동할당 로직 변경 * feat: 권한 문제로 자동 Project할당 제거 * docs: PR 자동할당 yml 작성 * docs: 불필요한 Project 정보 제거 * docs: Discord comment 알림 yml 작성 * chore: 프로젝트 초기 세팅 * chore: prettier 설정 추가 * feat: 3개의 영역으로 구분된 header(StickyTriSectionHeader) 구현 * feat: 하단에 고정되어 있는 footer wrapper 구현 * feat: main 레이아웃 구현 * feat: 중첩 컴포넌트로 기본 레이아웃 구현 * design: layout의 ContentContanier 가운데 정렬 추가 * design: layout의 ContentContanier padding 추가 * feat: PropsAndConsTitle 구현 * feat: TimerCreationButton 구현 * feat: 테이블 타입 작성 * feat: 초를 분, 초로 포맷팅하는 함수 구현 * feat: DebatePanel 구현 * feat: 테이블 구성 페이지 초기 UI rngus * feat: Pretendard 웹폰트 추가 * chore: storybook 설정 추가 * test: DebatePanel 스토리 북 작성 * test: PropsAndConsTitle 스토리북 테스트 작성 * test: TimerCreationButton 스토리북 테스트 작성 * fix: 파일명에 불필요한 공백 제거 * [FEAT] 페이지 라우팅 적용 (#22) * chore: install react-router-dom * feat: App.tsx와 main.tsx 에서 라우팅 설정 * refactor: createBrowerRouter 방식 적용 - router.tsx 파일 생성하여 라우터 적용 - main.tsx 에서 <RouterProvider router={router} /> 적용 * chore: 불필요한 App.tsx 컴포넌트 삭제 * chore: eol prettier 적용 * [FEAT] 타이머 박스 생성 모달 구현 (#17) * feat: 포털 렌더링 관리를 위한 GlobalPortal 컴포넌트 추가 * feat: 모달 생성을 위한 modal 커스텀 훅 구현 * feat: GlobalPortal 적용 * feat: 제출 이벤트, 버튼 추가 * feat: uesModal 구조 변경 * feat: Stance, DebateType에 export 추가 * test: useModal 테스트 코드 작성 * feat: 타이머 박스 생성 모달 구현 * feat: 타임 테이블 구성 페이지 피그마 UI에 맞게 구성 * refactor: 불필요한 테스트 파일 삭제 * test: 타임 테이블 구성 페이지 스토리북 작성 * test: 타임 테이블 구성 페이지 테스트 코드 작성 * refactor: params변경에 따른 수정 * test: GlbalPortal 추가 * chore: chromatic 추가 * fix: 파일명에 불필요한 공백 제거 * chore: 크로매틱 배포 토큰 변경 * [FEAT] 로그인 페이지 구현 (#24) * feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경 * chore: lint와 test를 넣은 CI yml 파일 작성 (#27) * [FEAT] 테이블 목록화면 구현 (#26) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * refactor: Table 타입 분리 및 Type네이밍 변경 * [TEST] 로그인 페이지 Storybook 테스트코드 구현 (#31) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * feat: LoginPage Storybook 구현 * test: LinkButton 스토리북 구현 * [FIX] 타임 테이블 구성 페이지 피드백 사항 반영 (#29) * fix: 텍스트를 더 자세하게 수정 * feat: 최상단 컴포넌트에 GlobalPortal추가 * fix: 하단 버튼에 main의 content가 가려지던 문제 수정 * refactor: formatSecondsToMinutes 반환 값 변경 * feat: 선택 진영에 따라 모달 제목 텍스트 색상 변경 * feat: input을 select로 변경 * feat: stace에 따른 색상 변경 함수 구현 * feat: debateType가 중립일 경우 stance을 값을 빈문자열로 표시 * feat: input Numer의 leading zero삭제 * feat: 초기값을 이전 설정한 값으로 설정되게 변경 * feat: stace가 중립일 speakerNumber 수정 불가능하게 변경 * feat: 이전 데이터가 중립일 경우 debateType이 이전 데이터를 반영하지 않도록 변경 * [TEST] 테이블 목록 컴포넌트 Storybook 테스트코드 구현 (#35) * test: Table 컴포넌트 Storybook 구현 * test: TableListPage 페이지 Storybook 구현 * test: DropdownForDebateType 컴포넌트 Storybook 구현 * fix: test 코드 통과를 위해 코드 h2 tag 수정 * [FEAT] 테이블 조회 화면 구현 (#34) * refactor: PropsAndConsTitle의 재사용에 따른 폴더 위치 변경 * feat: 테이블 선택 페이지 기본 레이아웃 구현 * fix: footerWrapper을 flex정렬 방향 변경 * refactor: FixedFooterWrapper position 속정 변경에 따른 컴포넌트 명 수정 * feat: TableOverview 라우터 추가 * test: TableOverview 스토리북 작성 * test: PropsAndConsTitle의 위치 변경 * feat: 불필요한 주석 제거 * feat: 버튼 text 수정 * test: MemoryRouter추가 * fix: 사용되지 않은 getStanceColor 수정 * [TEST] 로그인 및 테이블 조회 컴포넌트 테스트코드 구현 (#37) * [CHORE] API 처리를 위해 패키지 추가 (#39) * chore: Added API-related packages to the project * chore: Added and modified codes for API - 가상 API 사용을 위한 msw 관련 파일 추가 - TanStack Query 및 msw 대응하여 main.tsx 수정 * chore: Let msw only enabled on 'dev-mock' mode * chore: Added one blank line at end of package.json * chore: Added EOL at end of environment variable files * [FEAT] 테이블 수정 및 삭제 구현 (#44) * chore: 수정 및 삭제 아이콘을 위해 react-icons 추가 * feat: Table 컴포넌트에 Icons 추가 * feat: implement handleDelete method * feat: implement EditModalButton to edit Tables * refactor: stopPropagation method with MouseEvent 추가 - 버튼 클릭 이벤트가 상위로 전파되는 것을 막기 위해서 추가함 * feat: Edit 버튼 눌렀을 때, CreateTableModal 나오게 구현 * chore: unused closeModal function 삭제 * feat: Table 삭제를 위해 DeleteModalButton 구현 * feat: EditTableModal 구현 * feat: EditTableButton 구현 - 이후 수정 RestAPI 로직 추가 필요 * refactor: Edit 관련 컴포넌트에 name 매개변수 추가 * refactor: DebateTable 타입에 extends하여 delete 타입 추가 * refactor: 토론 유형 수정 불가 * refactor: 토론유형 hover: curser-not-allowed 추가 * refactor: handleDelete 함수형 업데이트로 수정 * refactor: EditTableButton 컴포넌트에 closeModal 매개변수 추가 * fix: TableListPage 테스트코드 수정 * [FEAT] 타임박스에 수정 및 삭제 UI 추가 (#42) * chore: 수정, 삭제 아이콘 이용을 위한 react-icons 추가 * style: 컴포넌트 간의 간경을 더 좁게 수정 * feat: 수정, 삭제 버튼을 합친 EditDeleteButtons 컴포넌트 구현 * style: 분기에 따른 컴포넌트의 높이를 동일하게 수정 * feat: 수정, 삭제 handler 함수 작성 * refactor: 가독성을 위해 중첩된 삼항연산자 분리 * feat: 삭제 버튼 클릭 시, 삭제 확인 모달 구현 * feat: EditDeleteButtons에 aria-label 추가 * test: EditDeleteButtons 스토리북 코드 작성 * feat: TableSetup 테스트에 수정, 삭제 기능 테스트 추가 * [FEAT] API 요청 관련 기능 구현 (#45) * feat: Added API mocking handler * feat: Implemented API request logics - 추가로, BE API 명세서의 반환 예시에 맞추어 일부 변수 이름을 수정 * refactor: Applied some minor changes - URL 생성 함수가 슬래시(/)를 여러 개 포함하는 문제 수정 - 모든 API 함수를 apis.ts에 통합 (추후 메소드 많아지면 분리) * feat: Let msw handler catch arguments 그 외 변경사항으로, API 함수들에서 경로 매개변수(path parameters)가 생략되어 있었던 문제를 해결 * refactor: 주석 추가 * fix: DebateTable 인터페이스 변경에 따른 일부 오류 수정 * feat: Added string identifier for 'useQuery' function --------- * [FEAT] 타임박스의 수정을 드래그앤드롭으로 변경하는 기능 구현 (#47) * feat: 이벤트 발생 비용 감소를 위한 useThrottle 작성 * faet: 타임박스 드래그앤 드롭을 위한 useDragAndDrop 구현 * feat: 타임박스에 드래그앤드롭 영역 지정 * feat: TableSetup에 드래그앤 드롭 선언 * refactor: 불필요한 주석 삭제 * fix: 병합과정에서 발생한 오류 수정 * [CHORE] storybook에 전역적인 decorators 설정 추가 (#50) * chore: 라우터, GlobalPortal설정을 전역 설정에 decorators로 추가 * chore: storybook에 msw 설정 추가 * [FIX] Mock Handler 파일에서 타입 에러 해결 (#54) * feat: Table 타입인 TableInfo 정의 * refactor: result 객체에 속핸 info의 타입을 명시하기 위해 request에 TableInfo 타입 명시 * chore: 이미 정의되있던 PostDebateTableResponseType 타입 사용 * [CHORE] VS Code 작업 영역에 대한 설정 파일 추가 #62 * [FEAT] 타이머 화면 구현 (#58) * feat: Implemented TimerPage * feat: Applied sound effect And applied minor design changed * refactor: Let TimerComponent change TimerPage's background * fix: NEUTRAL 항목에 불필요한 아이콘 뜨는 오류 수정 * feat: Added keyboard event listener on Timer * fix: 토론 순서 조작 시 발생하는 인덱스 초과 오버플로우 해결 * feat: 피드백에 따른 디자인 변경 사항 반영 * feat: Added loading and error screen on TimerPage * feat: Applied feedbacks from PR * fix: 타이머가 현재 debateInfo의 index를 불러오지 못하는 오류 수정 * refactor: 콘솔 로깅 비활성화 * fix: Storybook 출력되지 않는 문제 수정 - use-sound 패키지 제거하고 HTML 태그로 소리 출력 - 별도 컴포넌트를 거치지 않고 직접 gif 파일을 불러와 출력 * refactor: Removed unnecessary codes and comments * refactor: Hoisted all data and functions to the root page * fix: Cleared focus on button when space bar pressed * [FEAT] `ErrorBoundary` 도입 (#65) * feat: ErrorBoundary 도입 * feat: Wrapped router with ErrorBoundaryWrapper * feat: Enabled 'throwOnError' option on QueryClient * feat: Added refresh button on ErrorPage * refactor: Applied feedbacks from PR review - Declared string constants for ErrorBoundary - Set icon size on 'size' parameter instead of TailwindCSS 'className' * [FEAT] API 연결과 테이블 생성과 수정을 위해 funnel 패턴을 이용하여 멀티 스텝 폼 구현 (#57) * fix: 응답 타입을 문서에 맞게 수정 * feat: Agenda 타입 추가 * feat: 테이블을 추가하는 api 훅 추가 * feat: 테이블을 삭제하는 api 훅 추가 * feat: 사용자를 추가하는 api 훅 추가 * feat: 의회식 토론을 수정하는 api 훅 추가 * feat: 토론 리스트를 가져오는 api 훅 추가 * feat: 의호식 토론 정보를 가져오는 api 훅 추가 * style: 컴포넌트간의 간격 추가 * feat: multi-step form 구현을 위한 useFunnel 작성 * feat: multi-step form동안에 새로고침시에도 상태 유지를 위한 useBrowserStorage 구현 * feat: DropdownForDebateType의 로직 변경 * feat: 멀티 스텝을 이용한 방식으로 수정으로 인한 생성 모달, TableSetupPage를 변경 * feat: 테이블 생성과 수정을 위한 멀티 스텝 폼, TableComposition 구현 * feat: 테이블 form 정보 커스텀 훅 구현 * feat: 로그인 페이지에 상태와 api훅 추가 * fix: 타임박스 ui 버그 수정 * feat: 멀티 스텝 폼을 위해 TableSetupPage의 commponents 파일 이동 * feat: 테이블 수정을 모달에서 멀티스텝 폼 변경으로 인한 수정 * refactor: 더미 데이터 제거 * feat: composition 라우터 추가 * fix: 응답값에 맞게 msw 수정 * feat: 테이블 조회에 api 훅 추가 * refactor: 모달에서 멀티스텝폼 변경으로 인한 컴포넌트 명 변경 * fix: agenda와 type의 혼동으로 type 문제 수정 * fix: TableComposition 구현으로 인한 불필요한 파일 삭제 * fix: Type 타입을 영어로 수정 * fix: import 경로 수정 * feat: 테스트 mock을 위한 vitest 설정 * test: TableComposition 구현으로 인한 수정사항 반영 * feat: 버튼에 aria-label 추가 * chore: storybook msw 사용가능하게 설정 추가 * fix: stace 오타 변경 * test: storybook 경로 변경 * test: TableCompositon 스토리북 코드 작성 * fix: TableSetup삭제로 인한 라우터 변경 * chore: cleanup 함수 추가 * feat: 인터페이스 명 수정 * refactor: 한글에서 영어로 상수 변경 * refactor: NEUTRAL Stance 타입 변경 * refactor: typeMapping을 constants로 분리 * refactor: DebatePanel의 DebateTypeToString 수정 * refactor: type 값을 영어 상수로 변경 * [CHORE] 배포 파이프라인 자동화 구축 (#60) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * fix: 병합과정에 충돌 오류 수정 --------- * hotfix: 에러바운더리 코드가 삭제된 것에 대한 반영 (#69) * [REFACTOR] 타이머 기능 개선 외 (#66) * refactor: Applied several changes - Changed interval to 1000 ms (1 sec) - Added function that changes background to remove duplication of same codes - Removed isRunning not necessary * feat: Made TimerPage be able to catch parameters * fix: Recovered deleted ErrorBoundary related files * fix: Set icon size on 'size' argument instead of 'className' * refactor: Separated loading component to page * refactor: Applied several changes - Moved TimerLoadingPage to /src/TimerPage from /src/TimerPage/component - Set css file to print CR/LF correctly - Changed 'useQuery' to 'useGetParliamentaryTableData' hook * refactor: Deleted unneccesary codes * [HOTFIX] GitHub Actions 빌드 실패 문제 해결 (#73) - TableCompositionStep 상수 값을 한글(타임박스입력)에서 영어(TimeBox)로 바꾸며 발생한 문제 수정 - Type 상수 값을 한글(의회식 토론)에서 영어(PARLIAMENTARY)로 바꾸며 발생한 문제 수정 * [FEAT] AWS S3 및 FrontCloud dev, prod 각각 분리 배포 및 github action 구축 (#76) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * feat: dev 배포를 위한 deploy 코드 작성 * feat: prod 배포를 위한 deploy 코드 작성 * chore: merge 후 생성된 불 필요한 코드 삭제 * chore: dev 배포 명료성을 위해 access key 및 secret key 네이밍 변경 * chore: Dev 배포 관련 yml파일에서 bucket 네이밍 변경 * [FEAT] 닉네임 기반 로그인 구현 (#71) * feat: 로그인 시, memberId를 반환하도록 변경 * feat: memberId를 session 스토리지에 저장하도록 util 함수 작성 * fix: currentStep을 영문으로 변경 * feat: 정적으로 선언되 memberId를 스토리지에서 가져오도록 변경 * refactor: route.tsx 위치를 routes 폴더로 변경 * feat: ProtectedRoute 구현 * feat: ProtectedRoute 적용 * refactor: routes위치 변경에 따른 import 수정 * feat: 토론하기 클릭 시, TimerPage 연결 * refactor: 라우터 변경에 따른 수정사항 반영 --------- * [FEAT] 추가 작전 시간 타이머 구현 외 (#77) * feat: Changed API base url to deployed server * feat: Implemented AdditionalTimerComponent * fix: Recovered horizontal padding of useModal wrapper * feat: Deleted top margin of AdditionalTimerSummaryItem * fix: Fixed linting errors * fix: Removed hard-coded URL on source codes * fix: Make app get server URL from .env file * chore: Deleted .env files * chore: Updated .gitignore file to ignore .env files * [CHORE] 배포 최적화 및 배포 환경 구분 (#82) * chore: Separated deploy environments and variables * chore: Applined vite-plugin-compressions2 to compress builds * chore: Changed job name * fix: Added quotes on target path of Cloudfront cache invalidation * chore: Changed web page title * chore: Removed compression-related packages and codes * [HOTFIX] 배포된 앱이 서버와 통신하지 못하는 문제 수정 (#84) * [FIX] PostUserResponseType타입 수정, TableOverview에서 tableId를 url에서 정상적으로 가져오도록 수정 (#86) * fix: PostUserResponseType 타입 변경 * fix: 정적 navigate 제거 * fix: 불필요한 console.log제거 * fix: tableId를 정상적으로 불러오도록 수정 --------- Co-authored-by: Shawn Kang <77564014+i-meant-to-be@users.noreply.github.com> Co-authored-by: EunWoo <eunwoo1341@gmail.com>
* Update issue templates * docs: 파일명 수정 * chore: 프로젝트 초기 세팅 * feat: 하단에 고정되어 있는 footer wrapper 구현 * feat: 중첩 컴포넌트로 기본 레이아웃 구현 * feat: PropsAndConsTitle 구현 * feat: TimerCreationButton 구현 * feat: DebatePanel 구현 * feat: 테이블 구성 페이지 초기 UI rngus * chore: storybook 설정 추가 * test: DebatePanel 스토리 북 작성 * test: PropsAndConsTitle 스토리북 테스트 작성 * test: TimerCreationButton 스토리북 테스트 작성 * fix: 파일명에 불필요한 공백 제거 * [FEAT] 페이지 라우팅 적용 (#22) * chore: install react-router-dom * feat: App.tsx와 main.tsx 에서 라우팅 설정 * refactor: createBrowerRouter 방식 적용 - router.tsx 파일 생성하여 라우터 적용 - main.tsx 에서 <RouterProvider router={router} /> 적용 * chore: 불필요한 App.tsx 컴포넌트 삭제 * chore: eol prettier 적용 * [FEAT] 타이머 박스 생성 모달 구현 (#17) * feat: 포털 렌더링 관리를 위한 GlobalPortal 컴포넌트 추가 * feat: 모달 생성을 위한 modal 커스텀 훅 구현 * feat: GlobalPortal 적용 * feat: 제출 이벤트, 버튼 추가 * feat: uesModal 구조 변경 * feat: Stance, DebateType에 export 추가 * test: useModal 테스트 코드 작성 * feat: 타이머 박스 생성 모달 구현 * feat: 타임 테이블 구성 페이지 피그마 UI에 맞게 구성 * refactor: 불필요한 테스트 파일 삭제 * test: 타임 테이블 구성 페이지 스토리북 작성 * test: 타임 테이블 구성 페이지 테스트 코드 작성 * refactor: params변경에 따른 수정 * test: GlbalPortal 추가 * chore: chromatic 추가 * fix: 파일명에 불필요한 공백 제거 * chore: 크로매틱 배포 토큰 변경 * [FEAT] 로그인 페이지 구현 (#24) * feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경 * [FEAT] 테이블 목록화면 구현 (#26) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * refactor: Table 타입 분리 및 Type네이밍 변경 * [FIX] 타임 테이블 구성 페이지 피드백 사항 반영 (#29) * fix: 텍스트를 더 자세하게 수정 * feat: 최상단 컴포넌트에 GlobalPortal추가 * fix: 하단 버튼에 main의 content가 가려지던 문제 수정 * refactor: formatSecondsToMinutes 반환 값 변경 * feat: 선택 진영에 따라 모달 제목 텍스트 색상 변경 * feat: input을 select로 변경 * feat: stace에 따른 색상 변경 함수 구현 * feat: debateType가 중립일 경우 stance을 값을 빈문자열로 표시 * feat: input Numer의 leading zero삭제 * feat: 초기값을 이전 설정한 값으로 설정되게 변경 * feat: stace가 중립일 speakerNumber 수정 불가능하게 변경 * feat: 이전 데이터가 중립일 경우 debateType이 이전 데이터를 반영하지 않도록 변경 * [TEST] 테이블 목록 컴포넌트 Storybook 테스트코드 구현 (#35) * test: Table 컴포넌트 Storybook 구현 * test: TableListPage 페이지 Storybook 구현 * test: DropdownForDebateType 컴포넌트 Storybook 구현 * fix: test 코드 통과를 위해 코드 h2 tag 수정 * [FEAT] 테이블 조회 화면 구현 (#34) * refactor: PropsAndConsTitle의 재사용에 따른 폴더 위치 변경 * feat: 테이블 선택 페이지 기본 레이아웃 구현 * fix: footerWrapper을 flex정렬 방향 변경 * refactor: FixedFooterWrapper position 속정 변경에 따른 컴포넌트 명 수정 * feat: TableOverview 라우터 추가 * test: TableOverview 스토리북 작성 * test: PropsAndConsTitle의 위치 변경 * feat: 불필요한 주석 제거 * feat: 버튼 text 수정 * test: MemoryRouter추가 * fix: 사용되지 않은 getStanceColor 수정 * [CHORE] API 처리를 위해 패키지 추가 (#39) * chore: Added API-related packages to the project * chore: Added and modified codes for API - 가상 API 사용을 위한 msw 관련 파일 추가 - TanStack Query 및 msw 대응하여 main.tsx 수정 * chore: Let msw only enabled on 'dev-mock' mode * chore: Added one blank line at end of package.json * chore: Added EOL at end of environment variable files * [FEAT] 테이블 수정 및 삭제 구현 (#44) * chore: 수정 및 삭제 아이콘을 위해 react-icons 추가 * feat: Table 컴포넌트에 Icons 추가 * feat: implement handleDelete method * feat: implement EditModalButton to edit Tables * refactor: stopPropagation method with MouseEvent 추가 - 버튼 클릭 이벤트가 상위로 전파되는 것을 막기 위해서 추가함 * feat: Edit 버튼 눌렀을 때, CreateTableModal 나오게 구현 * chore: unused closeModal function 삭제 * feat: Table 삭제를 위해 DeleteModalButton 구현 * feat: EditTableModal 구현 * feat: EditTableButton 구현 - 이후 수정 RestAPI 로직 추가 필요 * refactor: Edit 관련 컴포넌트에 name 매개변수 추가 * refactor: DebateTable 타입에 extends하여 delete 타입 추가 * refactor: 토론 유형 수정 불가 * refactor: 토론유형 hover: curser-not-allowed 추가 * refactor: handleDelete 함수형 업데이트로 수정 * refactor: EditTableButton 컴포넌트에 closeModal 매개변수 추가 * fix: TableListPage 테스트코드 수정 * [FEAT] 타임박스에 수정 및 삭제 UI 추가 (#42) * chore: 수정, 삭제 아이콘 이용을 위한 react-icons 추가 * style: 컴포넌트 간의 간경을 더 좁게 수정 * feat: 수정, 삭제 버튼을 합친 EditDeleteButtons 컴포넌트 구현 * style: 분기에 따른 컴포넌트의 높이를 동일하게 수정 * feat: 수정, 삭제 handler 함수 작성 * refactor: 가독성을 위해 중첩된 삼항연산자 분리 * feat: 삭제 버튼 클릭 시, 삭제 확인 모달 구현 * feat: EditDeleteButtons에 aria-label 추가 * test: EditDeleteButtons 스토리북 코드 작성 * feat: TableSetup 테스트에 수정, 삭제 기능 테스트 추가 * [FEAT] API 요청 관련 기능 구현 (#45) * feat: Added API mocking handler * feat: Implemented API request logics - 추가로, BE API 명세서의 반환 예시에 맞추어 일부 변수 이름을 수정 * refactor: Applied some minor changes - URL 생성 함수가 슬래시(/)를 여러 개 포함하는 문제 수정 - 모든 API 함수를 apis.ts에 통합 (추후 메소드 많아지면 분리) * feat: Let msw handler catch arguments 그 외 변경사항으로, API 함수들에서 경로 매개변수(path parameters)가 생략되어 있었던 문제를 해결 * refactor: 주석 추가 * fix: DebateTable 인터페이스 변경에 따른 일부 오류 수정 * feat: Added string identifier for 'useQuery' function --------- Co-authored-by: jaeml06 <jaeml0630@gmail.com> * [FEAT] 타임박스의 수정을 드래그앤드롭으로 변경하는 기능 구현 (#47) * feat: 이벤트 발생 비용 감소를 위한 useThrottle 작성 * faet: 타임박스 드래그앤 드롭을 위한 useDragAndDrop 구현 * feat: 타임박스에 드래그앤드롭 영역 지정 * feat: TableSetup에 드래그앤 드롭 선언 * refactor: 불필요한 주석 삭제 * fix: 병합과정에서 발생한 오류 수정 * [CHORE] storybook에 전역적인 decorators 설정 추가 (#50) * chore: 라우터, GlobalPortal설정을 전역 설정에 decorators로 추가 * chore: storybook에 msw 설정 추가 * [FIX] Mock Handler 파일에서 타입 에러 해결 (#54) * feat: Table 타입인 TableInfo 정의 * refactor: result 객체에 속핸 info의 타입을 명시하기 위해 request에 TableInfo 타입 명시 * chore: 이미 정의되있던 PostDebateTableResponseType 타입 사용 * [FEAT] 타이머 화면 구현 (#58) * feat: Implemented TimerPage * feat: Applied sound effect And applied minor design changed * refactor: Let TimerComponent change TimerPage's background * fix: NEUTRAL 항목에 불필요한 아이콘 뜨는 오류 수정 * feat: Added keyboard event listener on Timer * fix: 토론 순서 조작 시 발생하는 인덱스 초과 오버플로우 해결 * feat: 피드백에 따른 디자인 변경 사항 반영 * feat: Added loading and error screen on TimerPage * feat: Applied feedbacks from PR * fix: 타이머가 현재 debateInfo의 index를 불러오지 못하는 오류 수정 * refactor: 콘솔 로깅 비활성화 * fix: Storybook 출력되지 않는 문제 수정 - use-sound 패키지 제거하고 HTML 태그로 소리 출력 - 별도 컴포넌트를 거치지 않고 직접 gif 파일을 불러와 출력 * refactor: Removed unnecessary codes and comments * refactor: Hoisted all data and functions to the root page * fix: Cleared focus on button when space bar pressed * [FEAT] `ErrorBoundary` 도입 (#65) * feat: ErrorBoundary 도입 * feat: Wrapped router with ErrorBoundaryWrapper * feat: Enabled 'throwOnError' option on QueryClient * feat: Added refresh button on ErrorPage * refactor: Applied feedbacks from PR review - Declared string constants for ErrorBoundary - Set icon size on 'size' parameter instead of TailwindCSS 'className' * [FEAT] API 연결과 테이블 생성과 수정을 위해 funnel 패턴을 이용하여 멀티 스텝 폼 구현 (#57) * fix: 응답 타입을 문서에 맞게 수정 * feat: Agenda 타입 추가 * feat: 테이블을 추가하는 api 훅 추가 * feat: 테이블을 삭제하는 api 훅 추가 * feat: 사용자를 추가하는 api 훅 추가 * feat: 의회식 토론을 수정하는 api 훅 추가 * feat: 토론 리스트를 가져오는 api 훅 추가 * feat: 의호식 토론 정보를 가져오는 api 훅 추가 * style: 컴포넌트간의 간격 추가 * feat: multi-step form 구현을 위한 useFunnel 작성 * feat: multi-step form동안에 새로고침시에도 상태 유지를 위한 useBrowserStorage 구현 * feat: DropdownForDebateType의 로직 변경 * feat: 멀티 스텝을 이용한 방식으로 수정으로 인한 생성 모달, TableSetupPage를 변경 * feat: 테이블 생성과 수정을 위한 멀티 스텝 폼, TableComposition 구현 * feat: 테이블 form 정보 커스텀 훅 구현 * feat: 로그인 페이지에 상태와 api훅 추가 * fix: 타임박스 ui 버그 수정 * feat: 멀티 스텝 폼을 위해 TableSetupPage의 commponents 파일 이동 * feat: 테이블 수정을 모달에서 멀티스텝 폼 변경으로 인한 수정 * refactor: 더미 데이터 제거 * feat: composition 라우터 추가 * fix: 응답값에 맞게 msw 수정 * feat: 테이블 조회에 api 훅 추가 * refactor: 모달에서 멀티스텝폼 변경으로 인한 컴포넌트 명 변경 * fix: agenda와 type의 혼동으로 type 문제 수정 * fix: TableComposition 구현으로 인한 불필요한 파일 삭제 * fix: Type 타입을 영어로 수정 * fix: import 경로 수정 * feat: 테스트 mock을 위한 vitest 설정 * test: TableComposition 구현으로 인한 수정사항 반영 * feat: 버튼에 aria-label 추가 * chore: storybook msw 사용가능하게 설정 추가 * fix: stace 오타 변경 * test: storybook 경로 변경 * test: TableCompositon 스토리북 코드 작성 * fix: TableSetup삭제로 인한 라우터 변경 * chore: cleanup 함수 추가 * feat: 인터페이스 명 수정 * refactor: 한글에서 영어로 상수 변경 * refactor: NEUTRAL Stance 타입 변경 * refactor: typeMapping을 constants로 분리 * refactor: DebatePanel의 DebateTypeToString 수정 * refactor: type 값을 영어 상수로 변경 * [CHORE] 배포 파이프라인 자동화 구축 (#60) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * fix: 병합과정에 충돌 오류 수정 --------- Co-authored-by: jaeml06 <jaeml0630@gmail.com> * hotfix: 에러바운더리 코드가 삭제된 것에 대한 반영 (#69) * [REFACTOR] 타이머 기능 개선 외 (#66) * refactor: Applied several changes - Changed interval to 1000 ms (1 sec) - Added function that changes background to remove duplication of same codes - Removed isRunning not necessary * feat: Made TimerPage be able to catch parameters * fix: Recovered deleted ErrorBoundary related files * fix: Set icon size on 'size' argument instead of 'className' * refactor: Separated loading component to page * refactor: Applied several changes - Moved TimerLoadingPage to /src/TimerPage from /src/TimerPage/component - Set css file to print CR/LF correctly - Changed 'useQuery' to 'useGetParliamentaryTableData' hook * refactor: Deleted unneccesary codes * [FEAT] 닉네임 기반 로그인 구현 (#71) * feat: 로그인 시, memberId를 반환하도록 변경 * feat: memberId를 session 스토리지에 저장하도록 util 함수 작성 * fix: currentStep을 영문으로 변경 * feat: 정적으로 선언되 memberId를 스토리지에서 가져오도록 변경 * refactor: route.tsx 위치를 routes 폴더로 변경 * feat: ProtectedRoute 구현 * feat: ProtectedRoute 적용 * refactor: routes위치 변경에 따른 import 수정 * feat: 토론하기 클릭 시, TimerPage 연결 * refactor: 라우터 변경에 따른 수정사항 반영 --------- Co-authored-by: Shawn Kang <77564014+i-meant-to-be@users.noreply.github.com> * [FEAT] 추가 작전 시간 타이머 구현 외 (#77) * feat: Changed API base url to deployed server * feat: Implemented AdditionalTimerComponent * fix: Recovered horizontal padding of useModal wrapper * feat: Deleted top margin of AdditionalTimerSummaryItem * fix: Fixed linting errors * fix: Removed hard-coded URL on source codes * fix: Make app get server URL from .env file * chore: Deleted .env files * chore: Updated .gitignore file to ignore .env files * [CHORE] 배포 최적화 및 배포 환경 구분 (#82) * chore: Separated deploy environments and variables * chore: Applined vite-plugin-compressions2 to compress builds * chore: Changed job name * fix: Added quotes on target path of Cloudfront cache invalidation * chore: Changed web page title * chore: Removed compression-related packages and codes * [FIX] QA에서 식별한 버그 해결 - 숀 (#92) * feat: Fixed header's elements at the correct position * fix: Fixed bugs identified at QA * fix: Let TimerPage print error text when app failed to load data * fix: Fixed test codes affected by last commits * refactor: StickyTriSectionHeader변경에 따른 UI 수정 * feat: TableOverview 홈화면 버튼 추가 --------- Co-authored-by: jaeml06 <jaeml0630@gmail.com> * [FIX] QA에서 식별한 버그 해결 - 치코 (#93) * feat: 토론주제를 정상적으로 서버에 전달하도록 변경 * fix: 테이블 수정에서 상수로 되어있던 데이터 초기화 수정 * fix: 쿼리파라미터를 유지하도록 수정 * chore: preview 포트 3000으로 수정 * feat: 테이블을 없을시, 제출 버튼 블록처리 추가 * test: 테이블 추가하기 diabled상황 추가에 따른 테스트 수정 * [FIX] QA에서 식별한 버그 해결 - 엘 (#94) * fix: TableList 화면에서 토론 유형이 영어(PARLIAMENTARY)로 표시되는 문제 해결 * fix: TableList 화면에서 토론 시간이 초가 아니라 분으로 표시되는 문제 해결 * fit: TableList 화면에서 테이블을 삭제한 후 화면이 다시 렌더링되지 않는 문제 해결 * fix: CI Test 를 통과하기 위해 test code 수정 * refactor: typeMapping 메소드 이용하여 토론 유형 매칭 * [FIX, CHORE] mock에서 드래그앤 드롭 UI가 깨지는 문제 수정, Storybook 자동 배포 yml 작성 (#81) * fix: msw 모킹값 변경 * fix: 키값을 더 고유한 값으로 변경 * chore: storybook 자동 배포 yml 작성 --------- Co-authored-by: Shawn Kang <77564014+i-meant-to-be@users.noreply.github.com> * [CHORE] main 브랜치로 배포 (#87) (#97) * Update issue templates * docs: 파일명 수정 * docs: PR 템플릿 생성 (#2) * docs: 자동 issue 설정 할당 * docs: 불필요한 주석 제거 * docs: 이슈 프로젝트 권한 추가 * docs: 자동할당 로직 변경 * feat: 권한 문제로 자동 Project할당 제거 * docs: PR 자동할당 yml 작성 * docs: 불필요한 Project 정보 제거 * docs: Discord comment 알림 yml 작성 * chore: 프로젝트 초기 세팅 * chore: prettier 설정 추가 * feat: 3개의 영역으로 구분된 header(StickyTriSectionHeader) 구현 * feat: 하단에 고정되어 있는 footer wrapper 구현 * feat: main 레이아웃 구현 * feat: 중첩 컴포넌트로 기본 레이아웃 구현 * design: layout의 ContentContanier 가운데 정렬 추가 * design: layout의 ContentContanier padding 추가 * feat: PropsAndConsTitle 구현 * feat: TimerCreationButton 구현 * feat: 테이블 타입 작성 * feat: 초를 분, 초로 포맷팅하는 함수 구현 * feat: DebatePanel 구현 * feat: 테이블 구성 페이지 초기 UI rngus * feat: Pretendard 웹폰트 추가 * chore: storybook 설정 추가 * test: DebatePanel 스토리 북 작성 * test: PropsAndConsTitle 스토리북 테스트 작성 * test: TimerCreationButton 스토리북 테스트 작성 * fix: 파일명에 불필요한 공백 제거 * [FEAT] 페이지 라우팅 적용 (#22) * chore: install react-router-dom * feat: App.tsx와 main.tsx 에서 라우팅 설정 * refactor: createBrowerRouter 방식 적용 - router.tsx 파일 생성하여 라우터 적용 - main.tsx 에서 <RouterProvider router={router} /> 적용 * chore: 불필요한 App.tsx 컴포넌트 삭제 * chore: eol prettier 적용 * [FEAT] 타이머 박스 생성 모달 구현 (#17) * feat: 포털 렌더링 관리를 위한 GlobalPortal 컴포넌트 추가 * feat: 모달 생성을 위한 modal 커스텀 훅 구현 * feat: GlobalPortal 적용 * feat: 제출 이벤트, 버튼 추가 * feat: uesModal 구조 변경 * feat: Stance, DebateType에 export 추가 * test: useModal 테스트 코드 작성 * feat: 타이머 박스 생성 모달 구현 * feat: 타임 테이블 구성 페이지 피그마 UI에 맞게 구성 * refactor: 불필요한 테스트 파일 삭제 * test: 타임 테이블 구성 페이지 스토리북 작성 * test: 타임 테이블 구성 페이지 테스트 코드 작성 * refactor: params변경에 따른 수정 * test: GlbalPortal 추가 * chore: chromatic 추가 * fix: 파일명에 불필요한 공백 제거 * chore: 크로매틱 배포 토큰 변경 * [FEAT] 로그인 페이지 구현 (#24) * feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경 * chore: lint와 test를 넣은 CI yml 파일 작성 (#27) * [FEAT] 테이블 목록화면 구현 (#26) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * refactor: Table 타입 분리 및 Type네이밍 변경 * [TEST] 로그인 페이지 Storybook 테스트코드 구현 (#31) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * feat: LoginPage Storybook 구현 * test: LinkButton 스토리북 구현 * [FIX] 타임 테이블 구성 페이지 피드백 사항 반영 (#29) * fix: 텍스트를 더 자세하게 수정 * feat: 최상단 컴포넌트에 GlobalPortal추가 * fix: 하단 버튼에 main의 content가 가려지던 문제 수정 * refactor: formatSecondsToMinutes 반환 값 변경 * feat: 선택 진영에 따라 모달 제목 텍스트 색상 변경 * feat: input을 select로 변경 * feat: stace에 따른 색상 변경 함수 구현 * feat: debateType가 중립일 경우 stance을 값을 빈문자열로 표시 * feat: input Numer의 leading zero삭제 * feat: 초기값을 이전 설정한 값으로 설정되게 변경 * feat: stace가 중립일 speakerNumber 수정 불가능하게 변경 * feat: 이전 데이터가 중립일 경우 debateType이 이전 데이터를 반영하지 않도록 변경 * [TEST] 테이블 목록 컴포넌트 Storybook 테스트코드 구현 (#35) * test: Table 컴포넌트 Storybook 구현 * test: TableListPage 페이지 Storybook 구현 * test: DropdownForDebateType 컴포넌트 Storybook 구현 * fix: test 코드 통과를 위해 코드 h2 tag 수정 * [FEAT] 테이블 조회 화면 구현 (#34) * refactor: PropsAndConsTitle의 재사용에 따른 폴더 위치 변경 * feat: 테이블 선택 페이지 기본 레이아웃 구현 * fix: footerWrapper을 flex정렬 방향 변경 * refactor: FixedFooterWrapper position 속정 변경에 따른 컴포넌트 명 수정 * feat: TableOverview 라우터 추가 * test: TableOverview 스토리북 작성 * test: PropsAndConsTitle의 위치 변경 * feat: 불필요한 주석 제거 * feat: 버튼 text 수정 * test: MemoryRouter추가 * fix: 사용되지 않은 getStanceColor 수정 * [TEST] 로그인 및 테이블 조회 컴포넌트 테스트코드 구현 (#37) * [CHORE] API 처리를 위해 패키지 추가 (#39) * chore: Added API-related packages to the project * chore: Added and modified codes for API - 가상 API 사용을 위한 msw 관련 파일 추가 - TanStack Query 및 msw 대응하여 main.tsx 수정 * chore: Let msw only enabled on 'dev-mock' mode * chore: Added one blank line at end of package.json * chore: Added EOL at end of environment variable files * [FEAT] 테이블 수정 및 삭제 구현 (#44) * chore: 수정 및 삭제 아이콘을 위해 react-icons 추가 * feat: Table 컴포넌트에 Icons 추가 * feat: implement handleDelete method * feat: implement EditModalButton to edit Tables * refactor: stopPropagation method with MouseEvent 추가 - 버튼 클릭 이벤트가 상위로 전파되는 것을 막기 위해서 추가함 * feat: Edit 버튼 눌렀을 때, CreateTableModal 나오게 구현 * chore: unused closeModal function 삭제 * feat: Table 삭제를 위해 DeleteModalButton 구현 * feat: EditTableModal 구현 * feat: EditTableButton 구현 - 이후 수정 RestAPI 로직 추가 필요 * refactor: Edit 관련 컴포넌트에 name 매개변수 추가 * refactor: DebateTable 타입에 extends하여 delete 타입 추가 * refactor: 토론 유형 수정 불가 * refactor: 토론유형 hover: curser-not-allowed 추가 * refactor: handleDelete 함수형 업데이트로 수정 * refactor: EditTableButton 컴포넌트에 closeModal 매개변수 추가 * fix: TableListPage 테스트코드 수정 * [FEAT] 타임박스에 수정 및 삭제 UI 추가 (#42) * chore: 수정, 삭제 아이콘 이용을 위한 react-icons 추가 * style: 컴포넌트 간의 간경을 더 좁게 수정 * feat: 수정, 삭제 버튼을 합친 EditDeleteButtons 컴포넌트 구현 * style: 분기에 따른 컴포넌트의 높이를 동일하게 수정 * feat: 수정, 삭제 handler 함수 작성 * refactor: 가독성을 위해 중첩된 삼항연산자 분리 * feat: 삭제 버튼 클릭 시, 삭제 확인 모달 구현 * feat: EditDeleteButtons에 aria-label 추가 * test: EditDeleteButtons 스토리북 코드 작성 * feat: TableSetup 테스트에 수정, 삭제 기능 테스트 추가 * [FEAT] API 요청 관련 기능 구현 (#45) * feat: Added API mocking handler * feat: Implemented API request logics - 추가로, BE API 명세서의 반환 예시에 맞추어 일부 변수 이름을 수정 * refactor: Applied some minor changes - URL 생성 함수가 슬래시(/)를 여러 개 포함하는 문제 수정 - 모든 API 함수를 apis.ts에 통합 (추후 메소드 많아지면 분리) * feat: Let msw handler catch arguments 그 외 변경사항으로, API 함수들에서 경로 매개변수(path parameters)가 생략되어 있었던 문제를 해결 * refactor: 주석 추가 * fix: DebateTable 인터페이스 변경에 따른 일부 오류 수정 * feat: Added string identifier for 'useQuery' function --------- * [FEAT] 타임박스의 수정을 드래그앤드롭으로 변경하는 기능 구현 (#47) * feat: 이벤트 발생 비용 감소를 위한 useThrottle 작성 * faet: 타임박스 드래그앤 드롭을 위한 useDragAndDrop 구현 * feat: 타임박스에 드래그앤드롭 영역 지정 * feat: TableSetup에 드래그앤 드롭 선언 * refactor: 불필요한 주석 삭제 * fix: 병합과정에서 발생한 오류 수정 * [CHORE] storybook에 전역적인 decorators 설정 추가 (#50) * chore: 라우터, GlobalPortal설정을 전역 설정에 decorators로 추가 * chore: storybook에 msw 설정 추가 * [FIX] Mock Handler 파일에서 타입 에러 해결 (#54) * feat: Table 타입인 TableInfo 정의 * refactor: result 객체에 속핸 info의 타입을 명시하기 위해 request에 TableInfo 타입 명시 * chore: 이미 정의되있던 PostDebateTableResponseType 타입 사용 * [CHORE] VS Code 작업 영역에 대한 설정 파일 추가 #62 * [FEAT] 타이머 화면 구현 (#58) * feat: Implemented TimerPage * feat: Applied sound effect And applied minor design changed * refactor: Let TimerComponent change TimerPage's background * fix: NEUTRAL 항목에 불필요한 아이콘 뜨는 오류 수정 * feat: Added keyboard event listener on Timer * fix: 토론 순서 조작 시 발생하는 인덱스 초과 오버플로우 해결 * feat: 피드백에 따른 디자인 변경 사항 반영 * feat: Added loading and error screen on TimerPage * feat: Applied feedbacks from PR * fix: 타이머가 현재 debateInfo의 index를 불러오지 못하는 오류 수정 * refactor: 콘솔 로깅 비활성화 * fix: Storybook 출력되지 않는 문제 수정 - use-sound 패키지 제거하고 HTML 태그로 소리 출력 - 별도 컴포넌트를 거치지 않고 직접 gif 파일을 불러와 출력 * refactor: Removed unnecessary codes and comments * refactor: Hoisted all data and functions to the root page * fix: Cleared focus on button when space bar pressed * [FEAT] `ErrorBoundary` 도입 (#65) * feat: ErrorBoundary 도입 * feat: Wrapped router with ErrorBoundaryWrapper * feat: Enabled 'throwOnError' option on QueryClient * feat: Added refresh button on ErrorPage * refactor: Applied feedbacks from PR review - Declared string constants for ErrorBoundary - Set icon size on 'size' parameter instead of TailwindCSS 'className' * [FEAT] API 연결과 테이블 생성과 수정을 위해 funnel 패턴을 이용하여 멀티 스텝 폼 구현 (#57) * fix: 응답 타입을 문서에 맞게 수정 * feat: Agenda 타입 추가 * feat: 테이블을 추가하는 api 훅 추가 * feat: 테이블을 삭제하는 api 훅 추가 * feat: 사용자를 추가하는 api 훅 추가 * feat: 의회식 토론을 수정하는 api 훅 추가 * feat: 토론 리스트를 가져오는 api 훅 추가 * feat: 의호식 토론 정보를 가져오는 api 훅 추가 * style: 컴포넌트간의 간격 추가 * feat: multi-step form 구현을 위한 useFunnel 작성 * feat: multi-step form동안에 새로고침시에도 상태 유지를 위한 useBrowserStorage 구현 * feat: DropdownForDebateType의 로직 변경 * feat: 멀티 스텝을 이용한 방식으로 수정으로 인한 생성 모달, TableSetupPage를 변경 * feat: 테이블 생성과 수정을 위한 멀티 스텝 폼, TableComposition 구현 * feat: 테이블 form 정보 커스텀 훅 구현 * feat: 로그인 페이지에 상태와 api훅 추가 * fix: 타임박스 ui 버그 수정 * feat: 멀티 스텝 폼을 위해 TableSetupPage의 commponents 파일 이동 * feat: 테이블 수정을 모달에서 멀티스텝 폼 변경으로 인한 수정 * refactor: 더미 데이터 제거 * feat: composition 라우터 추가 * fix: 응답값에 맞게 msw 수정 * feat: 테이블 조회에 api 훅 추가 * refactor: 모달에서 멀티스텝폼 변경으로 인한 컴포넌트 명 변경 * fix: agenda와 type의 혼동으로 type 문제 수정 * fix: TableComposition 구현으로 인한 불필요한 파일 삭제 * fix: Type 타입을 영어로 수정 * fix: import 경로 수정 * feat: 테스트 mock을 위한 vitest 설정 * test: TableComposition 구현으로 인한 수정사항 반영 * feat: 버튼에 aria-label 추가 * chore: storybook msw 사용가능하게 설정 추가 * fix: stace 오타 변경 * test: storybook 경로 변경 * test: TableCompositon 스토리북 코드 작성 * fix: TableSetup삭제로 인한 라우터 변경 * chore: cleanup 함수 추가 * feat: 인터페이스 명 수정 * refactor: 한글에서 영어로 상수 변경 * refactor: NEUTRAL Stance 타입 변경 * refactor: typeMapping을 constants로 분리 * refactor: DebatePanel의 DebateTypeToString 수정 * refactor: type 값을 영어 상수로 변경 * [CHORE] 배포 파이프라인 자동화 구축 (#60) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * fix: 병합과정에 충돌 오류 수정 --------- * hotfix: 에러바운더리 코드가 삭제된 것에 대한 반영 (#69) * [REFACTOR] 타이머 기능 개선 외 (#66) * refactor: Applied several changes - Changed interval to 1000 ms (1 sec) - Added function that changes background to remove duplication of same codes - Removed isRunning not necessary * feat: Made TimerPage be able to catch parameters * fix: Recovered deleted ErrorBoundary related files * fix: Set icon size on 'size' argument instead of 'className' * refactor: Separated loading component to page * refactor: Applied several changes - Moved TimerLoadingPage to /src/TimerPage from /src/TimerPage/component - Set css file to print CR/LF correctly - Changed 'useQuery' to 'useGetParliamentaryTableData' hook * refactor: Deleted unneccesary codes * [HOTFIX] GitHub Actions 빌드 실패 문제 해결 (#73) - TableCompositionStep 상수 값을 한글(타임박스입력)에서 영어(TimeBox)로 바꾸며 발생한 문제 수정 - Type 상수 값을 한글(의회식 토론)에서 영어(PARLIAMENTARY)로 바꾸며 발생한 문제 수정 * [FEAT] AWS S3 및 FrontCloud dev, prod 각각 분리 배포 및 github action 구축 (#76) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * feat: dev 배포를 위한 deploy 코드 작성 * feat: prod 배포를 위한 deploy 코드 작성 * chore: merge 후 생성된 불 필요한 코드 삭제 * chore: dev 배포 명료성을 위해 access key 및 secret key 네이밍 변경 * chore: Dev 배포 관련 yml파일에서 bucket 네이밍 변경 * [FEAT] 닉네임 기반 로그인 구현 (#71) * feat: 로그인 시, memberId를 반환하도록 변경 * feat: memberId를 session 스토리지에 저장하도록 util 함수 작성 * fix: currentStep을 영문으로 변경 * feat: 정적으로 선언되 memberId를 스토리지에서 가져오도록 변경 * refactor: route.tsx 위치를 routes 폴더로 변경 * feat: ProtectedRoute 구현 * feat: ProtectedRoute 적용 * refactor: routes위치 변경에 따른 import 수정 * feat: 토론하기 클릭 시, TimerPage 연결 * refactor: 라우터 변경에 따른 수정사항 반영 --------- * [FEAT] 추가 작전 시간 타이머 구현 외 (#77) * feat: Changed API base url to deployed server * feat: Implemented AdditionalTimerComponent * fix: Recovered horizontal padding of useModal wrapper * feat: Deleted top margin of AdditionalTimerSummaryItem * fix: Fixed linting errors * fix: Removed hard-coded URL on source codes * fix: Make app get server URL from .env file * chore: Deleted .env files * chore: Updated .gitignore file to ignore .env files * [CHORE] 배포 최적화 및 배포 환경 구분 (#82) * chore: Separated deploy environments and variables * chore: Applined vite-plugin-compressions2 to compress builds * chore: Changed job name * fix: Added quotes on target path of Cloudfront cache invalidation * chore: Changed web page title * chore: Removed compression-related packages and codes * [HOTFIX] 배포된 앱이 서버와 통신하지 못하는 문제 수정 (#84) * [FIX] PostUserResponseType타입 수정, TableOverview에서 tableId를 url에서 정상적으로 가져오도록 수정 (#86) * fix: PostUserResponseType 타입 변경 * fix: 정적 navigate 제거 * fix: 불필요한 console.log제거 * fix: tableId를 정상적으로 불러오도록 수정 --------- Co-authored-by: Shawn Kang <77564014+i-meant-to-be@users.noreply.github.com> Co-authored-by: EunWoo <eunwoo1341@gmail.com> * [FEAT] invalidateQueries 사용하여 Table 삭제 시 즉시 업데이트 반영 (#99) * feat: invalidateQueries를 사용하여 Table를 삭제한 후 성공할 시 최신 데이터를 반영 * feat: setTimeout을 사용하여 먼저 UI를 갱신한 후 alert을 표시하여 사용자경험(UX)를 향상 * [REFACTOR] 1차 UT에 있었던 1, 2순위 수정 사항 반영 (#102) * refactor: 생성, 수정 환경에서 문구 구분 * refactor: 드래그앤드롭 바 디자인 변경 * fix: 타임박스가 헤더 영역을 침범하는 문제 수정 * test: 문구 변경에 따른 테스트 수정 * Update issue templates * docs: 파일명 수정 * docs: PR 자동할당 yml 작성 * docs: 불필요한 Project 정보 제거 * chore: 프로젝트 초기 세팅 * feat: 중첩 컴포넌트로 기본 레이아웃 구현 * chore: storybook 설정 추가 * [FEAT] 페이지 라우팅 적용 (#22) * chore: install react-router-dom * feat: App.tsx와 main.tsx 에서 라우팅 설정 * refactor: createBrowerRouter 방식 적용 - router.tsx 파일 생성하여 라우터 적용 - main.tsx 에서 <RouterProvider router={router} /> 적용 * chore: 불필요한 App.tsx 컴포넌트 삭제 * chore: eol prettier 적용 * [FEAT] 타이머 박스 생성 모달 구현 (#17) * feat: 포털 렌더링 관리를 위한 GlobalPortal 컴포넌트 추가 * feat: 모달 생성을 위한 modal 커스텀 훅 구현 * feat: GlobalPortal 적용 * feat: 제출 이벤트, 버튼 추가 * feat: uesModal 구조 변경 * feat: Stance, DebateType에 export 추가 * test: useModal 테스트 코드 작성 * feat: 타이머 박스 생성 모달 구현 * feat: 타임 테이블 구성 페이지 피그마 UI에 맞게 구성 * refactor: 불필요한 테스트 파일 삭제 * test: 타임 테이블 구성 페이지 스토리북 작성 * test: 타임 테이블 구성 페이지 테스트 코드 작성 * refactor: params변경에 따른 수정 * test: GlbalPortal 추가 * chore: chromatic 추가 * fix: 파일명에 불필요한 공백 제거 * chore: 크로매틱 배포 토큰 변경 * [FEAT] 로그인 페이지 구현 (#24) * feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경 * [FEAT] 테이블 목록화면 구현 (#26) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * refactor: Table 타입 분리 및 Type네이밍 변경 * [FIX] 타임 테이블 구성 페이지 피드백 사항 반영 (#29) * fix: 텍스트를 더 자세하게 수정 * feat: 최상단 컴포넌트에 GlobalPortal추가 * fix: 하단 버튼에 main의 content가 가려지던 문제 수정 * refactor: formatSecondsToMinutes 반환 값 변경 * feat: 선택 진영에 따라 모달 제목 텍스트 색상 변경 * feat: input을 select로 변경 * feat: stace에 따른 색상 변경 함수 구현 * feat: debateType가 중립일 경우 stance을 값을 빈문자열로 표시 * feat: input Numer의 leading zero삭제 * feat: 초기값을 이전 설정한 값으로 설정되게 변경 * feat: stace가 중립일 speakerNumber 수정 불가능하게 변경 * feat: 이전 데이터가 중립일 경우 debateType이 이전 데이터를 반영하지 않도록 변경 * [TEST] 테이블 목록 컴포넌트 Storybook 테스트코드 구현 (#35) * test: Table 컴포넌트 Storybook 구현 * test: TableListPage 페이지 Storybook 구현 * test: DropdownForDebateType 컴포넌트 Storybook 구현 * fix: test 코드 통과를 위해 코드 h2 tag 수정 * [FEAT] 테이블 조회 화면 구현 (#34) * refactor: PropsAndConsTitle의 재사용에 따른 폴더 위치 변경 * feat: 테이블 선택 페이지 기본 레이아웃 구현 * fix: footerWrapper을 flex정렬 방향 변경 * refactor: FixedFooterWrapper position 속정 변경에 따른 컴포넌트 명 수정 * feat: TableOverview 라우터 추가 * test: TableOverview 스토리북 작성 * test: PropsAndConsTitle의 위치 변경 * feat: 불필요한 주석 제거 * feat: 버튼 text 수정 * test: MemoryRouter추가 * fix: 사용되지 않은 getStanceColor 수정 * [CHORE] API 처리를 위해 패키지 추가 (#39) * chore: Added API-related packages to the project * chore: Added and modified codes for API - 가상 API 사용을 위한 msw 관련 파일 추가 - TanStack Query 및 msw 대응하여 main.tsx 수정 * chore: Let msw only enabled on 'dev-mock' mode * chore: Added one blank line at end of package.json * chore: Added EOL at end of environment variable files * [FEAT] 테이블 수정 및 삭제 구현 (#44) * chore: 수정 및 삭제 아이콘을 위해 react-icons 추가 * feat: Table 컴포넌트에 Icons 추가 * feat: implement handleDelete method * feat: implement EditModalButton to edit Tables * refactor: stopPropagation method with MouseEvent 추가 - 버튼 클릭 이벤트가 상위로 전파되는 것을 막기 위해서 추가함 * feat: Edit 버튼 눌렀을 때, CreateTableModal 나오게 구현 * chore: unused closeModal function 삭제 * feat: Table 삭제를 위해 DeleteModalButton 구현 * feat: EditTableModal 구현 * feat: EditTableButton 구현 - 이후 수정 RestAPI 로직 추가 필요 * refactor: Edit 관련 컴포넌트에 name 매개변수 추가 * refactor: DebateTable 타입에 extends하여 delete 타입 추가 * refactor: 토론 유형 수정 불가 * refactor: 토론유형 hover: curser-not-allowed 추가 * refactor: handleDelete 함수형 업데이트로 수정 * refactor: EditTableButton 컴포넌트에 closeModal 매개변수 추가 * fix: TableListPage 테스트코드 수정 * [FEAT] 타임박스에 수정 및 삭제 UI 추가 (#42) * chore: 수정, 삭제 아이콘 이용을 위한 react-icons 추가 * style: 컴포넌트 간의 간경을 더 좁게 수정 * feat: 수정, 삭제 버튼을 합친 EditDeleteButtons 컴포넌트 구현 * style: 분기에 따른 컴포넌트의 높이를 동일하게 수정 * feat: 수정, 삭제 handler 함수 작성 * refactor: 가독성을 위해 중첩된 삼항연산자 분리 * feat: 삭제 버튼 클릭 시, 삭제 확인 모달 구현 * feat: EditDeleteButtons에 aria-label 추가 * test: EditDeleteButtons 스토리북 코드 작성 * feat: TableSetup 테스트에 수정, 삭제 기능 테스트 추가 * [FEAT] API 요청 관련 기능 구현 (#45) * feat: Added API mocking handler * feat: Implemented API request logics - 추가로, BE API 명세서의 반환 예시에 맞추어 일부 변수 이름을 수정 * refactor: Applied some minor changes - URL 생성 함수가 슬래시(/)를 여러 개 포함하는 문제 수정 - 모든 API 함수를 apis.ts에 통합 (추후 메소드 많아지면 분리) * feat: Let msw handler catch arguments 그 외 변경사항으로, API 함수들에서 경로 매개변수(path parameters)가 생략되어 있었던 문제를 해결 * refactor: 주석 추가 * fix: DebateTable 인터페이스 변경에 따른 일부 오류 수정 * feat: Added string identifier for 'useQuery' function --------- Co-authored-by: jaeml06 <jaeml0630@gmail.com> * [FEAT] 타임박스의 수정을 드래그앤드롭으로 변경하는 기능 구현 (#47) * feat: 이벤트 발생 비용 감소를 위한 useThrottle 작성 * faet: 타임박스 드래그앤 드롭을 위한 useDragAndDrop 구현 * feat: 타임박스에 드래그앤드롭 영역 지정 * feat: TableSetup에 드래그앤 드롭 선언 * refactor: 불필요한 주석 삭제 * fix: 병합과정에서 발생한 오류 수정 * [CHORE] storybook에 전역적인 decorators 설정 추가 (#50) * chore: 라우터, GlobalPortal설정을 전역 설정에 decorators로 추가 * chore: storybook에 msw 설정 추가 * [FEAT] 타이머 화면 구현 (#58) * feat: Implemented TimerPage * feat: Applied sound effect And applied minor design changed * refactor: Let TimerComponent change TimerPage's background * fix: NEUTRAL 항목에 불필요한 아이콘 뜨는 오류 수정 * feat: Added keyboard event listener on Timer * fix: 토론 순서 조작 시 발생하는 인덱스 초과 오버플로우 해결 * feat: 피드백에 따른 디자인 변경 사항 반영 * feat: Added loading and error screen on TimerPage * feat: Applied feedbacks from PR * fix: 타이머가 현재 debateInfo의 index를 불러오지 못하는 오류 수정 * refactor: 콘솔 로깅 비활성화 * fix: Storybook 출력되지 않는 문제 수정 - use-sound 패키지 제거하고 HTML 태그로 소리 출력 - 별도 컴포넌트를 거치지 않고 직접 gif 파일을 불러와 출력 * refactor: Removed unnecessary codes and comments * refactor: Hoisted all data and functions to the root page * fix: Cleared focus on button when space bar pressed * [FEAT] `ErrorBoundary` 도입 (#65) * feat: ErrorBoundary 도입 * feat: Wrapped router with ErrorBoundaryWrapper * feat: Enabled 'throwOnError' option on QueryClient * feat: Added refresh button on ErrorPage * refactor: Applied feedbacks from PR review - Declared string constants for ErrorBoundary - Set icon size on 'size' parameter instead of TailwindCSS 'className' * [FEAT] API 연결과 테이블 생성과 수정을 위해 funnel 패턴을 이용하여 멀티 스텝 폼 구현 (#57) * fix: 응답 타입을 문서에 맞게 수정 * feat: Agenda 타입 추가 * feat: 테이블을 추가하는 api 훅 추가 * feat: 테이블을 삭제하는 api 훅 추가 * feat: 사용자를 추가하는 api 훅 추가 * feat: 의회식 토론을 수정하는 api 훅 추가 * feat: 토론 리스트를 가져오는 api 훅 추가 * feat: 의호식 토론 정보를 가져오는 api 훅 추가 * style: 컴포넌트간의 간격 추가 * feat: multi-step form 구현을 위한 useFunnel 작성 * feat: multi-step form동안에 새로고침시에도 상태 유지를 위한 useBrowserStorage 구현 * feat: DropdownForDebateType의 로직 변경 * feat: 멀티 스텝을 이용한 방식으로 수정으로 인한 생성 모달, TableSetupPage를 변경 * feat: 테이블 생성과 수정을 위한 멀티 스텝 폼, TableComposition 구현 * feat: 테이블 form 정보 커스텀 훅 구현 * feat: 로그인 페이지에 상태와 api훅 추가 * fix: 타임박스 ui 버그 수정 * feat: 멀티 스텝 폼을 위해 TableSetupPage의 commponents 파일 이동 * feat: 테이블 수정을 모달에서 멀티스텝 폼 변경으로 인한 수정 * refactor: 더미 데이터 제거 * feat: composition 라우터 추가 * fix: 응답값에 맞게 msw 수정 * feat: 테이블 조회에 api 훅 추가 * refactor: 모달에서 멀티스텝폼 변경으로 인한 컴포넌트 명 변경 * fix: agenda와 type의 혼동으로 type 문제 수정 * fix: TableComposition 구현으로 인한 불필요한 파일 삭제 * fix: Type 타입을 영어로 수정 * fix: import 경로 수정 * feat: 테스트 mock을 위한 vitest 설정 * test: TableComposition 구현으로 인한 수정사항 반영 * feat: 버튼에 aria-label 추가 * chore: storybook msw 사용가능하게 설정 추가 * fix: stace 오타 변경 * test: storybook 경로 변경 * test: TableCompositon 스토리북 코드 작성 * fix: TableSetup삭제로 인한 라우터 변경 * chore: cleanup 함수 추가 * feat: 인터페이스 명 수정 * refactor: 한글에서 영어로 상수 변경 * refactor: NEUTRAL Stance 타입 변경 * refactor: typeMapping을 constants로 분리 * refactor: DebatePanel의 DebateTypeToString 수정 * refactor: type 값을 영어 상수로 변경 * [CHORE] 배포 파이프라인 자동화 구축 (#60) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * fix: 병합과정에 충돌 오류 수정 --------- Co-authored-by: jaeml06 <jaeml0630@gmail.com> * hotfix: 에러바운더리 코드가 삭제된 것에 대한 반영 (#69) * [REFACTOR] 타이머 기능 개선 외 (#66) * refactor: Applied several changes - Changed interval to 1000 ms (1 sec) - Added function that changes background to remove duplication of same codes - Removed isRunning not necessary * feat: Made TimerPage be able to catch parameters * fix: Recovered deleted ErrorBoundary related files * fix: Set icon size on 'size' argument instead of 'className' * refactor: Separated loading component to page * refactor: Applied several changes - Moved TimerLoadingPage to /src/TimerPage from /src/TimerPage/component - Set css file to print CR/LF correctly - Changed 'useQuery' to 'useGetParliamentaryTableData' hook * refactor: Deleted unneccesary codes * [FEAT] 닉네임 기반 로그인 구현 (#71) * feat: 로그인 시, memberId를 반환하도록 변경 * feat: memberId를 session 스토리지에 저장하도록 util 함수 작성 * fix: currentStep을 영문으로 변경 * feat: 정적으로 선언되 memberId를 스토리지에서 가져오도록 변경 * refactor: route.tsx 위치를 routes 폴더로 변경 * feat: ProtectedRoute 구현 * feat: ProtectedRoute 적용 * refactor: routes위치 변경에 따른 import 수정 * feat: 토론하기 클릭 시, TimerPage 연결 * refactor: 라우터 변경에 따른 수정사항 반영 --------- Co-authored-by: Shawn Kang <77564014+i-meant-to-be@users.noreply.github.com> * [FEAT] 추가 작전 시간 타이머 구현 외 (#77) * feat: Changed API base url to deployed server * feat: Implemented AdditionalTimerComponent * fix: Recovered horizontal padding of useModal wrapper * feat: Deleted top margin of AdditionalTimerSummaryItem * fix: Fixed linting errors * fix: Removed hard-coded URL on source codes * fix: Make app get server URL from .env file * chore: Deleted .env files * chore: Updated .gitignore file to ignore .env files * [CHORE] 배포 최적화 및 배포 환경 구분 (#82) * chore: Separated deploy environments and variables * chore: Applined vite-plugin-compressions2 to compress builds * chore: Changed job name * fix: Added quotes on target path of Cloudfront cache invalidation * chore: Changed web page title * chore: Removed compression-related packages and codes * [CHORE] main 브랜치로 배포 (#87) (#97) * Update issue templates * docs: 파일명 수정 * docs: PR 템플릿 생성 (#2) * docs: 자동 issue 설정 할당 * docs: 불필요한 주석 제거 * docs: 이슈 프로젝트 권한 추가 * docs: 자동할당 로직 변경 * feat: 권한 문제로 자동 Project할당 제거 * docs: PR 자동할당 yml 작성 * docs: 불필요한 Project 정보 제거 * docs: Discord comment 알림 yml 작성 * chore: 프로젝트 초기 세팅 * chore: prettier 설정 추가 * feat: 3개의 영역으로 구분된 header(StickyTriSectionHeader) 구현 * feat: 하단에 고정되어 있는 footer wrapper 구현 * feat: main 레이아웃 구현 * feat: 중첩 컴포넌트로 기본 레이아웃 구현 * design: layout의 ContentContanier 가운데 정렬 추가 * design: layout의 ContentContanier padding 추가 * feat: PropsAndConsTitle 구현 * feat: TimerCreationButton 구현 * feat: 테이블 타입 작성 * feat: 초를 분, 초로 포맷팅하는 함수 구현 * feat: DebatePanel 구현 * feat: 테이블 구성 페이지 초기 UI rngus * feat: Pretendard 웹폰트 추가 * chore: storybook 설정 추가 * test: DebatePanel 스토리 북 작성 * test: PropsAndConsTitle 스토리북 테스트 작성 * test: TimerCreationButton 스토리북 테스트 작성 * fix: 파일명에 불필요한 공백 제거 * [FEAT] 페이지 라우팅 적용 (#22) * chore: install react-router-dom * feat: App.tsx와 main.tsx 에서 라우팅 설정 * refactor: createBrowerRouter 방식 적용 - router.tsx 파일 생성하여 라우터 적용 - main.tsx 에서 <RouterProvider router={router} /> 적용 * chore: 불필요한 App.tsx 컴포넌트 삭제 * chore: eol prettier 적용 * [FEAT] 타이머 박스 생성 모달 구현 (#17) * feat: 포털 렌더링 관리를 위한 GlobalPortal 컴포넌트 추가 * feat: 모달 생성을 위한 modal 커스텀 훅 구현 * feat: GlobalPortal 적용 * feat: 제출 이벤트, 버튼 추가 * feat: uesModal 구조 변경 * feat: Stance, DebateType에 export 추가 * test: useModal 테스트 코드 작성 * feat: 타이머 박스 생성 모달 구현 * feat: 타임 테이블 구성 페이지 피그마 UI에 맞게 구성 * refactor: 불필요한 테스트 파일 삭제 * test: 타임 테이블 구성 페이지 스토리북 작성 * test: 타임 테이블 구성 페이지 테스트 코드 작성 * refactor: params변경에 따른 수정 * test: GlbalPortal 추가 * chore: chromatic 추가 * fix: 파일명에 불필요한 공백 제거 * chore: 크로매틱 배포 토큰 변경 * [FEAT] 로그인 페이지 구현 (#24) * feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경 * chore: lint와 test를 넣은 CI yml 파일 작성 (#27) * [FEAT] 테이블 목록화면 구현 (#26) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * refactor: Table 타입 분리 및 Type네이밍 변경 * [TEST] 로그인 페이지 Storybook 테스트코드 구현 (#31) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫…
* feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경
* Update issue templates * docs: 파일명 수정 * docs: PR 템플릿 생성 (#2) * docs: 자동 issue 설정 할당 * docs: 불필요한 주석 제거 * docs: 이슈 프로젝트 권한 추가 * docs: 자동할당 로직 변경 * feat: 권한 문제로 자동 Project할당 제거 * docs: PR 자동할당 yml 작성 * docs: 불필요한 Project 정보 제거 * docs: Discord comment 알림 yml 작성 * chore: 프로젝트 초기 세팅 * chore: prettier 설정 추가 * feat: 3개의 영역으로 구분된 header(StickyTriSectionHeader) 구현 * feat: 하단에 고정되어 있는 footer wrapper 구현 * feat: main 레이아웃 구현 * feat: 중첩 컴포넌트로 기본 레이아웃 구현 * design: layout의 ContentContanier 가운데 정렬 추가 * design: layout의 ContentContanier padding 추가 * feat: PropsAndConsTitle 구현 * feat: TimerCreationButton 구현 * feat: 테이블 타입 작성 * feat: 초를 분, 초로 포맷팅하는 함수 구현 * feat: DebatePanel 구현 * feat: 테이블 구성 페이지 초기 UI rngus * feat: Pretendard 웹폰트 추가 * chore: storybook 설정 추가 * test: DebatePanel 스토리 북 작성 * test: PropsAndConsTitle 스토리북 테스트 작성 * test: TimerCreationButton 스토리북 테스트 작성 * fix: 파일명에 불필요한 공백 제거 * [FEAT] 페이지 라우팅 적용 (#22) * chore: install react-router-dom * feat: App.tsx와 main.tsx 에서 라우팅 설정 * refactor: createBrowerRouter 방식 적용 - router.tsx 파일 생성하여 라우터 적용 - main.tsx 에서 <RouterProvider router={router} /> 적용 * chore: 불필요한 App.tsx 컴포넌트 삭제 * chore: eol prettier 적용 * [FEAT] 타이머 박스 생성 모달 구현 (#17) * feat: 포털 렌더링 관리를 위한 GlobalPortal 컴포넌트 추가 * feat: 모달 생성을 위한 modal 커스텀 훅 구현 * feat: GlobalPortal 적용 * feat: 제출 이벤트, 버튼 추가 * feat: uesModal 구조 변경 * feat: Stance, DebateType에 export 추가 * test: useModal 테스트 코드 작성 * feat: 타이머 박스 생성 모달 구현 * feat: 타임 테이블 구성 페이지 피그마 UI에 맞게 구성 * refactor: 불필요한 테스트 파일 삭제 * test: 타임 테이블 구성 페이지 스토리북 작성 * test: 타임 테이블 구성 페이지 테스트 코드 작성 * refactor: params변경에 따른 수정 * test: GlbalPortal 추가 * chore: chromatic 추가 * fix: 파일명에 불필요한 공백 제거 * chore: 크로매틱 배포 토큰 변경 * [FEAT] 로그인 페이지 구현 (#24) * feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경 * chore: lint와 test를 넣은 CI yml 파일 작성 (#27) * [FEAT] 테이블 목록화면 구현 (#26) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * refactor: Table 타입 분리 및 Type네이밍 변경 * [TEST] 로그인 페이지 Storybook 테스트코드 구현 (#31) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * feat: LoginPage Storybook 구현 * test: LinkButton 스토리북 구현 * [FIX] 타임 테이블 구성 페이지 피드백 사항 반영 (#29) * fix: 텍스트를 더 자세하게 수정 * feat: 최상단 컴포넌트에 GlobalPortal추가 * fix: 하단 버튼에 main의 content가 가려지던 문제 수정 * refactor: formatSecondsToMinutes 반환 값 변경 * feat: 선택 진영에 따라 모달 제목 텍스트 색상 변경 * feat: input을 select로 변경 * feat: stace에 따른 색상 변경 함수 구현 * feat: debateType가 중립일 경우 stance을 값을 빈문자열로 표시 * feat: input Numer의 leading zero삭제 * feat: 초기값을 이전 설정한 값으로 설정되게 변경 * feat: stace가 중립일 speakerNumber 수정 불가능하게 변경 * feat: 이전 데이터가 중립일 경우 debateType이 이전 데이터를 반영하지 않도록 변경 * [TEST] 테이블 목록 컴포넌트 Storybook 테스트코드 구현 (#35) * test: Table 컴포넌트 Storybook 구현 * test: TableListPage 페이지 Storybook 구현 * test: DropdownForDebateType 컴포넌트 Storybook 구현 * fix: test 코드 통과를 위해 코드 h2 tag 수정 * [FEAT] 테이블 조회 화면 구현 (#34) * refactor: PropsAndConsTitle의 재사용에 따른 폴더 위치 변경 * feat: 테이블 선택 페이지 기본 레이아웃 구현 * fix: footerWrapper을 flex정렬 방향 변경 * refactor: FixedFooterWrapper position 속정 변경에 따른 컴포넌트 명 수정 * feat: TableOverview 라우터 추가 * test: TableOverview 스토리북 작성 * test: PropsAndConsTitle의 위치 변경 * feat: 불필요한 주석 제거 * feat: 버튼 text 수정 * test: MemoryRouter추가 * fix: 사용되지 않은 getStanceColor 수정 * [TEST] 로그인 및 테이블 조회 컴포넌트 테스트코드 구현 (#37) * [CHORE] API 처리를 위해 패키지 추가 (#39) * chore: Added API-related packages to the project * chore: Added and modified codes for API - 가상 API 사용을 위한 msw 관련 파일 추가 - TanStack Query 및 msw 대응하여 main.tsx 수정 * chore: Let msw only enabled on 'dev-mock' mode * chore: Added one blank line at end of package.json * chore: Added EOL at end of environment variable files * [FEAT] 테이블 수정 및 삭제 구현 (#44) * chore: 수정 및 삭제 아이콘을 위해 react-icons 추가 * feat: Table 컴포넌트에 Icons 추가 * feat: implement handleDelete method * feat: implement EditModalButton to edit Tables * refactor: stopPropagation method with MouseEvent 추가 - 버튼 클릭 이벤트가 상위로 전파되는 것을 막기 위해서 추가함 * feat: Edit 버튼 눌렀을 때, CreateTableModal 나오게 구현 * chore: unused closeModal function 삭제 * feat: Table 삭제를 위해 DeleteModalButton 구현 * feat: EditTableModal 구현 * feat: EditTableButton 구현 - 이후 수정 RestAPI 로직 추가 필요 * refactor: Edit 관련 컴포넌트에 name 매개변수 추가 * refactor: DebateTable 타입에 extends하여 delete 타입 추가 * refactor: 토론 유형 수정 불가 * refactor: 토론유형 hover: curser-not-allowed 추가 * refactor: handleDelete 함수형 업데이트로 수정 * refactor: EditTableButton 컴포넌트에 closeModal 매개변수 추가 * fix: TableListPage 테스트코드 수정 * [FEAT] 타임박스에 수정 및 삭제 UI 추가 (#42) * chore: 수정, 삭제 아이콘 이용을 위한 react-icons 추가 * style: 컴포넌트 간의 간경을 더 좁게 수정 * feat: 수정, 삭제 버튼을 합친 EditDeleteButtons 컴포넌트 구현 * style: 분기에 따른 컴포넌트의 높이를 동일하게 수정 * feat: 수정, 삭제 handler 함수 작성 * refactor: 가독성을 위해 중첩된 삼항연산자 분리 * feat: 삭제 버튼 클릭 시, 삭제 확인 모달 구현 * feat: EditDeleteButtons에 aria-label 추가 * test: EditDeleteButtons 스토리북 코드 작성 * feat: TableSetup 테스트에 수정, 삭제 기능 테스트 추가 * [FEAT] API 요청 관련 기능 구현 (#45) * feat: Added API mocking handler * feat: Implemented API request logics - 추가로, BE API 명세서의 반환 예시에 맞추어 일부 변수 이름을 수정 * refactor: Applied some minor changes - URL 생성 함수가 슬래시(/)를 여러 개 포함하는 문제 수정 - 모든 API 함수를 apis.ts에 통합 (추후 메소드 많아지면 분리) * feat: Let msw handler catch arguments 그 외 변경사항으로, API 함수들에서 경로 매개변수(path parameters)가 생략되어 있었던 문제를 해결 * refactor: 주석 추가 * fix: DebateTable 인터페이스 변경에 따른 일부 오류 수정 * feat: Added string identifier for 'useQuery' function --------- * [FEAT] 타임박스의 수정을 드래그앤드롭으로 변경하는 기능 구현 (#47) * feat: 이벤트 발생 비용 감소를 위한 useThrottle 작성 * faet: 타임박스 드래그앤 드롭을 위한 useDragAndDrop 구현 * feat: 타임박스에 드래그앤드롭 영역 지정 * feat: TableSetup에 드래그앤 드롭 선언 * refactor: 불필요한 주석 삭제 * fix: 병합과정에서 발생한 오류 수정 * [CHORE] storybook에 전역적인 decorators 설정 추가 (#50) * chore: 라우터, GlobalPortal설정을 전역 설정에 decorators로 추가 * chore: storybook에 msw 설정 추가 * [FIX] Mock Handler 파일에서 타입 에러 해결 (#54) * feat: Table 타입인 TableInfo 정의 * refactor: result 객체에 속핸 info의 타입을 명시하기 위해 request에 TableInfo 타입 명시 * chore: 이미 정의되있던 PostDebateTableResponseType 타입 사용 * [CHORE] VS Code 작업 영역에 대한 설정 파일 추가 #62 * [FEAT] 타이머 화면 구현 (#58) * feat: Implemented TimerPage * feat: Applied sound effect And applied minor design changed * refactor: Let TimerComponent change TimerPage's background * fix: NEUTRAL 항목에 불필요한 아이콘 뜨는 오류 수정 * feat: Added keyboard event listener on Timer * fix: 토론 순서 조작 시 발생하는 인덱스 초과 오버플로우 해결 * feat: 피드백에 따른 디자인 변경 사항 반영 * feat: Added loading and error screen on TimerPage * feat: Applied feedbacks from PR * fix: 타이머가 현재 debateInfo의 index를 불러오지 못하는 오류 수정 * refactor: 콘솔 로깅 비활성화 * fix: Storybook 출력되지 않는 문제 수정 - use-sound 패키지 제거하고 HTML 태그로 소리 출력 - 별도 컴포넌트를 거치지 않고 직접 gif 파일을 불러와 출력 * refactor: Removed unnecessary codes and comments * refactor: Hoisted all data and functions to the root page * fix: Cleared focus on button when space bar pressed * [FEAT] `ErrorBoundary` 도입 (#65) * feat: ErrorBoundary 도입 * feat: Wrapped router with ErrorBoundaryWrapper * feat: Enabled 'throwOnError' option on QueryClient * feat: Added refresh button on ErrorPage * refactor: Applied feedbacks from PR review - Declared string constants for ErrorBoundary - Set icon size on 'size' parameter instead of TailwindCSS 'className' * [FEAT] API 연결과 테이블 생성과 수정을 위해 funnel 패턴을 이용하여 멀티 스텝 폼 구현 (#57) * fix: 응답 타입을 문서에 맞게 수정 * feat: Agenda 타입 추가 * feat: 테이블을 추가하는 api 훅 추가 * feat: 테이블을 삭제하는 api 훅 추가 * feat: 사용자를 추가하는 api 훅 추가 * feat: 의회식 토론을 수정하는 api 훅 추가 * feat: 토론 리스트를 가져오는 api 훅 추가 * feat: 의호식 토론 정보를 가져오는 api 훅 추가 * style: 컴포넌트간의 간격 추가 * feat: multi-step form 구현을 위한 useFunnel 작성 * feat: multi-step form동안에 새로고침시에도 상태 유지를 위한 useBrowserStorage 구현 * feat: DropdownForDebateType의 로직 변경 * feat: 멀티 스텝을 이용한 방식으로 수정으로 인한 생성 모달, TableSetupPage를 변경 * feat: 테이블 생성과 수정을 위한 멀티 스텝 폼, TableComposition 구현 * feat: 테이블 form 정보 커스텀 훅 구현 * feat: 로그인 페이지에 상태와 api훅 추가 * fix: 타임박스 ui 버그 수정 * feat: 멀티 스텝 폼을 위해 TableSetupPage의 commponents 파일 이동 * feat: 테이블 수정을 모달에서 멀티스텝 폼 변경으로 인한 수정 * refactor: 더미 데이터 제거 * feat: composition 라우터 추가 * fix: 응답값에 맞게 msw 수정 * feat: 테이블 조회에 api 훅 추가 * refactor: 모달에서 멀티스텝폼 변경으로 인한 컴포넌트 명 변경 * fix: agenda와 type의 혼동으로 type 문제 수정 * fix: TableComposition 구현으로 인한 불필요한 파일 삭제 * fix: Type 타입을 영어로 수정 * fix: import 경로 수정 * feat: 테스트 mock을 위한 vitest 설정 * test: TableComposition 구현으로 인한 수정사항 반영 * feat: 버튼에 aria-label 추가 * chore: storybook msw 사용가능하게 설정 추가 * fix: stace 오타 변경 * test: storybook 경로 변경 * test: TableCompositon 스토리북 코드 작성 * fix: TableSetup삭제로 인한 라우터 변경 * chore: cleanup 함수 추가 * feat: 인터페이스 명 수정 * refactor: 한글에서 영어로 상수 변경 * refactor: NEUTRAL Stance 타입 변경 * refactor: typeMapping을 constants로 분리 * refactor: DebatePanel의 DebateTypeToString 수정 * refactor: type 값을 영어 상수로 변경 * [CHORE] 배포 파이프라인 자동화 구축 (#60) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * fix: 병합과정에 충돌 오류 수정 --------- * hotfix: 에러바운더리 코드가 삭제된 것에 대한 반영 (#69) * [REFACTOR] 타이머 기능 개선 외 (#66) * refactor: Applied several changes - Changed interval to 1000 ms (1 sec) - Added function that changes background to remove duplication of same codes - Removed isRunning not necessary * feat: Made TimerPage be able to catch parameters * fix: Recovered deleted ErrorBoundary related files * fix: Set icon size on 'size' argument instead of 'className' * refactor: Separated loading component to page * refactor: Applied several changes - Moved TimerLoadingPage to /src/TimerPage from /src/TimerPage/component - Set css file to print CR/LF correctly - Changed 'useQuery' to 'useGetParliamentaryTableData' hook * refactor: Deleted unneccesary codes * [HOTFIX] GitHub Actions 빌드 실패 문제 해결 (#73) - TableCompositionStep 상수 값을 한글(타임박스입력)에서 영어(TimeBox)로 바꾸며 발생한 문제 수정 - Type 상수 값을 한글(의회식 토론)에서 영어(PARLIAMENTARY)로 바꾸며 발생한 문제 수정 * [FEAT] AWS S3 및 FrontCloud dev, prod 각각 분리 배포 및 github action 구축 (#76) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * feat: dev 배포를 위한 deploy 코드 작성 * feat: prod 배포를 위한 deploy 코드 작성 * chore: merge 후 생성된 불 필요한 코드 삭제 * chore: dev 배포 명료성을 위해 access key 및 secret key 네이밍 변경 * chore: Dev 배포 관련 yml파일에서 bucket 네이밍 변경 * [FEAT] 닉네임 기반 로그인 구현 (#71) * feat: 로그인 시, memberId를 반환하도록 변경 * feat: memberId를 session 스토리지에 저장하도록 util 함수 작성 * fix: currentStep을 영문으로 변경 * feat: 정적으로 선언되 memberId를 스토리지에서 가져오도록 변경 * refactor: route.tsx 위치를 routes 폴더로 변경 * feat: ProtectedRoute 구현 * feat: ProtectedRoute 적용 * refactor: routes위치 변경에 따른 import 수정 * feat: 토론하기 클릭 시, TimerPage 연결 * refactor: 라우터 변경에 따른 수정사항 반영 --------- * [FEAT] 추가 작전 시간 타이머 구현 외 (#77) * feat: Changed API base url to deployed server * feat: Implemented AdditionalTimerComponent * fix: Recovered horizontal padding of useModal wrapper * feat: Deleted top margin of AdditionalTimerSummaryItem * fix: Fixed linting errors * fix: Removed hard-coded URL on source codes * fix: Make app get server URL from .env file * chore: Deleted .env files * chore: Updated .gitignore file to ignore .env files * [CHORE] 배포 최적화 및 배포 환경 구분 (#82) * chore: Separated deploy environments and variables * chore: Applined vite-plugin-compressions2 to compress builds * chore: Changed job name * fix: Added quotes on target path of Cloudfront cache invalidation * chore: Changed web page title * chore: Removed compression-related packages and codes * [HOTFIX] 배포된 앱이 서버와 통신하지 못하는 문제 수정 (#84) * [FIX] PostUserResponseType타입 수정, TableOverview에서 tableId를 url에서 정상적으로 가져오도록 수정 (#86) * fix: PostUserResponseType 타입 변경 * fix: 정적 navigate 제거 * fix: 불필요한 console.log제거 * fix: tableId를 정상적으로 불러오도록 수정 --------- Co-authored-by: Shawn Kang <77564014+i-meant-to-be@users.noreply.github.com> Co-authored-by: EunWoo <eunwoo1341@gmail.com>
* feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경
* Update issue templates * docs: 파일명 수정 * docs: PR 템플릿 생성 (#2) * docs: 자동 issue 설정 할당 * docs: 불필요한 주석 제거 * docs: 이슈 프로젝트 권한 추가 * docs: 자동할당 로직 변경 * feat: 권한 문제로 자동 Project할당 제거 * docs: PR 자동할당 yml 작성 * docs: 불필요한 Project 정보 제거 * docs: Discord comment 알림 yml 작성 * chore: 프로젝트 초기 세팅 * chore: prettier 설정 추가 * feat: 3개의 영역으로 구분된 header(StickyTriSectionHeader) 구현 * feat: 하단에 고정되어 있는 footer wrapper 구현 * feat: main 레이아웃 구현 * feat: 중첩 컴포넌트로 기본 레이아웃 구현 * design: layout의 ContentContanier 가운데 정렬 추가 * design: layout의 ContentContanier padding 추가 * feat: PropsAndConsTitle 구현 * feat: TimerCreationButton 구현 * feat: 테이블 타입 작성 * feat: 초를 분, 초로 포맷팅하는 함수 구현 * feat: DebatePanel 구현 * feat: 테이블 구성 페이지 초기 UI rngus * feat: Pretendard 웹폰트 추가 * chore: storybook 설정 추가 * test: DebatePanel 스토리 북 작성 * test: PropsAndConsTitle 스토리북 테스트 작성 * test: TimerCreationButton 스토리북 테스트 작성 * fix: 파일명에 불필요한 공백 제거 * [FEAT] 페이지 라우팅 적용 (#22) * chore: install react-router-dom * feat: App.tsx와 main.tsx 에서 라우팅 설정 * refactor: createBrowerRouter 방식 적용 - router.tsx 파일 생성하여 라우터 적용 - main.tsx 에서 <RouterProvider router={router} /> 적용 * chore: 불필요한 App.tsx 컴포넌트 삭제 * chore: eol prettier 적용 * [FEAT] 타이머 박스 생성 모달 구현 (#17) * feat: 포털 렌더링 관리를 위한 GlobalPortal 컴포넌트 추가 * feat: 모달 생성을 위한 modal 커스텀 훅 구현 * feat: GlobalPortal 적용 * feat: 제출 이벤트, 버튼 추가 * feat: uesModal 구조 변경 * feat: Stance, DebateType에 export 추가 * test: useModal 테스트 코드 작성 * feat: 타이머 박스 생성 모달 구현 * feat: 타임 테이블 구성 페이지 피그마 UI에 맞게 구성 * refactor: 불필요한 테스트 파일 삭제 * test: 타임 테이블 구성 페이지 스토리북 작성 * test: 타임 테이블 구성 페이지 테스트 코드 작성 * refactor: params변경에 따른 수정 * test: GlbalPortal 추가 * chore: chromatic 추가 * fix: 파일명에 불필요한 공백 제거 * chore: 크로매틱 배포 토큰 변경 * [FEAT] 로그인 페이지 구현 (#24) * feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경 * chore: lint와 test를 넣은 CI yml 파일 작성 (#27) * [FEAT] 테이블 목록화면 구현 (#26) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * refactor: Table 타입 분리 및 Type네이밍 변경 * [TEST] 로그인 페이지 Storybook 테스트코드 구현 (#31) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * feat: LoginPage Storybook 구현 * test: LinkButton 스토리북 구현 * [FIX] 타임 테이블 구성 페이지 피드백 사항 반영 (#29) * fix: 텍스트를 더 자세하게 수정 * feat: 최상단 컴포넌트에 GlobalPortal추가 * fix: 하단 버튼에 main의 content가 가려지던 문제 수정 * refactor: formatSecondsToMinutes 반환 값 변경 * feat: 선택 진영에 따라 모달 제목 텍스트 색상 변경 * feat: input을 select로 변경 * feat: stace에 따른 색상 변경 함수 구현 * feat: debateType가 중립일 경우 stance을 값을 빈문자열로 표시 * feat: input Numer의 leading zero삭제 * feat: 초기값을 이전 설정한 값으로 설정되게 변경 * feat: stace가 중립일 speakerNumber 수정 불가능하게 변경 * feat: 이전 데이터가 중립일 경우 debateType이 이전 데이터를 반영하지 않도록 변경 * [TEST] 테이블 목록 컴포넌트 Storybook 테스트코드 구현 (#35) * test: Table 컴포넌트 Storybook 구현 * test: TableListPage 페이지 Storybook 구현 * test: DropdownForDebateType 컴포넌트 Storybook 구현 * fix: test 코드 통과를 위해 코드 h2 tag 수정 * [FEAT] 테이블 조회 화면 구현 (#34) * refactor: PropsAndConsTitle의 재사용에 따른 폴더 위치 변경 * feat: 테이블 선택 페이지 기본 레이아웃 구현 * fix: footerWrapper을 flex정렬 방향 변경 * refactor: FixedFooterWrapper position 속정 변경에 따른 컴포넌트 명 수정 * feat: TableOverview 라우터 추가 * test: TableOverview 스토리북 작성 * test: PropsAndConsTitle의 위치 변경 * feat: 불필요한 주석 제거 * feat: 버튼 text 수정 * test: MemoryRouter추가 * fix: 사용되지 않은 getStanceColor 수정 * [TEST] 로그인 및 테이블 조회 컴포넌트 테스트코드 구현 (#37) * [CHORE] API 처리를 위해 패키지 추가 (#39) * chore: Added API-related packages to the project * chore: Added and modified codes for API - 가상 API 사용을 위한 msw 관련 파일 추가 - TanStack Query 및 msw 대응하여 main.tsx 수정 * chore: Let msw only enabled on 'dev-mock' mode * chore: Added one blank line at end of package.json * chore: Added EOL at end of environment variable files * [FEAT] 테이블 수정 및 삭제 구현 (#44) * chore: 수정 및 삭제 아이콘을 위해 react-icons 추가 * feat: Table 컴포넌트에 Icons 추가 * feat: implement handleDelete method * feat: implement EditModalButton to edit Tables * refactor: stopPropagation method with MouseEvent 추가 - 버튼 클릭 이벤트가 상위로 전파되는 것을 막기 위해서 추가함 * feat: Edit 버튼 눌렀을 때, CreateTableModal 나오게 구현 * chore: unused closeModal function 삭제 * feat: Table 삭제를 위해 DeleteModalButton 구현 * feat: EditTableModal 구현 * feat: EditTableButton 구현 - 이후 수정 RestAPI 로직 추가 필요 * refactor: Edit 관련 컴포넌트에 name 매개변수 추가 * refactor: DebateTable 타입에 extends하여 delete 타입 추가 * refactor: 토론 유형 수정 불가 * refactor: 토론유형 hover: curser-not-allowed 추가 * refactor: handleDelete 함수형 업데이트로 수정 * refactor: EditTableButton 컴포넌트에 closeModal 매개변수 추가 * fix: TableListPage 테스트코드 수정 * [FEAT] 타임박스에 수정 및 삭제 UI 추가 (#42) * chore: 수정, 삭제 아이콘 이용을 위한 react-icons 추가 * style: 컴포넌트 간의 간경을 더 좁게 수정 * feat: 수정, 삭제 버튼을 합친 EditDeleteButtons 컴포넌트 구현 * style: 분기에 따른 컴포넌트의 높이를 동일하게 수정 * feat: 수정, 삭제 handler 함수 작성 * refactor: 가독성을 위해 중첩된 삼항연산자 분리 * feat: 삭제 버튼 클릭 시, 삭제 확인 모달 구현 * feat: EditDeleteButtons에 aria-label 추가 * test: EditDeleteButtons 스토리북 코드 작성 * feat: TableSetup 테스트에 수정, 삭제 기능 테스트 추가 * [FEAT] API 요청 관련 기능 구현 (#45) * feat: Added API mocking handler * feat: Implemented API request logics - 추가로, BE API 명세서의 반환 예시에 맞추어 일부 변수 이름을 수정 * refactor: Applied some minor changes - URL 생성 함수가 슬래시(/)를 여러 개 포함하는 문제 수정 - 모든 API 함수를 apis.ts에 통합 (추후 메소드 많아지면 분리) * feat: Let msw handler catch arguments 그 외 변경사항으로, API 함수들에서 경로 매개변수(path parameters)가 생략되어 있었던 문제를 해결 * refactor: 주석 추가 * fix: DebateTable 인터페이스 변경에 따른 일부 오류 수정 * feat: Added string identifier for 'useQuery' function --------- * [FEAT] 타임박스의 수정을 드래그앤드롭으로 변경하는 기능 구현 (#47) * feat: 이벤트 발생 비용 감소를 위한 useThrottle 작성 * faet: 타임박스 드래그앤 드롭을 위한 useDragAndDrop 구현 * feat: 타임박스에 드래그앤드롭 영역 지정 * feat: TableSetup에 드래그앤 드롭 선언 * refactor: 불필요한 주석 삭제 * fix: 병합과정에서 발생한 오류 수정 * [CHORE] storybook에 전역적인 decorators 설정 추가 (#50) * chore: 라우터, GlobalPortal설정을 전역 설정에 decorators로 추가 * chore: storybook에 msw 설정 추가 * [FIX] Mock Handler 파일에서 타입 에러 해결 (#54) * feat: Table 타입인 TableInfo 정의 * refactor: result 객체에 속핸 info의 타입을 명시하기 위해 request에 TableInfo 타입 명시 * chore: 이미 정의되있던 PostDebateTableResponseType 타입 사용 * [CHORE] VS Code 작업 영역에 대한 설정 파일 추가 #62 * [FEAT] 타이머 화면 구현 (#58) * feat: Implemented TimerPage * feat: Applied sound effect And applied minor design changed * refactor: Let TimerComponent change TimerPage's background * fix: NEUTRAL 항목에 불필요한 아이콘 뜨는 오류 수정 * feat: Added keyboard event listener on Timer * fix: 토론 순서 조작 시 발생하는 인덱스 초과 오버플로우 해결 * feat: 피드백에 따른 디자인 변경 사항 반영 * feat: Added loading and error screen on TimerPage * feat: Applied feedbacks from PR * fix: 타이머가 현재 debateInfo의 index를 불러오지 못하는 오류 수정 * refactor: 콘솔 로깅 비활성화 * fix: Storybook 출력되지 않는 문제 수정 - use-sound 패키지 제거하고 HTML 태그로 소리 출력 - 별도 컴포넌트를 거치지 않고 직접 gif 파일을 불러와 출력 * refactor: Removed unnecessary codes and comments * refactor: Hoisted all data and functions to the root page * fix: Cleared focus on button when space bar pressed * [FEAT] `ErrorBoundary` 도입 (#65) * feat: ErrorBoundary 도입 * feat: Wrapped router with ErrorBoundaryWrapper * feat: Enabled 'throwOnError' option on QueryClient * feat: Added refresh button on ErrorPage * refactor: Applied feedbacks from PR review - Declared string constants for ErrorBoundary - Set icon size on 'size' parameter instead of TailwindCSS 'className' * [FEAT] API 연결과 테이블 생성과 수정을 위해 funnel 패턴을 이용하여 멀티 스텝 폼 구현 (#57) * fix: 응답 타입을 문서에 맞게 수정 * feat: Agenda 타입 추가 * feat: 테이블을 추가하는 api 훅 추가 * feat: 테이블을 삭제하는 api 훅 추가 * feat: 사용자를 추가하는 api 훅 추가 * feat: 의회식 토론을 수정하는 api 훅 추가 * feat: 토론 리스트를 가져오는 api 훅 추가 * feat: 의호식 토론 정보를 가져오는 api 훅 추가 * style: 컴포넌트간의 간격 추가 * feat: multi-step form 구현을 위한 useFunnel 작성 * feat: multi-step form동안에 새로고침시에도 상태 유지를 위한 useBrowserStorage 구현 * feat: DropdownForDebateType의 로직 변경 * feat: 멀티 스텝을 이용한 방식으로 수정으로 인한 생성 모달, TableSetupPage를 변경 * feat: 테이블 생성과 수정을 위한 멀티 스텝 폼, TableComposition 구현 * feat: 테이블 form 정보 커스텀 훅 구현 * feat: 로그인 페이지에 상태와 api훅 추가 * fix: 타임박스 ui 버그 수정 * feat: 멀티 스텝 폼을 위해 TableSetupPage의 commponents 파일 이동 * feat: 테이블 수정을 모달에서 멀티스텝 폼 변경으로 인한 수정 * refactor: 더미 데이터 제거 * feat: composition 라우터 추가 * fix: 응답값에 맞게 msw 수정 * feat: 테이블 조회에 api 훅 추가 * refactor: 모달에서 멀티스텝폼 변경으로 인한 컴포넌트 명 변경 * fix: agenda와 type의 혼동으로 type 문제 수정 * fix: TableComposition 구현으로 인한 불필요한 파일 삭제 * fix: Type 타입을 영어로 수정 * fix: import 경로 수정 * feat: 테스트 mock을 위한 vitest 설정 * test: TableComposition 구현으로 인한 수정사항 반영 * feat: 버튼에 aria-label 추가 * chore: storybook msw 사용가능하게 설정 추가 * fix: stace 오타 변경 * test: storybook 경로 변경 * test: TableCompositon 스토리북 코드 작성 * fix: TableSetup삭제로 인한 라우터 변경 * chore: cleanup 함수 추가 * feat: 인터페이스 명 수정 * refactor: 한글에서 영어로 상수 변경 * refactor: NEUTRAL Stance 타입 변경 * refactor: typeMapping을 constants로 분리 * refactor: DebatePanel의 DebateTypeToString 수정 * refactor: type 값을 영어 상수로 변경 * [CHORE] 배포 파이프라인 자동화 구축 (#60) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * fix: 병합과정에 충돌 오류 수정 --------- * hotfix: 에러바운더리 코드가 삭제된 것에 대한 반영 (#69) * [REFACTOR] 타이머 기능 개선 외 (#66) * refactor: Applied several changes - Changed interval to 1000 ms (1 sec) - Added function that changes background to remove duplication of same codes - Removed isRunning not necessary * feat: Made TimerPage be able to catch parameters * fix: Recovered deleted ErrorBoundary related files * fix: Set icon size on 'size' argument instead of 'className' * refactor: Separated loading component to page * refactor: Applied several changes - Moved TimerLoadingPage to /src/TimerPage from /src/TimerPage/component - Set css file to print CR/LF correctly - Changed 'useQuery' to 'useGetParliamentaryTableData' hook * refactor: Deleted unneccesary codes * [HOTFIX] GitHub Actions 빌드 실패 문제 해결 (#73) - TableCompositionStep 상수 값을 한글(타임박스입력)에서 영어(TimeBox)로 바꾸며 발생한 문제 수정 - Type 상수 값을 한글(의회식 토론)에서 영어(PARLIAMENTARY)로 바꾸며 발생한 문제 수정 * [FEAT] AWS S3 및 FrontCloud dev, prod 각각 분리 배포 및 github action 구축 (#76) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * feat: dev 배포를 위한 deploy 코드 작성 * feat: prod 배포를 위한 deploy 코드 작성 * chore: merge 후 생성된 불 필요한 코드 삭제 * chore: dev 배포 명료성을 위해 access key 및 secret key 네이밍 변경 * chore: Dev 배포 관련 yml파일에서 bucket 네이밍 변경 * [FEAT] 닉네임 기반 로그인 구현 (#71) * feat: 로그인 시, memberId를 반환하도록 변경 * feat: memberId를 session 스토리지에 저장하도록 util 함수 작성 * fix: currentStep을 영문으로 변경 * feat: 정적으로 선언되 memberId를 스토리지에서 가져오도록 변경 * refactor: route.tsx 위치를 routes 폴더로 변경 * feat: ProtectedRoute 구현 * feat: ProtectedRoute 적용 * refactor: routes위치 변경에 따른 import 수정 * feat: 토론하기 클릭 시, TimerPage 연결 * refactor: 라우터 변경에 따른 수정사항 반영 --------- * [FEAT] 추가 작전 시간 타이머 구현 외 (#77) * feat: Changed API base url to deployed server * feat: Implemented AdditionalTimerComponent * fix: Recovered horizontal padding of useModal wrapper * feat: Deleted top margin of AdditionalTimerSummaryItem * fix: Fixed linting errors * fix: Removed hard-coded URL on source codes * fix: Make app get server URL from .env file * chore: Deleted .env files * chore: Updated .gitignore file to ignore .env files * [CHORE] 배포 최적화 및 배포 환경 구분 (#82) * chore: Separated deploy environments and variables * chore: Applined vite-plugin-compressions2 to compress builds * chore: Changed job name * fix: Added quotes on target path of Cloudfront cache invalidation * chore: Changed web page title * chore: Removed compression-related packages and codes * [HOTFIX] 배포된 앱이 서버와 통신하지 못하는 문제 수정 (#84) * [FIX] PostUserResponseType타입 수정, TableOverview에서 tableId를 url에서 정상적으로 가져오도록 수정 (#86) * fix: PostUserResponseType 타입 변경 * fix: 정적 navigate 제거 * fix: 불필요한 console.log제거 * fix: tableId를 정상적으로 불러오도록 수정 --------- Co-authored-by: Shawn Kang <77564014+i-meant-to-be@users.noreply.github.com> Co-authored-by: EunWoo <eunwoo1341@gmail.com>
* Update issue templates * docs: 파일명 수정 * chore: 프로젝트 초기 세팅 * feat: 하단에 고정되어 있는 footer wrapper 구현 * feat: 중첩 컴포넌트로 기본 레이아웃 구현 * feat: PropsAndConsTitle 구현 * feat: TimerCreationButton 구현 * feat: DebatePanel 구현 * feat: 테이블 구성 페이지 초기 UI rngus * chore: storybook 설정 추가 * test: DebatePanel 스토리 북 작성 * test: PropsAndConsTitle 스토리북 테스트 작성 * test: TimerCreationButton 스토리북 테스트 작성 * fix: 파일명에 불필요한 공백 제거 * [FEAT] 페이지 라우팅 적용 (#22) * chore: install react-router-dom * feat: App.tsx와 main.tsx 에서 라우팅 설정 * refactor: createBrowerRouter 방식 적용 - router.tsx 파일 생성하여 라우터 적용 - main.tsx 에서 <RouterProvider router={router} /> 적용 * chore: 불필요한 App.tsx 컴포넌트 삭제 * chore: eol prettier 적용 * [FEAT] 타이머 박스 생성 모달 구현 (#17) * feat: 포털 렌더링 관리를 위한 GlobalPortal 컴포넌트 추가 * feat: 모달 생성을 위한 modal 커스텀 훅 구현 * feat: GlobalPortal 적용 * feat: 제출 이벤트, 버튼 추가 * feat: uesModal 구조 변경 * feat: Stance, DebateType에 export 추가 * test: useModal 테스트 코드 작성 * feat: 타이머 박스 생성 모달 구현 * feat: 타임 테이블 구성 페이지 피그마 UI에 맞게 구성 * refactor: 불필요한 테스트 파일 삭제 * test: 타임 테이블 구성 페이지 스토리북 작성 * test: 타임 테이블 구성 페이지 테스트 코드 작성 * refactor: params변경에 따른 수정 * test: GlbalPortal 추가 * chore: chromatic 추가 * fix: 파일명에 불필요한 공백 제거 * chore: 크로매틱 배포 토큰 변경 * [FEAT] 로그인 페이지 구현 (#24) * feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경 * [FEAT] 테이블 목록화면 구현 (#26) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * refactor: Table 타입 분리 및 Type네이밍 변경 * [FIX] 타임 테이블 구성 페이지 피드백 사항 반영 (#29) * fix: 텍스트를 더 자세하게 수정 * feat: 최상단 컴포넌트에 GlobalPortal추가 * fix: 하단 버튼에 main의 content가 가려지던 문제 수정 * refactor: formatSecondsToMinutes 반환 값 변경 * feat: 선택 진영에 따라 모달 제목 텍스트 색상 변경 * feat: input을 select로 변경 * feat: stace에 따른 색상 변경 함수 구현 * feat: debateType가 중립일 경우 stance을 값을 빈문자열로 표시 * feat: input Numer의 leading zero삭제 * feat: 초기값을 이전 설정한 값으로 설정되게 변경 * feat: stace가 중립일 speakerNumber 수정 불가능하게 변경 * feat: 이전 데이터가 중립일 경우 debateType이 이전 데이터를 반영하지 않도록 변경 * [TEST] 테이블 목록 컴포넌트 Storybook 테스트코드 구현 (#35) * test: Table 컴포넌트 Storybook 구현 * test: TableListPage 페이지 Storybook 구현 * test: DropdownForDebateType 컴포넌트 Storybook 구현 * fix: test 코드 통과를 위해 코드 h2 tag 수정 * [FEAT] 테이블 조회 화면 구현 (#34) * refactor: PropsAndConsTitle의 재사용에 따른 폴더 위치 변경 * feat: 테이블 선택 페이지 기본 레이아웃 구현 * fix: footerWrapper을 flex정렬 방향 변경 * refactor: FixedFooterWrapper position 속정 변경에 따른 컴포넌트 명 수정 * feat: TableOverview 라우터 추가 * test: TableOverview 스토리북 작성 * test: PropsAndConsTitle의 위치 변경 * feat: 불필요한 주석 제거 * feat: 버튼 text 수정 * test: MemoryRouter추가 * fix: 사용되지 않은 getStanceColor 수정 * [CHORE] API 처리를 위해 패키지 추가 (#39) * chore: Added API-related packages to the project * chore: Added and modified codes for API - 가상 API 사용을 위한 msw 관련 파일 추가 - TanStack Query 및 msw 대응하여 main.tsx 수정 * chore: Let msw only enabled on 'dev-mock' mode * chore: Added one blank line at end of package.json * chore: Added EOL at end of environment variable files * [FEAT] 테이블 수정 및 삭제 구현 (#44) * chore: 수정 및 삭제 아이콘을 위해 react-icons 추가 * feat: Table 컴포넌트에 Icons 추가 * feat: implement handleDelete method * feat: implement EditModalButton to edit Tables * refactor: stopPropagation method with MouseEvent 추가 - 버튼 클릭 이벤트가 상위로 전파되는 것을 막기 위해서 추가함 * feat: Edit 버튼 눌렀을 때, CreateTableModal 나오게 구현 * chore: unused closeModal function 삭제 * feat: Table 삭제를 위해 DeleteModalButton 구현 * feat: EditTableModal 구현 * feat: EditTableButton 구현 - 이후 수정 RestAPI 로직 추가 필요 * refactor: Edit 관련 컴포넌트에 name 매개변수 추가 * refactor: DebateTable 타입에 extends하여 delete 타입 추가 * refactor: 토론 유형 수정 불가 * refactor: 토론유형 hover: curser-not-allowed 추가 * refactor: handleDelete 함수형 업데이트로 수정 * refactor: EditTableButton 컴포넌트에 closeModal 매개변수 추가 * fix: TableListPage 테스트코드 수정 * [FEAT] 타임박스에 수정 및 삭제 UI 추가 (#42) * chore: 수정, 삭제 아이콘 이용을 위한 react-icons 추가 * style: 컴포넌트 간의 간경을 더 좁게 수정 * feat: 수정, 삭제 버튼을 합친 EditDeleteButtons 컴포넌트 구현 * style: 분기에 따른 컴포넌트의 높이를 동일하게 수정 * feat: 수정, 삭제 handler 함수 작성 * refactor: 가독성을 위해 중첩된 삼항연산자 분리 * feat: 삭제 버튼 클릭 시, 삭제 확인 모달 구현 * feat: EditDeleteButtons에 aria-label 추가 * test: EditDeleteButtons 스토리북 코드 작성 * feat: TableSetup 테스트에 수정, 삭제 기능 테스트 추가 * [FEAT] API 요청 관련 기능 구현 (#45) * feat: Added API mocking handler * feat: Implemented API request logics - 추가로, BE API 명세서의 반환 예시에 맞추어 일부 변수 이름을 수정 * refactor: Applied some minor changes - URL 생성 함수가 슬래시(/)를 여러 개 포함하는 문제 수정 - 모든 API 함수를 apis.ts에 통합 (추후 메소드 많아지면 분리) * feat: Let msw handler catch arguments 그 외 변경사항으로, API 함수들에서 경로 매개변수(path parameters)가 생략되어 있었던 문제를 해결 * refactor: 주석 추가 * fix: DebateTable 인터페이스 변경에 따른 일부 오류 수정 * feat: Added string identifier for 'useQuery' function --------- Co-authored-by: jaeml06 <jaeml0630@gmail.com> * [FEAT] 타임박스의 수정을 드래그앤드롭으로 변경하는 기능 구현 (#47) * feat: 이벤트 발생 비용 감소를 위한 useThrottle 작성 * faet: 타임박스 드래그앤 드롭을 위한 useDragAndDrop 구현 * feat: 타임박스에 드래그앤드롭 영역 지정 * feat: TableSetup에 드래그앤 드롭 선언 * refactor: 불필요한 주석 삭제 * fix: 병합과정에서 발생한 오류 수정 * [CHORE] storybook에 전역적인 decorators 설정 추가 (#50) * chore: 라우터, GlobalPortal설정을 전역 설정에 decorators로 추가 * chore: storybook에 msw 설정 추가 * [FIX] Mock Handler 파일에서 타입 에러 해결 (#54) * feat: Table 타입인 TableInfo 정의 * refactor: result 객체에 속핸 info의 타입을 명시하기 위해 request에 TableInfo 타입 명시 * chore: 이미 정의되있던 PostDebateTableResponseType 타입 사용 * [FEAT] 타이머 화면 구현 (#58) * feat: Implemented TimerPage * feat: Applied sound effect And applied minor design changed * refactor: Let TimerComponent change TimerPage's background * fix: NEUTRAL 항목에 불필요한 아이콘 뜨는 오류 수정 * feat: Added keyboard event listener on Timer * fix: 토론 순서 조작 시 발생하는 인덱스 초과 오버플로우 해결 * feat: 피드백에 따른 디자인 변경 사항 반영 * feat: Added loading and error screen on TimerPage * feat: Applied feedbacks from PR * fix: 타이머가 현재 debateInfo의 index를 불러오지 못하는 오류 수정 * refactor: 콘솔 로깅 비활성화 * fix: Storybook 출력되지 않는 문제 수정 - use-sound 패키지 제거하고 HTML 태그로 소리 출력 - 별도 컴포넌트를 거치지 않고 직접 gif 파일을 불러와 출력 * refactor: Removed unnecessary codes and comments * refactor: Hoisted all data and functions to the root page * fix: Cleared focus on button when space bar pressed * [FEAT] `ErrorBoundary` 도입 (#65) * feat: ErrorBoundary 도입 * feat: Wrapped router with ErrorBoundaryWrapper * feat: Enabled 'throwOnError' option on QueryClient * feat: Added refresh button on ErrorPage * refactor: Applied feedbacks from PR review - Declared string constants for ErrorBoundary - Set icon size on 'size' parameter instead of TailwindCSS 'className' * [FEAT] API 연결과 테이블 생성과 수정을 위해 funnel 패턴을 이용하여 멀티 스텝 폼 구현 (#57) * fix: 응답 타입을 문서에 맞게 수정 * feat: Agenda 타입 추가 * feat: 테이블을 추가하는 api 훅 추가 * feat: 테이블을 삭제하는 api 훅 추가 * feat: 사용자를 추가하는 api 훅 추가 * feat: 의회식 토론을 수정하는 api 훅 추가 * feat: 토론 리스트를 가져오는 api 훅 추가 * feat: 의호식 토론 정보를 가져오는 api 훅 추가 * style: 컴포넌트간의 간격 추가 * feat: multi-step form 구현을 위한 useFunnel 작성 * feat: multi-step form동안에 새로고침시에도 상태 유지를 위한 useBrowserStorage 구현 * feat: DropdownForDebateType의 로직 변경 * feat: 멀티 스텝을 이용한 방식으로 수정으로 인한 생성 모달, TableSetupPage를 변경 * feat: 테이블 생성과 수정을 위한 멀티 스텝 폼, TableComposition 구현 * feat: 테이블 form 정보 커스텀 훅 구현 * feat: 로그인 페이지에 상태와 api훅 추가 * fix: 타임박스 ui 버그 수정 * feat: 멀티 스텝 폼을 위해 TableSetupPage의 commponents 파일 이동 * feat: 테이블 수정을 모달에서 멀티스텝 폼 변경으로 인한 수정 * refactor: 더미 데이터 제거 * feat: composition 라우터 추가 * fix: 응답값에 맞게 msw 수정 * feat: 테이블 조회에 api 훅 추가 * refactor: 모달에서 멀티스텝폼 변경으로 인한 컴포넌트 명 변경 * fix: agenda와 type의 혼동으로 type 문제 수정 * fix: TableComposition 구현으로 인한 불필요한 파일 삭제 * fix: Type 타입을 영어로 수정 * fix: import 경로 수정 * feat: 테스트 mock을 위한 vitest 설정 * test: TableComposition 구현으로 인한 수정사항 반영 * feat: 버튼에 aria-label 추가 * chore: storybook msw 사용가능하게 설정 추가 * fix: stace 오타 변경 * test: storybook 경로 변경 * test: TableCompositon 스토리북 코드 작성 * fix: TableSetup삭제로 인한 라우터 변경 * chore: cleanup 함수 추가 * feat: 인터페이스 명 수정 * refactor: 한글에서 영어로 상수 변경 * refactor: NEUTRAL Stance 타입 변경 * refactor: typeMapping을 constants로 분리 * refactor: DebatePanel의 DebateTypeToString 수정 * refactor: type 값을 영어 상수로 변경 * [CHORE] 배포 파이프라인 자동화 구축 (#60) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * fix: 병합과정에 충돌 오류 수정 --------- Co-authored-by: jaeml06 <jaeml0630@gmail.com> * hotfix: 에러바운더리 코드가 삭제된 것에 대한 반영 (#69) * [REFACTOR] 타이머 기능 개선 외 (#66) * refactor: Applied several changes - Changed interval to 1000 ms (1 sec) - Added function that changes background to remove duplication of same codes - Removed isRunning not necessary * feat: Made TimerPage be able to catch parameters * fix: Recovered deleted ErrorBoundary related files * fix: Set icon size on 'size' argument instead of 'className' * refactor: Separated loading component to page * refactor: Applied several changes - Moved TimerLoadingPage to /src/TimerPage from /src/TimerPage/component - Set css file to print CR/LF correctly - Changed 'useQuery' to 'useGetParliamentaryTableData' hook * refactor: Deleted unneccesary codes * [FEAT] 닉네임 기반 로그인 구현 (#71) * feat: 로그인 시, memberId를 반환하도록 변경 * feat: memberId를 session 스토리지에 저장하도록 util 함수 작성 * fix: currentStep을 영문으로 변경 * feat: 정적으로 선언되 memberId를 스토리지에서 가져오도록 변경 * refactor: route.tsx 위치를 routes 폴더로 변경 * feat: ProtectedRoute 구현 * feat: ProtectedRoute 적용 * refactor: routes위치 변경에 따른 import 수정 * feat: 토론하기 클릭 시, TimerPage 연결 * refactor: 라우터 변경에 따른 수정사항 반영 --------- Co-authored-by: Shawn Kang <77564014+i-meant-to-be@users.noreply.github.com> * [FEAT] 추가 작전 시간 타이머 구현 외 (#77) * feat: Changed API base url to deployed server * feat: Implemented AdditionalTimerComponent * fix: Recovered horizontal padding of useModal wrapper * feat: Deleted top margin of AdditionalTimerSummaryItem * fix: Fixed linting errors * fix: Removed hard-coded URL on source codes * fix: Make app get server URL from .env file * chore: Deleted .env files * chore: Updated .gitignore file to ignore .env files * [CHORE] 배포 최적화 및 배포 환경 구분 (#82) * chore: Separated deploy environments and variables * chore: Applined vite-plugin-compressions2 to compress builds * chore: Changed job name * fix: Added quotes on target path of Cloudfront cache invalidation * chore: Changed web page title * chore: Removed compression-related packages and codes * [FIX] QA에서 식별한 버그 해결 - 숀 (#92) * feat: Fixed header's elements at the correct position * fix: Fixed bugs identified at QA * fix: Let TimerPage print error text when app failed to load data * fix: Fixed test codes affected by last commits * refactor: StickyTriSectionHeader변경에 따른 UI 수정 * feat: TableOverview 홈화면 버튼 추가 --------- Co-authored-by: jaeml06 <jaeml0630@gmail.com> * [FIX] QA에서 식별한 버그 해결 - 치코 (#93) * feat: 토론주제를 정상적으로 서버에 전달하도록 변경 * fix: 테이블 수정에서 상수로 되어있던 데이터 초기화 수정 * fix: 쿼리파라미터를 유지하도록 수정 * chore: preview 포트 3000으로 수정 * feat: 테이블을 없을시, 제출 버튼 블록처리 추가 * test: 테이블 추가하기 diabled상황 추가에 따른 테스트 수정 * [FIX, CHORE] mock에서 드래그앤 드롭 UI가 깨지는 문제 수정, Storybook 자동 배포 yml 작성 (#81) * fix: msw 모킹값 변경 * fix: 키값을 더 고유한 값으로 변경 * chore: storybook 자동 배포 yml 작성 --------- Co-authored-by: Shawn Kang <77564014+i-meant-to-be@users.noreply.github.com> * [CHORE] main 브랜치로 배포 (#87) (#97) * Update issue templates * docs: 파일명 수정 * docs: PR 템플릿 생성 (#2) * docs: 자동 issue 설정 할당 * docs: 불필요한 주석 제거 * docs: 이슈 프로젝트 권한 추가 * docs: 자동할당 로직 변경 * feat: 권한 문제로 자동 Project할당 제거 * docs: PR 자동할당 yml 작성 * docs: 불필요한 Project 정보 제거 * docs: Discord comment 알림 yml 작성 * chore: 프로젝트 초기 세팅 * chore: prettier 설정 추가 * feat: 3개의 영역으로 구분된 header(StickyTriSectionHeader) 구현 * feat: 하단에 고정되어 있는 footer wrapper 구현 * feat: main 레이아웃 구현 * feat: 중첩 컴포넌트로 기본 레이아웃 구현 * design: layout의 ContentContanier 가운데 정렬 추가 * design: layout의 ContentContanier padding 추가 * feat: PropsAndConsTitle 구현 * feat: TimerCreationButton 구현 * feat: 테이블 타입 작성 * feat: 초를 분, 초로 포맷팅하는 함수 구현 * feat: DebatePanel 구현 * feat: 테이블 구성 페이지 초기 UI rngus * feat: Pretendard 웹폰트 추가 * chore: storybook 설정 추가 * test: DebatePanel 스토리 북 작성 * test: PropsAndConsTitle 스토리북 테스트 작성 * test: TimerCreationButton 스토리북 테스트 작성 * fix: 파일명에 불필요한 공백 제거 * [FEAT] 페이지 라우팅 적용 (#22) * chore: install react-router-dom * feat: App.tsx와 main.tsx 에서 라우팅 설정 * refactor: createBrowerRouter 방식 적용 - router.tsx 파일 생성하여 라우터 적용 - main.tsx 에서 <RouterProvider router={router} /> 적용 * chore: 불필요한 App.tsx 컴포넌트 삭제 * chore: eol prettier 적용 * [FEAT] 타이머 박스 생성 모달 구현 (#17) * feat: 포털 렌더링 관리를 위한 GlobalPortal 컴포넌트 추가 * feat: 모달 생성을 위한 modal 커스텀 훅 구현 * feat: GlobalPortal 적용 * feat: 제출 이벤트, 버튼 추가 * feat: uesModal 구조 변경 * feat: Stance, DebateType에 export 추가 * test: useModal 테스트 코드 작성 * feat: 타이머 박스 생성 모달 구현 * feat: 타임 테이블 구성 페이지 피그마 UI에 맞게 구성 * refactor: 불필요한 테스트 파일 삭제 * test: 타임 테이블 구성 페이지 스토리북 작성 * test: 타임 테이블 구성 페이지 테스트 코드 작성 * refactor: params변경에 따른 수정 * test: GlbalPortal 추가 * chore: chromatic 추가 * fix: 파일명에 불필요한 공백 제거 * chore: 크로매틱 배포 토큰 변경 * [FEAT] 로그인 페이지 구현 (#24) * feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경 * chore: lint와 test를 넣은 CI yml 파일 작성 (#27) * [FEAT] 테이블 목록화면 구현 (#26) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * refactor: Table 타입 분리 및 Type네이밍 변경 * [TEST] 로그인 페이지 Storybook 테스트코드 구현 (#31) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * feat: LoginPage Storybook 구현 * test: LinkButton 스토리북 구현 * [FIX] 타임 테이블 구성 페이지 피드백 사항 반영 (#29) * fix: 텍스트를 더 자세하게 수정 * feat: 최상단 컴포넌트에 GlobalPortal추가 * fix: 하단 버튼에 main의 content가 가려지던 문제 수정 * refactor: formatSecondsToMinutes 반환 값 변경 * feat: 선택 진영에 따라 모달 제목 텍스트 색상 변경 * feat: input을 select로 변경 * feat: stace에 따른 색상 변경 함수 구현 * feat: debateType가 중립일 경우 stance을 값을 빈문자열로 표시 * feat: input Numer의 leading zero삭제 * feat: 초기값을 이전 설정한 값으로 설정되게 변경 * feat: stace가 중립일 speakerNumber 수정 불가능하게 변경 * feat: 이전 데이터가 중립일 경우 debateType이 이전 데이터를 반영하지 않도록 변경 * [TEST] 테이블 목록 컴포넌트 Storybook 테스트코드 구현 (#35) * test: Table 컴포넌트 Storybook 구현 * test: TableListPage 페이지 Storybook 구현 * test: DropdownForDebateType 컴포넌트 Storybook 구현 * fix: test 코드 통과를 위해 코드 h2 tag 수정 * [FEAT] 테이블 조회 화면 구현 (#34) * refactor: PropsAndConsTitle의 재사용에 따른 폴더 위치 변경 * feat: 테이블 선택 페이지 기본 레이아웃 구현 * fix: footerWrapper을 flex정렬 방향 변경 * refactor: FixedFooterWrapper position 속정 변경에 따른 컴포넌트 명 수정 * feat: TableOverview 라우터 추가 * test: TableOverview 스토리북 작성 * test: PropsAndConsTitle의 위치 변경 * feat: 불필요한 주석 제거 * feat: 버튼 text 수정 * test: MemoryRouter추가 * fix: 사용되지 않은 getStanceColor 수정 * [TEST] 로그인 및 테이블 조회 컴포넌트 테스트코드 구현 (#37) * [CHORE] API 처리를 위해 패키지 추가 (#39) * chore: Added API-related packages to the project * chore: Added and modified codes for API - 가상 API 사용을 위한 msw 관련 파일 추가 - TanStack Query 및 msw 대응하여 main.tsx 수정 * chore: Let msw only enabled on 'dev-mock' mode * chore: Added one blank line at end of package.json * chore: Added EOL at end of environment variable files * [FEAT] 테이블 수정 및 삭제 구현 (#44) * chore: 수정 및 삭제 아이콘을 위해 react-icons 추가 * feat: Table 컴포넌트에 Icons 추가 * feat: implement handleDelete method * feat: implement EditModalButton to edit Tables * refactor: stopPropagation method with MouseEvent 추가 - 버튼 클릭 이벤트가 상위로 전파되는 것을 막기 위해서 추가함 * feat: Edit 버튼 눌렀을 때, CreateTableModal 나오게 구현 * chore: unused closeModal function 삭제 * feat: Table 삭제를 위해 DeleteModalButton 구현 * feat: EditTableModal 구현 * feat: EditTableButton 구현 - 이후 수정 RestAPI 로직 추가 필요 * refactor: Edit 관련 컴포넌트에 name 매개변수 추가 * refactor: DebateTable 타입에 extends하여 delete 타입 추가 * refactor: 토론 유형 수정 불가 * refactor: 토론유형 hover: curser-not-allowed 추가 * refactor: handleDelete 함수형 업데이트로 수정 * refactor: EditTableButton 컴포넌트에 closeModal 매개변수 추가 * fix: TableListPage 테스트코드 수정 * [FEAT] 타임박스에 수정 및 삭제 UI 추가 (#42) * chore: 수정, 삭제 아이콘 이용을 위한 react-icons 추가 * style: 컴포넌트 간의 간경을 더 좁게 수정 * feat: 수정, 삭제 버튼을 합친 EditDeleteButtons 컴포넌트 구현 * style: 분기에 따른 컴포넌트의 높이를 동일하게 수정 * feat: 수정, 삭제 handler 함수 작성 * refactor: 가독성을 위해 중첩된 삼항연산자 분리 * feat: 삭제 버튼 클릭 시, 삭제 확인 모달 구현 * feat: EditDeleteButtons에 aria-label 추가 * test: EditDeleteButtons 스토리북 코드 작성 * feat: TableSetup 테스트에 수정, 삭제 기능 테스트 추가 * [FEAT] API 요청 관련 기능 구현 (#45) * feat: Added API mocking handler * feat: Implemented API request logics - 추가로, BE API 명세서의 반환 예시에 맞추어 일부 변수 이름을 수정 * refactor: Applied some minor changes - URL 생성 함수가 슬래시(/)를 여러 개 포함하는 문제 수정 - 모든 API 함수를 apis.ts에 통합 (추후 메소드 많아지면 분리) * feat: Let msw handler catch arguments 그 외 변경사항으로, API 함수들에서 경로 매개변수(path parameters)가 생략되어 있었던 문제를 해결 * refactor: 주석 추가 * fix: DebateTable 인터페이스 변경에 따른 일부 오류 수정 * feat: Added string identifier for 'useQuery' function --------- * [FEAT] 타임박스의 수정을 드래그앤드롭으로 변경하는 기능 구현 (#47) * feat: 이벤트 발생 비용 감소를 위한 useThrottle 작성 * faet: 타임박스 드래그앤 드롭을 위한 useDragAndDrop 구현 * feat: 타임박스에 드래그앤드롭 영역 지정 * feat: TableSetup에 드래그앤 드롭 선언 * refactor: 불필요한 주석 삭제 * fix: 병합과정에서 발생한 오류 수정 * [CHORE] storybook에 전역적인 decorators 설정 추가 (#50) * chore: 라우터, GlobalPortal설정을 전역 설정에 decorators로 추가 * chore: storybook에 msw 설정 추가 * [FIX] Mock Handler 파일에서 타입 에러 해결 (#54) * feat: Table 타입인 TableInfo 정의 * refactor: result 객체에 속핸 info의 타입을 명시하기 위해 request에 TableInfo 타입 명시 * chore: 이미 정의되있던 PostDebateTableResponseType 타입 사용 * [CHORE] VS Code 작업 영역에 대한 설정 파일 추가 #62 * [FEAT] 타이머 화면 구현 (#58) * feat: Implemented TimerPage * feat: Applied sound effect And applied minor design changed * refactor: Let TimerComponent change TimerPage's background * fix: NEUTRAL 항목에 불필요한 아이콘 뜨는 오류 수정 * feat: Added keyboard event listener on Timer * fix: 토론 순서 조작 시 발생하는 인덱스 초과 오버플로우 해결 * feat: 피드백에 따른 디자인 변경 사항 반영 * feat: Added loading and error screen on TimerPage * feat: Applied feedbacks from PR * fix: 타이머가 현재 debateInfo의 index를 불러오지 못하는 오류 수정 * refactor: 콘솔 로깅 비활성화 * fix: Storybook 출력되지 않는 문제 수정 - use-sound 패키지 제거하고 HTML 태그로 소리 출력 - 별도 컴포넌트를 거치지 않고 직접 gif 파일을 불러와 출력 * refactor: Removed unnecessary codes and comments * refactor: Hoisted all data and functions to the root page * fix: Cleared focus on button when space bar pressed * [FEAT] `ErrorBoundary` 도입 (#65) * feat: ErrorBoundary 도입 * feat: Wrapped router with ErrorBoundaryWrapper * feat: Enabled 'throwOnError' option on QueryClient * feat: Added refresh button on ErrorPage * refactor: Applied feedbacks from PR review - Declared string constants for ErrorBoundary - Set icon size on 'size' parameter instead of TailwindCSS 'className' * [FEAT] API 연결과 테이블 생성과 수정을 위해 funnel 패턴을 이용하여 멀티 스텝 폼 구현 (#57) * fix: 응답 타입을 문서에 맞게 수정 * feat: Agenda 타입 추가 * feat: 테이블을 추가하는 api 훅 추가 * feat: 테이블을 삭제하는 api 훅 추가 * feat: 사용자를 추가하는 api 훅 추가 * feat: 의회식 토론을 수정하는 api 훅 추가 * feat: 토론 리스트를 가져오는 api 훅 추가 * feat: 의호식 토론 정보를 가져오는 api 훅 추가 * style: 컴포넌트간의 간격 추가 * feat: multi-step form 구현을 위한 useFunnel 작성 * feat: multi-step form동안에 새로고침시에도 상태 유지를 위한 useBrowserStorage 구현 * feat: DropdownForDebateType의 로직 변경 * feat: 멀티 스텝을 이용한 방식으로 수정으로 인한 생성 모달, TableSetupPage를 변경 * feat: 테이블 생성과 수정을 위한 멀티 스텝 폼, TableComposition 구현 * feat: 테이블 form 정보 커스텀 훅 구현 * feat: 로그인 페이지에 상태와 api훅 추가 * fix: 타임박스 ui 버그 수정 * feat: 멀티 스텝 폼을 위해 TableSetupPage의 commponents 파일 이동 * feat: 테이블 수정을 모달에서 멀티스텝 폼 변경으로 인한 수정 * refactor: 더미 데이터 제거 * feat: composition 라우터 추가 * fix: 응답값에 맞게 msw 수정 * feat: 테이블 조회에 api 훅 추가 * refactor: 모달에서 멀티스텝폼 변경으로 인한 컴포넌트 명 변경 * fix: agenda와 type의 혼동으로 type 문제 수정 * fix: TableComposition 구현으로 인한 불필요한 파일 삭제 * fix: Type 타입을 영어로 수정 * fix: import 경로 수정 * feat: 테스트 mock을 위한 vitest 설정 * test: TableComposition 구현으로 인한 수정사항 반영 * feat: 버튼에 aria-label 추가 * chore: storybook msw 사용가능하게 설정 추가 * fix: stace 오타 변경 * test: storybook 경로 변경 * test: TableCompositon 스토리북 코드 작성 * fix: TableSetup삭제로 인한 라우터 변경 * chore: cleanup 함수 추가 * feat: 인터페이스 명 수정 * refactor: 한글에서 영어로 상수 변경 * refactor: NEUTRAL Stance 타입 변경 * refactor: typeMapping을 constants로 분리 * refactor: DebatePanel의 DebateTypeToString 수정 * refactor: type 값을 영어 상수로 변경 * [CHORE] 배포 파이프라인 자동화 구축 (#60) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * fix: 병합과정에 충돌 오류 수정 --------- * hotfix: 에러바운더리 코드가 삭제된 것에 대한 반영 (#69) * [REFACTOR] 타이머 기능 개선 외 (#66) * refactor: Applied several changes - Changed interval to 1000 ms (1 sec) - Added function that changes background to remove duplication of same codes - Removed isRunning not necessary * feat: Made TimerPage be able to catch parameters * fix: Recovered deleted ErrorBoundary related files * fix: Set icon size on 'size' argument instead of 'className' * refactor: Separated loading component to page * refactor: Applied several changes - Moved TimerLoadingPage to /src/TimerPage from /src/TimerPage/component - Set css file to print CR/LF correctly - Changed 'useQuery' to 'useGetParliamentaryTableData' hook * refactor: Deleted unneccesary codes * [HOTFIX] GitHub Actions 빌드 실패 문제 해결 (#73) - TableCompositionStep 상수 값을 한글(타임박스입력)에서 영어(TimeBox)로 바꾸며 발생한 문제 수정 - Type 상수 값을 한글(의회식 토론)에서 영어(PARLIAMENTARY)로 바꾸며 발생한 문제 수정 * [FEAT] AWS S3 및 FrontCloud dev, prod 각각 분리 배포 및 github action 구축 (#76) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * feat: dev 배포를 위한 deploy 코드 작성 * feat: prod 배포를 위한 deploy 코드 작성 * chore: merge 후 생성된 불 필요한 코드 삭제 * chore: dev 배포 명료성을 위해 access key 및 secret key 네이밍 변경 * chore: Dev 배포 관련 yml파일에서 bucket 네이밍 변경 * [FEAT] 닉네임 기반 로그인 구현 (#71) * feat: 로그인 시, memberId를 반환하도록 변경 * feat: memberId를 session 스토리지에 저장하도록 util 함수 작성 * fix: currentStep을 영문으로 변경 * feat: 정적으로 선언되 memberId를 스토리지에서 가져오도록 변경 * refactor: route.tsx 위치를 routes 폴더로 변경 * feat: ProtectedRoute 구현 * feat: ProtectedRoute 적용 * refactor: routes위치 변경에 따른 import 수정 * feat: 토론하기 클릭 시, TimerPage 연결 * refactor: 라우터 변경에 따른 수정사항 반영 --------- * [FEAT] 추가 작전 시간 타이머 구현 외 (#77) * feat: Changed API base url to deployed server * feat: Implemented AdditionalTimerComponent * fix: Recovered horizontal padding of useModal wrapper * feat: Deleted top margin of AdditionalTimerSummaryItem * fix: Fixed linting errors * fix: Removed hard-coded URL on source codes * fix: Make app get server URL from .env file * chore: Deleted .env files * chore: Updated .gitignore file to ignore .env files * [CHORE] 배포 최적화 및 배포 환경 구분 (#82) * chore: Separated deploy environments and variables * chore: Applined vite-plugin-compressions2 to compress builds * chore: Changed job name * fix: Added quotes on target path of Cloudfront cache invalidation * chore: Changed web page title * chore: Removed compression-related packages and codes * [HOTFIX] 배포된 앱이 서버와 통신하지 못하는 문제 수정 (#84) * [FIX] PostUserResponseType타입 수정, TableOverview에서 tableId를 url에서 정상적으로 가져오도록 수정 (#86) * fix: PostUserResponseType 타입 변경 * fix: 정적 navigate 제거 * fix: 불필요한 console.log제거 * fix: tableId를 정상적으로 불러오도록 수정 --------- Co-authored-by: Shawn Kang <77564014+i-meant-to-be@users.noreply.github.com> Co-authored-by: EunWoo <eunwoo1341@gmail.com> * [REFACTOR] 1차 UT에 있었던 1, 2순위 수정 사항 반영 (#102) * refactor: 생성, 수정 환경에서 문구 구분 * refactor: 드래그앤드롭 바 디자인 변경 * fix: 타임박스가 헤더 영역을 침범하는 문제 수정 * test: 문구 변경에 따른 테스트 수정 * Update issue templates * docs: 파일명 수정 * docs: PR 자동할당 yml 작성 * docs: 불필요한 Project 정보 제거 * chore: 프로젝트 초기 세팅 * feat: 중첩 컴포넌트로 기본 레이아웃 구현 * chore: storybook 설정 추가 * [FEAT] 페이지 라우팅 적용 (#22) * chore: install react-router-dom * feat: App.tsx와 main.tsx 에서 라우팅 설정 * refactor: createBrowerRouter 방식 적용 - router.tsx 파일 생성하여 라우터 적용 - main.tsx 에서 <RouterProvider router={router} /> 적용 * chore: 불필요한 App.tsx 컴포넌트 삭제 * chore: eol prettier 적용 * [FEAT] 타이머 박스 생성 모달 구현 (#17) * feat: 포털 렌더링 관리를 위한 GlobalPortal 컴포넌트 추가 * feat: 모달 생성을 위한 modal 커스텀 훅 구현 * feat: GlobalPortal 적용 * feat: 제출 이벤트, 버튼 추가 * feat: uesModal 구조 변경 * feat: Stance, DebateType에 export 추가 * test: useModal 테스트 코드 작성 * feat: 타이머 박스 생성 모달 구현 * feat: 타임 테이블 구성 페이지 피그마 UI에 맞게 구성 * refactor: 불필요한 테스트 파일 삭제 * test: 타임 테이블 구성 페이지 스토리북 작성 * test: 타임 테이블 구성 페이지 테스트 코드 작성 * refactor: params변경에 따른 수정 * test: GlbalPortal 추가 * chore: chromatic 추가 * fix: 파일명에 불필요한 공백 제거 * chore: 크로매틱 배포 토큰 변경 * [FEAT] 로그인 페이지 구현 (#24) * feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경 * [FEAT] 테이블 목록화면 구현 (#26) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * refactor: Table 타입 분리 및 Type네이밍 변경 * [FIX] 타임 테이블 구성 페이지 피드백 사항 반영 (#29) * fix: 텍스트를 더 자세하게 수정 * feat: 최상단 컴포넌트에 GlobalPortal추가 * fix: 하단 버튼에 main의 content가 가려지던 문제 수정 * refactor: formatSecondsToMinutes 반환 값 변경 * feat: 선택 진영에 따라 모달 제목 텍스트 색상 변경 * feat: input을 select로 변경 * feat: stace에 따른 색상 변경 함수 구현 * feat: debateType가 중립일 경우 stance을 값을 빈문자열로 표시 * feat: input Numer의 leading zero삭제 * feat: 초기값을 이전 설정한 값으로 설정되게 변경 * feat: stace가 중립일 speakerNumber 수정 불가능하게 변경 * feat: 이전 데이터가 중립일 경우 debateType이 이전 데이터를 반영하지 않도록 변경 * [TEST] 테이블 목록 컴포넌트 Storybook 테스트코드 구현 (#35) * test: Table 컴포넌트 Storybook 구현 * test: TableListPage 페이지 Storybook 구현 * test: DropdownForDebateType 컴포넌트 Storybook 구현 * fix: test 코드 통과를 위해 코드 h2 tag 수정 * [FEAT] 테이블 조회 화면 구현 (#34) * refactor: PropsAndConsTitle의 재사용에 따른 폴더 위치 변경 * feat: 테이블 선택 페이지 기본 레이아웃 구현 * fix: footerWrapper을 flex정렬 방향 변경 * refactor: FixedFooterWrapper position 속정 변경에 따른 컴포넌트 명 수정 * feat: TableOverview 라우터 추가 * test: TableOverview 스토리북 작성 * test: PropsAndConsTitle의 위치 변경 * feat: 불필요한 주석 제거 * feat: 버튼 text 수정 * test: MemoryRouter추가 * fix: 사용되지 않은 getStanceColor 수정 * [CHORE] API 처리를 위해 패키지 추가 (#39) * chore: Added API-related packages to the project * chore: Added and modified codes for API - 가상 API 사용을 위한 msw 관련 파일 추가 - TanStack Query 및 msw 대응하여 main.tsx 수정 * chore: Let msw only enabled on 'dev-mock' mode * chore: Added one blank line at end of package.json * chore: Added EOL at end of environment variable files * [FEAT] 테이블 수정 및 삭제 구현 (#44) * chore: 수정 및 삭제 아이콘을 위해 react-icons 추가 * feat: Table 컴포넌트에 Icons 추가 * feat: implement handleDelete method * feat: implement EditModalButton to edit Tables * refactor: stopPropagation method with MouseEvent 추가 - 버튼 클릭 이벤트가 상위로 전파되는 것을 막기 위해서 추가함 * feat: Edit 버튼 눌렀을 때, CreateTableModal 나오게 구현 * chore: unused closeModal function 삭제 * feat: Table 삭제를 위해 DeleteModalButton 구현 * feat: EditTableModal 구현 * feat: EditTableButton 구현 - 이후 수정 RestAPI 로직 추가 필요 * refactor: Edit 관련 컴포넌트에 name 매개변수 추가 * refactor: DebateTable 타입에 extends하여 delete 타입 추가 * refactor: 토론 유형 수정 불가 * refactor: 토론유형 hover: curser-not-allowed 추가 * refactor: handleDelete 함수형 업데이트로 수정 * refactor: EditTableButton 컴포넌트에 closeModal 매개변수 추가 * fix: TableListPage 테스트코드 수정 * [FEAT] 타임박스에 수정 및 삭제 UI 추가 (#42) * chore: 수정, 삭제 아이콘 이용을 위한 react-icons 추가 * style: 컴포넌트 간의 간경을 더 좁게 수정 * feat: 수정, 삭제 버튼을 합친 EditDeleteButtons 컴포넌트 구현 * style: 분기에 따른 컴포넌트의 높이를 동일하게 수정 * feat: 수정, 삭제 handler 함수 작성 * refactor: 가독성을 위해 중첩된 삼항연산자 분리 * feat: 삭제 버튼 클릭 시, 삭제 확인 모달 구현 * feat: EditDeleteButtons에 aria-label 추가 * test: EditDeleteButtons 스토리북 코드 작성 * feat: TableSetup 테스트에 수정, 삭제 기능 테스트 추가 * [FEAT] API 요청 관련 기능 구현 (#45) * feat: Added API mocking handler * feat: Implemented API request logics - 추가로, BE API 명세서의 반환 예시에 맞추어 일부 변수 이름을 수정 * refactor: Applied some minor changes - URL 생성 함수가 슬래시(/)를 여러 개 포함하는 문제 수정 - 모든 API 함수를 apis.ts에 통합 (추후 메소드 많아지면 분리) * feat: Let msw handler catch arguments 그 외 변경사항으로, API 함수들에서 경로 매개변수(path parameters)가 생략되어 있었던 문제를 해결 * refactor: 주석 추가 * fix: DebateTable 인터페이스 변경에 따른 일부 오류 수정 * feat: Added string identifier for 'useQuery' function --------- Co-authored-by: jaeml06 <jaeml0630@gmail.com> * [FEAT] 타임박스의 수정을 드래그앤드롭으로 변경하는 기능 구현 (#47) * feat: 이벤트 발생 비용 감소를 위한 useThrottle 작성 * faet: 타임박스 드래그앤 드롭을 위한 useDragAndDrop 구현 * feat: 타임박스에 드래그앤드롭 영역 지정 * feat: TableSetup에 드래그앤 드롭 선언 * refactor: 불필요한 주석 삭제 * fix: 병합과정에서 발생한 오류 수정 * [CHORE] storybook에 전역적인 decorators 설정 추가 (#50) * chore: 라우터, GlobalPortal설정을 전역 설정에 decorators로 추가 * chore: storybook에 msw 설정 추가 * [FEAT] 타이머 화면 구현 (#58) * feat: Implemented TimerPage * feat: Applied sound effect And applied minor design changed * refactor: Let TimerComponent change TimerPage's background * fix: NEUTRAL 항목에 불필요한 아이콘 뜨는 오류 수정 * feat: Added keyboard event listener on Timer * fix: 토론 순서 조작 시 발생하는 인덱스 초과 오버플로우 해결 * feat: 피드백에 따른 디자인 변경 사항 반영 * feat: Added loading and error screen on TimerPage * feat: Applied feedbacks from PR * fix: 타이머가 현재 debateInfo의 index를 불러오지 못하는 오류 수정 * refactor: 콘솔 로깅 비활성화 * fix: Storybook 출력되지 않는 문제 수정 - use-sound 패키지 제거하고 HTML 태그로 소리 출력 - 별도 컴포넌트를 거치지 않고 직접 gif 파일을 불러와 출력 * refactor: Removed unnecessary codes and comments * refactor: Hoisted all data and functions to the root page * fix: Cleared focus on button when space bar pressed * [FEAT] `ErrorBoundary` 도입 (#65) * feat: ErrorBoundary 도입 * feat: Wrapped router with ErrorBoundaryWrapper * feat: Enabled 'throwOnError' option on QueryClient * feat: Added refresh button on ErrorPage * refactor: Applied feedbacks from PR review - Declared string constants for ErrorBoundary - Set icon size on 'size' parameter instead of TailwindCSS 'className' * [FEAT] API 연결과 테이블 생성과 수정을 위해 funnel 패턴을 이용하여 멀티 스텝 폼 구현 (#57) * fix: 응답 타입을 문서에 맞게 수정 * feat: Agenda 타입 추가 * feat: 테이블을 추가하는 api 훅 추가 * feat: 테이블을 삭제하는 api 훅 추가 * feat: 사용자를 추가하는 api 훅 추가 * feat: 의회식 토론을 수정하는 api 훅 추가 * feat: 토론 리스트를 가져오는 api 훅 추가 * feat: 의호식 토론 정보를 가져오는 api 훅 추가 * style: 컴포넌트간의 간격 추가 * feat: multi-step form 구현을 위한 useFunnel 작성 * feat: multi-step form동안에 새로고침시에도 상태 유지를 위한 useBrowserStorage 구현 * feat: DropdownForDebateType의 로직 변경 * feat: 멀티 스텝을 이용한 방식으로 수정으로 인한 생성 모달, TableSetupPage를 변경 * feat: 테이블 생성과 수정을 위한 멀티 스텝 폼, TableComposition 구현 * feat: 테이블 form 정보 커스텀 훅 구현 * feat: 로그인 페이지에 상태와 api훅 추가 * fix: 타임박스 ui 버그 수정 * feat: 멀티 스텝 폼을 위해 TableSetupPage의 commponents 파일 이동 * feat: 테이블 수정을 모달에서 멀티스텝 폼 변경으로 인한 수정 * refactor: 더미 데이터 제거 * feat: composition 라우터 추가 * fix: 응답값에 맞게 msw 수정 * feat: 테이블 조회에 api 훅 추가 * refactor: 모달에서 멀티스텝폼 변경으로 인한 컴포넌트 명 변경 * fix: agenda와 type의 혼동으로 type 문제 수정 * fix: TableComposition 구현으로 인한 불필요한 파일 삭제 * fix: Type 타입을 영어로 수정 * fix: import 경로 수정 * feat: 테스트 mock을 위한 vitest 설정 * test: TableComposition 구현으로 인한 수정사항 반영 * feat: 버튼에 aria-label 추가 * chore: storybook msw 사용가능하게 설정 추가 * fix: stace 오타 변경 * test: storybook 경로 변경 * test: TableCompositon 스토리북 코드 작성 * fix: TableSetup삭제로 인한 라우터 변경 * chore: cleanup 함수 추가 * feat: 인터페이스 명 수정 * refactor: 한글에서 영어로 상수 변경 * refactor: NEUTRAL Stance 타입 변경 * refactor: typeMapping을 constants로 분리 * refactor: DebatePanel의 DebateTypeToString 수정 * refactor: type 값을 영어 상수로 변경 * [CHORE] 배포 파이프라인 자동화 구축 (#60) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * fix: 병합과정에 충돌 오류 수정 --------- Co-authored-by: jaeml06 <jaeml0630@gmail.com> * hotfix: 에러바운더리 코드가 삭제된 것에 대한 반영 (#69) * [REFACTOR] 타이머 기능 개선 외 (#66) * refactor: Applied several changes - Changed interval to 1000 ms (1 sec) - Added function that changes background to remove duplication of same codes - Removed isRunning not necessary * feat: Made TimerPage be able to catch parameters * fix: Recovered deleted ErrorBoundary related files * fix: Set icon size on 'size' argument instead of 'className' * refactor: Separated loading component to page * refactor: Applied several changes - Moved TimerLoadingPage to /src/TimerPage from /src/TimerPage/component - Set css file to print CR/LF correctly - Changed 'useQuery' to 'useGetParliamentaryTableData' hook * refactor: Deleted unneccesary codes * [FEAT] 닉네임 기반 로그인 구현 (#71) * feat: 로그인 시, memberId를 반환하도록 변경 * feat: memberId를 session 스토리지에 저장하도록 util 함수 작성 * fix: currentStep을 영문으로 변경 * feat: 정적으로 선언되 memberId를 스토리지에서 가져오도록 변경 * refactor: route.tsx 위치를 routes 폴더로 변경 * feat: ProtectedRoute 구현 * feat: ProtectedRoute 적용 * refactor: routes위치 변경에 따른 import 수정 * feat: 토론하기 클릭 시, TimerPage 연결 * refactor: 라우터 변경에 따른 수정사항 반영 --------- Co-authored-by: Shawn Kang <77564014+i-meant-to-be@users.noreply.github.com> * [FEAT] 추가 작전 시간 타이머 구현 외 (#77) * feat: Changed API base url to deployed server * feat: Implemented AdditionalTimerComponent * fix: Recovered horizontal padding of useModal wrapper * feat: Deleted top margin of AdditionalTimerSummaryItem * fix: Fixed linting errors * fix: Removed hard-coded URL on source codes * fix: Make app get server URL from .env file * chore: Deleted .env files * chore: Updated .gitignore file to ignore .env files * [CHORE] 배포 최적화 및 배포 환경 구분 (#82) * chore: Separated deploy environments and variables * chore: Applined vite-plugin-compressions2 to compress builds * chore: Changed job name * fix: Added quotes on target path of Cloudfront cache invalidation * chore: Changed web page title * chore: Removed compression-related packages and codes * [CHORE] main 브랜치로 배포 (#87) (#97) * Update issue templates * docs: 파일명 수정 * docs: PR 템플릿 생성 (#2) * docs: 자동 issue 설정 할당 * docs: 불필요한 주석 제거 * docs: 이슈 프로젝트 권한 추가 * docs: 자동할당 로직 변경 * feat: 권한 문제로 자동 Project할당 제거 * docs: PR 자동할당 yml 작성 * docs: 불필요한 Project 정보 제거 * docs: Discord comment 알림 yml 작성 * chore: 프로젝트 초기 세팅 * chore: prettier 설정 추가 * feat: 3개의 영역으로 구분된 header(StickyTriSectionHeader) 구현 * feat: 하단에 고정되어 있는 footer wrapper 구현 * feat: main 레이아웃 구현 * feat: 중첩 컴포넌트로 기본 레이아웃 구현 * design: layout의 ContentContanier 가운데 정렬 추가 * design: layout의 ContentContanier padding 추가 * feat: PropsAndConsTitle 구현 * feat: TimerCreationButton 구현 * feat: 테이블 타입 작성 * feat: 초를 분, 초로 포맷팅하는 함수 구현 * feat: DebatePanel 구현 * feat: 테이블 구성 페이지 초기 UI rngus * feat: Pretendard 웹폰트 추가 * chore: storybook 설정 추가 * test: DebatePanel 스토리 북 작성 * test: PropsAndConsTitle 스토리북 테스트 작성 * test: TimerCreationButton 스토리북 테스트 작성 * fix: 파일명에 불필요한 공백 제거 * [FEAT] 페이지 라우팅 적용 (#22) * chore: install react-router-dom * feat: App.tsx와 main.tsx 에서 라우팅 설정 * refactor: createBrowerRouter 방식 적용 - router.tsx 파일 생성하여 라우터 적용 - main.tsx 에서 <RouterProvider router={router} /> 적용 * chore: 불필요한 App.tsx 컴포넌트 삭제 * chore: eol prettier 적용 * [FEAT] 타이머 박스 생성 모달 구현 (#17) * feat: 포털 렌더링 관리를 위한 GlobalPortal 컴포넌트 추가 * feat: 모달 생성을 위한 modal 커스텀 훅 구현 * feat: GlobalPortal 적용 * feat: 제출 이벤트, 버튼 추가 * feat: uesModal 구조 변경 * feat: Stance, DebateType에 export 추가 * test: useModal 테스트 코드 작성 * feat: 타이머 박스 생성 모달 구현 * feat: 타임 테이블 구성 페이지 피그마 UI에 맞게 구성 * refactor: 불필요한 테스트 파일 삭제 * test: 타임 테이블 구성 페이지 스토리북 작성 * test: 타임 테이블 구성 페이지 테스트 코드 작성 * refactor: params변경에 따른 수정 * test: GlbalPortal 추가 * chore: chromatic 추가 * fix: 파일명에 불필요한 공백 제거 * chore: 크로매틱 배포 토큰 변경 * [FEAT] 로그인 페이지 구현 (#24) * feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경 * chore: lint와 test를 넣은 CI yml 파일 작성 (#27) * [FEAT] 테이블 목록화면 구현 (#26) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * refactor: Table 타입 분리 및 Type네이밍 변경 * [TEST] 로그인 페이지 Storybook 테스트코드 구현 (#31) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * feat: LoginPage Storybook 구현 * test: LinkButton 스토리북 구현 * [FIX] 타임 테이블 구성 …
* feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경
* Update issue templates * docs: 파일명 수정 * docs: PR 템플릿 생성 (#2) * docs: 자동 issue 설정 할당 * docs: 불필요한 주석 제거 * docs: 이슈 프로젝트 권한 추가 * docs: 자동할당 로직 변경 * feat: 권한 문제로 자동 Project할당 제거 * docs: PR 자동할당 yml 작성 * docs: 불필요한 Project 정보 제거 * docs: Discord comment 알림 yml 작성 * chore: 프로젝트 초기 세팅 * chore: prettier 설정 추가 * feat: 3개의 영역으로 구분된 header(StickyTriSectionHeader) 구현 * feat: 하단에 고정되어 있는 footer wrapper 구현 * feat: main 레이아웃 구현 * feat: 중첩 컴포넌트로 기본 레이아웃 구현 * design: layout의 ContentContanier 가운데 정렬 추가 * design: layout의 ContentContanier padding 추가 * feat: PropsAndConsTitle 구현 * feat: TimerCreationButton 구현 * feat: 테이블 타입 작성 * feat: 초를 분, 초로 포맷팅하는 함수 구현 * feat: DebatePanel 구현 * feat: 테이블 구성 페이지 초기 UI rngus * feat: Pretendard 웹폰트 추가 * chore: storybook 설정 추가 * test: DebatePanel 스토리 북 작성 * test: PropsAndConsTitle 스토리북 테스트 작성 * test: TimerCreationButton 스토리북 테스트 작성 * fix: 파일명에 불필요한 공백 제거 * [FEAT] 페이지 라우팅 적용 (#22) * chore: install react-router-dom * feat: App.tsx와 main.tsx 에서 라우팅 설정 * refactor: createBrowerRouter 방식 적용 - router.tsx 파일 생성하여 라우터 적용 - main.tsx 에서 <RouterProvider router={router} /> 적용 * chore: 불필요한 App.tsx 컴포넌트 삭제 * chore: eol prettier 적용 * [FEAT] 타이머 박스 생성 모달 구현 (#17) * feat: 포털 렌더링 관리를 위한 GlobalPortal 컴포넌트 추가 * feat: 모달 생성을 위한 modal 커스텀 훅 구현 * feat: GlobalPortal 적용 * feat: 제출 이벤트, 버튼 추가 * feat: uesModal 구조 변경 * feat: Stance, DebateType에 export 추가 * test: useModal 테스트 코드 작성 * feat: 타이머 박스 생성 모달 구현 * feat: 타임 테이블 구성 페이지 피그마 UI에 맞게 구성 * refactor: 불필요한 테스트 파일 삭제 * test: 타임 테이블 구성 페이지 스토리북 작성 * test: 타임 테이블 구성 페이지 테스트 코드 작성 * refactor: params변경에 따른 수정 * test: GlbalPortal 추가 * chore: chromatic 추가 * fix: 파일명에 불필요한 공백 제거 * chore: 크로매틱 배포 토큰 변경 * [FEAT] 로그인 페이지 구현 (#24) * feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경 * chore: lint와 test를 넣은 CI yml 파일 작성 (#27) * [FEAT] 테이블 목록화면 구현 (#26) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * refactor: Table 타입 분리 및 Type네이밍 변경 * [TEST] 로그인 페이지 Storybook 테스트코드 구현 (#31) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * feat: LoginPage Storybook 구현 * test: LinkButton 스토리북 구현 * [FIX] 타임 테이블 구성 페이지 피드백 사항 반영 (#29) * fix: 텍스트를 더 자세하게 수정 * feat: 최상단 컴포넌트에 GlobalPortal추가 * fix: 하단 버튼에 main의 content가 가려지던 문제 수정 * refactor: formatSecondsToMinutes 반환 값 변경 * feat: 선택 진영에 따라 모달 제목 텍스트 색상 변경 * feat: input을 select로 변경 * feat: stace에 따른 색상 변경 함수 구현 * feat: debateType가 중립일 경우 stance을 값을 빈문자열로 표시 * feat: input Numer의 leading zero삭제 * feat: 초기값을 이전 설정한 값으로 설정되게 변경 * feat: stace가 중립일 speakerNumber 수정 불가능하게 변경 * feat: 이전 데이터가 중립일 경우 debateType이 이전 데이터를 반영하지 않도록 변경 * [TEST] 테이블 목록 컴포넌트 Storybook 테스트코드 구현 (#35) * test: Table 컴포넌트 Storybook 구현 * test: TableListPage 페이지 Storybook 구현 * test: DropdownForDebateType 컴포넌트 Storybook 구현 * fix: test 코드 통과를 위해 코드 h2 tag 수정 * [FEAT] 테이블 조회 화면 구현 (#34) * refactor: PropsAndConsTitle의 재사용에 따른 폴더 위치 변경 * feat: 테이블 선택 페이지 기본 레이아웃 구현 * fix: footerWrapper을 flex정렬 방향 변경 * refactor: FixedFooterWrapper position 속정 변경에 따른 컴포넌트 명 수정 * feat: TableOverview 라우터 추가 * test: TableOverview 스토리북 작성 * test: PropsAndConsTitle의 위치 변경 * feat: 불필요한 주석 제거 * feat: 버튼 text 수정 * test: MemoryRouter추가 * fix: 사용되지 않은 getStanceColor 수정 * [TEST] 로그인 및 테이블 조회 컴포넌트 테스트코드 구현 (#37) * [CHORE] API 처리를 위해 패키지 추가 (#39) * chore: Added API-related packages to the project * chore: Added and modified codes for API - 가상 API 사용을 위한 msw 관련 파일 추가 - TanStack Query 및 msw 대응하여 main.tsx 수정 * chore: Let msw only enabled on 'dev-mock' mode * chore: Added one blank line at end of package.json * chore: Added EOL at end of environment variable files * [FEAT] 테이블 수정 및 삭제 구현 (#44) * chore: 수정 및 삭제 아이콘을 위해 react-icons 추가 * feat: Table 컴포넌트에 Icons 추가 * feat: implement handleDelete method * feat: implement EditModalButton to edit Tables * refactor: stopPropagation method with MouseEvent 추가 - 버튼 클릭 이벤트가 상위로 전파되는 것을 막기 위해서 추가함 * feat: Edit 버튼 눌렀을 때, CreateTableModal 나오게 구현 * chore: unused closeModal function 삭제 * feat: Table 삭제를 위해 DeleteModalButton 구현 * feat: EditTableModal 구현 * feat: EditTableButton 구현 - 이후 수정 RestAPI 로직 추가 필요 * refactor: Edit 관련 컴포넌트에 name 매개변수 추가 * refactor: DebateTable 타입에 extends하여 delete 타입 추가 * refactor: 토론 유형 수정 불가 * refactor: 토론유형 hover: curser-not-allowed 추가 * refactor: handleDelete 함수형 업데이트로 수정 * refactor: EditTableButton 컴포넌트에 closeModal 매개변수 추가 * fix: TableListPage 테스트코드 수정 * [FEAT] 타임박스에 수정 및 삭제 UI 추가 (#42) * chore: 수정, 삭제 아이콘 이용을 위한 react-icons 추가 * style: 컴포넌트 간의 간경을 더 좁게 수정 * feat: 수정, 삭제 버튼을 합친 EditDeleteButtons 컴포넌트 구현 * style: 분기에 따른 컴포넌트의 높이를 동일하게 수정 * feat: 수정, 삭제 handler 함수 작성 * refactor: 가독성을 위해 중첩된 삼항연산자 분리 * feat: 삭제 버튼 클릭 시, 삭제 확인 모달 구현 * feat: EditDeleteButtons에 aria-label 추가 * test: EditDeleteButtons 스토리북 코드 작성 * feat: TableSetup 테스트에 수정, 삭제 기능 테스트 추가 * [FEAT] API 요청 관련 기능 구현 (#45) * feat: Added API mocking handler * feat: Implemented API request logics - 추가로, BE API 명세서의 반환 예시에 맞추어 일부 변수 이름을 수정 * refactor: Applied some minor changes - URL 생성 함수가 슬래시(/)를 여러 개 포함하는 문제 수정 - 모든 API 함수를 apis.ts에 통합 (추후 메소드 많아지면 분리) * feat: Let msw handler catch arguments 그 외 변경사항으로, API 함수들에서 경로 매개변수(path parameters)가 생략되어 있었던 문제를 해결 * refactor: 주석 추가 * fix: DebateTable 인터페이스 변경에 따른 일부 오류 수정 * feat: Added string identifier for 'useQuery' function --------- * [FEAT] 타임박스의 수정을 드래그앤드롭으로 변경하는 기능 구현 (#47) * feat: 이벤트 발생 비용 감소를 위한 useThrottle 작성 * faet: 타임박스 드래그앤 드롭을 위한 useDragAndDrop 구현 * feat: 타임박스에 드래그앤드롭 영역 지정 * feat: TableSetup에 드래그앤 드롭 선언 * refactor: 불필요한 주석 삭제 * fix: 병합과정에서 발생한 오류 수정 * [CHORE] storybook에 전역적인 decorators 설정 추가 (#50) * chore: 라우터, GlobalPortal설정을 전역 설정에 decorators로 추가 * chore: storybook에 msw 설정 추가 * [FIX] Mock Handler 파일에서 타입 에러 해결 (#54) * feat: Table 타입인 TableInfo 정의 * refactor: result 객체에 속핸 info의 타입을 명시하기 위해 request에 TableInfo 타입 명시 * chore: 이미 정의되있던 PostDebateTableResponseType 타입 사용 * [CHORE] VS Code 작업 영역에 대한 설정 파일 추가 #62 * [FEAT] 타이머 화면 구현 (#58) * feat: Implemented TimerPage * feat: Applied sound effect And applied minor design changed * refactor: Let TimerComponent change TimerPage's background * fix: NEUTRAL 항목에 불필요한 아이콘 뜨는 오류 수정 * feat: Added keyboard event listener on Timer * fix: 토론 순서 조작 시 발생하는 인덱스 초과 오버플로우 해결 * feat: 피드백에 따른 디자인 변경 사항 반영 * feat: Added loading and error screen on TimerPage * feat: Applied feedbacks from PR * fix: 타이머가 현재 debateInfo의 index를 불러오지 못하는 오류 수정 * refactor: 콘솔 로깅 비활성화 * fix: Storybook 출력되지 않는 문제 수정 - use-sound 패키지 제거하고 HTML 태그로 소리 출력 - 별도 컴포넌트를 거치지 않고 직접 gif 파일을 불러와 출력 * refactor: Removed unnecessary codes and comments * refactor: Hoisted all data and functions to the root page * fix: Cleared focus on button when space bar pressed * [FEAT] `ErrorBoundary` 도입 (#65) * feat: ErrorBoundary 도입 * feat: Wrapped router with ErrorBoundaryWrapper * feat: Enabled 'throwOnError' option on QueryClient * feat: Added refresh button on ErrorPage * refactor: Applied feedbacks from PR review - Declared string constants for ErrorBoundary - Set icon size on 'size' parameter instead of TailwindCSS 'className' * [FEAT] API 연결과 테이블 생성과 수정을 위해 funnel 패턴을 이용하여 멀티 스텝 폼 구현 (#57) * fix: 응답 타입을 문서에 맞게 수정 * feat: Agenda 타입 추가 * feat: 테이블을 추가하는 api 훅 추가 * feat: 테이블을 삭제하는 api 훅 추가 * feat: 사용자를 추가하는 api 훅 추가 * feat: 의회식 토론을 수정하는 api 훅 추가 * feat: 토론 리스트를 가져오는 api 훅 추가 * feat: 의호식 토론 정보를 가져오는 api 훅 추가 * style: 컴포넌트간의 간격 추가 * feat: multi-step form 구현을 위한 useFunnel 작성 * feat: multi-step form동안에 새로고침시에도 상태 유지를 위한 useBrowserStorage 구현 * feat: DropdownForDebateType의 로직 변경 * feat: 멀티 스텝을 이용한 방식으로 수정으로 인한 생성 모달, TableSetupPage를 변경 * feat: 테이블 생성과 수정을 위한 멀티 스텝 폼, TableComposition 구현 * feat: 테이블 form 정보 커스텀 훅 구현 * feat: 로그인 페이지에 상태와 api훅 추가 * fix: 타임박스 ui 버그 수정 * feat: 멀티 스텝 폼을 위해 TableSetupPage의 commponents 파일 이동 * feat: 테이블 수정을 모달에서 멀티스텝 폼 변경으로 인한 수정 * refactor: 더미 데이터 제거 * feat: composition 라우터 추가 * fix: 응답값에 맞게 msw 수정 * feat: 테이블 조회에 api 훅 추가 * refactor: 모달에서 멀티스텝폼 변경으로 인한 컴포넌트 명 변경 * fix: agenda와 type의 혼동으로 type 문제 수정 * fix: TableComposition 구현으로 인한 불필요한 파일 삭제 * fix: Type 타입을 영어로 수정 * fix: import 경로 수정 * feat: 테스트 mock을 위한 vitest 설정 * test: TableComposition 구현으로 인한 수정사항 반영 * feat: 버튼에 aria-label 추가 * chore: storybook msw 사용가능하게 설정 추가 * fix: stace 오타 변경 * test: storybook 경로 변경 * test: TableCompositon 스토리북 코드 작성 * fix: TableSetup삭제로 인한 라우터 변경 * chore: cleanup 함수 추가 * feat: 인터페이스 명 수정 * refactor: 한글에서 영어로 상수 변경 * refactor: NEUTRAL Stance 타입 변경 * refactor: typeMapping을 constants로 분리 * refactor: DebatePanel의 DebateTypeToString 수정 * refactor: type 값을 영어 상수로 변경 * [CHORE] 배포 파이프라인 자동화 구축 (#60) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * fix: 병합과정에 충돌 오류 수정 --------- * hotfix: 에러바운더리 코드가 삭제된 것에 대한 반영 (#69) * [REFACTOR] 타이머 기능 개선 외 (#66) * refactor: Applied several changes - Changed interval to 1000 ms (1 sec) - Added function that changes background to remove duplication of same codes - Removed isRunning not necessary * feat: Made TimerPage be able to catch parameters * fix: Recovered deleted ErrorBoundary related files * fix: Set icon size on 'size' argument instead of 'className' * refactor: Separated loading component to page * refactor: Applied several changes - Moved TimerLoadingPage to /src/TimerPage from /src/TimerPage/component - Set css file to print CR/LF correctly - Changed 'useQuery' to 'useGetParliamentaryTableData' hook * refactor: Deleted unneccesary codes * [HOTFIX] GitHub Actions 빌드 실패 문제 해결 (#73) - TableCompositionStep 상수 값을 한글(타임박스입력)에서 영어(TimeBox)로 바꾸며 발생한 문제 수정 - Type 상수 값을 한글(의회식 토론)에서 영어(PARLIAMENTARY)로 바꾸며 발생한 문제 수정 * [FEAT] AWS S3 및 FrontCloud dev, prod 각각 분리 배포 및 github action 구축 (#76) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * feat: dev 배포를 위한 deploy 코드 작성 * feat: prod 배포를 위한 deploy 코드 작성 * chore: merge 후 생성된 불 필요한 코드 삭제 * chore: dev 배포 명료성을 위해 access key 및 secret key 네이밍 변경 * chore: Dev 배포 관련 yml파일에서 bucket 네이밍 변경 * [FEAT] 닉네임 기반 로그인 구현 (#71) * feat: 로그인 시, memberId를 반환하도록 변경 * feat: memberId를 session 스토리지에 저장하도록 util 함수 작성 * fix: currentStep을 영문으로 변경 * feat: 정적으로 선언되 memberId를 스토리지에서 가져오도록 변경 * refactor: route.tsx 위치를 routes 폴더로 변경 * feat: ProtectedRoute 구현 * feat: ProtectedRoute 적용 * refactor: routes위치 변경에 따른 import 수정 * feat: 토론하기 클릭 시, TimerPage 연결 * refactor: 라우터 변경에 따른 수정사항 반영 --------- * [FEAT] 추가 작전 시간 타이머 구현 외 (#77) * feat: Changed API base url to deployed server * feat: Implemented AdditionalTimerComponent * fix: Recovered horizontal padding of useModal wrapper * feat: Deleted top margin of AdditionalTimerSummaryItem * fix: Fixed linting errors * fix: Removed hard-coded URL on source codes * fix: Make app get server URL from .env file * chore: Deleted .env files * chore: Updated .gitignore file to ignore .env files * [CHORE] 배포 최적화 및 배포 환경 구분 (#82) * chore: Separated deploy environments and variables * chore: Applined vite-plugin-compressions2 to compress builds * chore: Changed job name * fix: Added quotes on target path of Cloudfront cache invalidation * chore: Changed web page title * chore: Removed compression-related packages and codes * [HOTFIX] 배포된 앱이 서버와 통신하지 못하는 문제 수정 (#84) * [FIX] PostUserResponseType타입 수정, TableOverview에서 tableId를 url에서 정상적으로 가져오도록 수정 (#86) * fix: PostUserResponseType 타입 변경 * fix: 정적 navigate 제거 * fix: 불필요한 console.log제거 * fix: tableId를 정상적으로 불러오도록 수정 --------- Co-authored-by: Shawn Kang <77564014+i-meant-to-be@users.noreply.github.com> Co-authored-by: EunWoo <eunwoo1341@gmail.com>
* feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경
* Update issue templates * docs: 파일명 수정 * docs: PR 템플릿 생성 (#2) * docs: 자동 issue 설정 할당 * docs: 불필요한 주석 제거 * docs: 이슈 프로젝트 권한 추가 * docs: 자동할당 로직 변경 * feat: 권한 문제로 자동 Project할당 제거 * docs: PR 자동할당 yml 작성 * docs: 불필요한 Project 정보 제거 * docs: Discord comment 알림 yml 작성 * chore: 프로젝트 초기 세팅 * chore: prettier 설정 추가 * feat: 3개의 영역으로 구분된 header(StickyTriSectionHeader) 구현 * feat: 하단에 고정되어 있는 footer wrapper 구현 * feat: main 레이아웃 구현 * feat: 중첩 컴포넌트로 기본 레이아웃 구현 * design: layout의 ContentContanier 가운데 정렬 추가 * design: layout의 ContentContanier padding 추가 * feat: PropsAndConsTitle 구현 * feat: TimerCreationButton 구현 * feat: 테이블 타입 작성 * feat: 초를 분, 초로 포맷팅하는 함수 구현 * feat: DebatePanel 구현 * feat: 테이블 구성 페이지 초기 UI rngus * feat: Pretendard 웹폰트 추가 * chore: storybook 설정 추가 * test: DebatePanel 스토리 북 작성 * test: PropsAndConsTitle 스토리북 테스트 작성 * test: TimerCreationButton 스토리북 테스트 작성 * fix: 파일명에 불필요한 공백 제거 * [FEAT] 페이지 라우팅 적용 (#22) * chore: install react-router-dom * feat: App.tsx와 main.tsx 에서 라우팅 설정 * refactor: createBrowerRouter 방식 적용 - router.tsx 파일 생성하여 라우터 적용 - main.tsx 에서 <RouterProvider router={router} /> 적용 * chore: 불필요한 App.tsx 컴포넌트 삭제 * chore: eol prettier 적용 * [FEAT] 타이머 박스 생성 모달 구현 (#17) * feat: 포털 렌더링 관리를 위한 GlobalPortal 컴포넌트 추가 * feat: 모달 생성을 위한 modal 커스텀 훅 구현 * feat: GlobalPortal 적용 * feat: 제출 이벤트, 버튼 추가 * feat: uesModal 구조 변경 * feat: Stance, DebateType에 export 추가 * test: useModal 테스트 코드 작성 * feat: 타이머 박스 생성 모달 구현 * feat: 타임 테이블 구성 페이지 피그마 UI에 맞게 구성 * refactor: 불필요한 테스트 파일 삭제 * test: 타임 테이블 구성 페이지 스토리북 작성 * test: 타임 테이블 구성 페이지 테스트 코드 작성 * refactor: params변경에 따른 수정 * test: GlbalPortal 추가 * chore: chromatic 추가 * fix: 파일명에 불필요한 공백 제거 * chore: 크로매틱 배포 토큰 변경 * [FEAT] 로그인 페이지 구현 (#24) * feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경 * chore: lint와 test를 넣은 CI yml 파일 작성 (#27) * [FEAT] 테이블 목록화면 구현 (#26) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * refactor: Table 타입 분리 및 Type네이밍 변경 * [TEST] 로그인 페이지 Storybook 테스트코드 구현 (#31) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * feat: LoginPage Storybook 구현 * test: LinkButton 스토리북 구현 * [FIX] 타임 테이블 구성 페이지 피드백 사항 반영 (#29) * fix: 텍스트를 더 자세하게 수정 * feat: 최상단 컴포넌트에 GlobalPortal추가 * fix: 하단 버튼에 main의 content가 가려지던 문제 수정 * refactor: formatSecondsToMinutes 반환 값 변경 * feat: 선택 진영에 따라 모달 제목 텍스트 색상 변경 * feat: input을 select로 변경 * feat: stace에 따른 색상 변경 함수 구현 * feat: debateType가 중립일 경우 stance을 값을 빈문자열로 표시 * feat: input Numer의 leading zero삭제 * feat: 초기값을 이전 설정한 값으로 설정되게 변경 * feat: stace가 중립일 speakerNumber 수정 불가능하게 변경 * feat: 이전 데이터가 중립일 경우 debateType이 이전 데이터를 반영하지 않도록 변경 * [TEST] 테이블 목록 컴포넌트 Storybook 테스트코드 구현 (#35) * test: Table 컴포넌트 Storybook 구현 * test: TableListPage 페이지 Storybook 구현 * test: DropdownForDebateType 컴포넌트 Storybook 구현 * fix: test 코드 통과를 위해 코드 h2 tag 수정 * [FEAT] 테이블 조회 화면 구현 (#34) * refactor: PropsAndConsTitle의 재사용에 따른 폴더 위치 변경 * feat: 테이블 선택 페이지 기본 레이아웃 구현 * fix: footerWrapper을 flex정렬 방향 변경 * refactor: FixedFooterWrapper position 속정 변경에 따른 컴포넌트 명 수정 * feat: TableOverview 라우터 추가 * test: TableOverview 스토리북 작성 * test: PropsAndConsTitle의 위치 변경 * feat: 불필요한 주석 제거 * feat: 버튼 text 수정 * test: MemoryRouter추가 * fix: 사용되지 않은 getStanceColor 수정 * [TEST] 로그인 및 테이블 조회 컴포넌트 테스트코드 구현 (#37) * [CHORE] API 처리를 위해 패키지 추가 (#39) * chore: Added API-related packages to the project * chore: Added and modified codes for API - 가상 API 사용을 위한 msw 관련 파일 추가 - TanStack Query 및 msw 대응하여 main.tsx 수정 * chore: Let msw only enabled on 'dev-mock' mode * chore: Added one blank line at end of package.json * chore: Added EOL at end of environment variable files * [FEAT] 테이블 수정 및 삭제 구현 (#44) * chore: 수정 및 삭제 아이콘을 위해 react-icons 추가 * feat: Table 컴포넌트에 Icons 추가 * feat: implement handleDelete method * feat: implement EditModalButton to edit Tables * refactor: stopPropagation method with MouseEvent 추가 - 버튼 클릭 이벤트가 상위로 전파되는 것을 막기 위해서 추가함 * feat: Edit 버튼 눌렀을 때, CreateTableModal 나오게 구현 * chore: unused closeModal function 삭제 * feat: Table 삭제를 위해 DeleteModalButton 구현 * feat: EditTableModal 구현 * feat: EditTableButton 구현 - 이후 수정 RestAPI 로직 추가 필요 * refactor: Edit 관련 컴포넌트에 name 매개변수 추가 * refactor: DebateTable 타입에 extends하여 delete 타입 추가 * refactor: 토론 유형 수정 불가 * refactor: 토론유형 hover: curser-not-allowed 추가 * refactor: handleDelete 함수형 업데이트로 수정 * refactor: EditTableButton 컴포넌트에 closeModal 매개변수 추가 * fix: TableListPage 테스트코드 수정 * [FEAT] 타임박스에 수정 및 삭제 UI 추가 (#42) * chore: 수정, 삭제 아이콘 이용을 위한 react-icons 추가 * style: 컴포넌트 간의 간경을 더 좁게 수정 * feat: 수정, 삭제 버튼을 합친 EditDeleteButtons 컴포넌트 구현 * style: 분기에 따른 컴포넌트의 높이를 동일하게 수정 * feat: 수정, 삭제 handler 함수 작성 * refactor: 가독성을 위해 중첩된 삼항연산자 분리 * feat: 삭제 버튼 클릭 시, 삭제 확인 모달 구현 * feat: EditDeleteButtons에 aria-label 추가 * test: EditDeleteButtons 스토리북 코드 작성 * feat: TableSetup 테스트에 수정, 삭제 기능 테스트 추가 * [FEAT] API 요청 관련 기능 구현 (#45) * feat: Added API mocking handler * feat: Implemented API request logics - 추가로, BE API 명세서의 반환 예시에 맞추어 일부 변수 이름을 수정 * refactor: Applied some minor changes - URL 생성 함수가 슬래시(/)를 여러 개 포함하는 문제 수정 - 모든 API 함수를 apis.ts에 통합 (추후 메소드 많아지면 분리) * feat: Let msw handler catch arguments 그 외 변경사항으로, API 함수들에서 경로 매개변수(path parameters)가 생략되어 있었던 문제를 해결 * refactor: 주석 추가 * fix: DebateTable 인터페이스 변경에 따른 일부 오류 수정 * feat: Added string identifier for 'useQuery' function --------- * [FEAT] 타임박스의 수정을 드래그앤드롭으로 변경하는 기능 구현 (#47) * feat: 이벤트 발생 비용 감소를 위한 useThrottle 작성 * faet: 타임박스 드래그앤 드롭을 위한 useDragAndDrop 구현 * feat: 타임박스에 드래그앤드롭 영역 지정 * feat: TableSetup에 드래그앤 드롭 선언 * refactor: 불필요한 주석 삭제 * fix: 병합과정에서 발생한 오류 수정 * [CHORE] storybook에 전역적인 decorators 설정 추가 (#50) * chore: 라우터, GlobalPortal설정을 전역 설정에 decorators로 추가 * chore: storybook에 msw 설정 추가 * [FIX] Mock Handler 파일에서 타입 에러 해결 (#54) * feat: Table 타입인 TableInfo 정의 * refactor: result 객체에 속핸 info의 타입을 명시하기 위해 request에 TableInfo 타입 명시 * chore: 이미 정의되있던 PostDebateTableResponseType 타입 사용 * [CHORE] VS Code 작업 영역에 대한 설정 파일 추가 #62 * [FEAT] 타이머 화면 구현 (#58) * feat: Implemented TimerPage * feat: Applied sound effect And applied minor design changed * refactor: Let TimerComponent change TimerPage's background * fix: NEUTRAL 항목에 불필요한 아이콘 뜨는 오류 수정 * feat: Added keyboard event listener on Timer * fix: 토론 순서 조작 시 발생하는 인덱스 초과 오버플로우 해결 * feat: 피드백에 따른 디자인 변경 사항 반영 * feat: Added loading and error screen on TimerPage * feat: Applied feedbacks from PR * fix: 타이머가 현재 debateInfo의 index를 불러오지 못하는 오류 수정 * refactor: 콘솔 로깅 비활성화 * fix: Storybook 출력되지 않는 문제 수정 - use-sound 패키지 제거하고 HTML 태그로 소리 출력 - 별도 컴포넌트를 거치지 않고 직접 gif 파일을 불러와 출력 * refactor: Removed unnecessary codes and comments * refactor: Hoisted all data and functions to the root page * fix: Cleared focus on button when space bar pressed * [FEAT] `ErrorBoundary` 도입 (#65) * feat: ErrorBoundary 도입 * feat: Wrapped router with ErrorBoundaryWrapper * feat: Enabled 'throwOnError' option on QueryClient * feat: Added refresh button on ErrorPage * refactor: Applied feedbacks from PR review - Declared string constants for ErrorBoundary - Set icon size on 'size' parameter instead of TailwindCSS 'className' * [FEAT] API 연결과 테이블 생성과 수정을 위해 funnel 패턴을 이용하여 멀티 스텝 폼 구현 (#57) * fix: 응답 타입을 문서에 맞게 수정 * feat: Agenda 타입 추가 * feat: 테이블을 추가하는 api 훅 추가 * feat: 테이블을 삭제하는 api 훅 추가 * feat: 사용자를 추가하는 api 훅 추가 * feat: 의회식 토론을 수정하는 api 훅 추가 * feat: 토론 리스트를 가져오는 api 훅 추가 * feat: 의호식 토론 정보를 가져오는 api 훅 추가 * style: 컴포넌트간의 간격 추가 * feat: multi-step form 구현을 위한 useFunnel 작성 * feat: multi-step form동안에 새로고침시에도 상태 유지를 위한 useBrowserStorage 구현 * feat: DropdownForDebateType의 로직 변경 * feat: 멀티 스텝을 이용한 방식으로 수정으로 인한 생성 모달, TableSetupPage를 변경 * feat: 테이블 생성과 수정을 위한 멀티 스텝 폼, TableComposition 구현 * feat: 테이블 form 정보 커스텀 훅 구현 * feat: 로그인 페이지에 상태와 api훅 추가 * fix: 타임박스 ui 버그 수정 * feat: 멀티 스텝 폼을 위해 TableSetupPage의 commponents 파일 이동 * feat: 테이블 수정을 모달에서 멀티스텝 폼 변경으로 인한 수정 * refactor: 더미 데이터 제거 * feat: composition 라우터 추가 * fix: 응답값에 맞게 msw 수정 * feat: 테이블 조회에 api 훅 추가 * refactor: 모달에서 멀티스텝폼 변경으로 인한 컴포넌트 명 변경 * fix: agenda와 type의 혼동으로 type 문제 수정 * fix: TableComposition 구현으로 인한 불필요한 파일 삭제 * fix: Type 타입을 영어로 수정 * fix: import 경로 수정 * feat: 테스트 mock을 위한 vitest 설정 * test: TableComposition 구현으로 인한 수정사항 반영 * feat: 버튼에 aria-label 추가 * chore: storybook msw 사용가능하게 설정 추가 * fix: stace 오타 변경 * test: storybook 경로 변경 * test: TableCompositon 스토리북 코드 작성 * fix: TableSetup삭제로 인한 라우터 변경 * chore: cleanup 함수 추가 * feat: 인터페이스 명 수정 * refactor: 한글에서 영어로 상수 변경 * refactor: NEUTRAL Stance 타입 변경 * refactor: typeMapping을 constants로 분리 * refactor: DebatePanel의 DebateTypeToString 수정 * refactor: type 값을 영어 상수로 변경 * [CHORE] 배포 파이프라인 자동화 구축 (#60) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * fix: 병합과정에 충돌 오류 수정 --------- * hotfix: 에러바운더리 코드가 삭제된 것에 대한 반영 (#69) * [REFACTOR] 타이머 기능 개선 외 (#66) * refactor: Applied several changes - Changed interval to 1000 ms (1 sec) - Added function that changes background to remove duplication of same codes - Removed isRunning not necessary * feat: Made TimerPage be able to catch parameters * fix: Recovered deleted ErrorBoundary related files * fix: Set icon size on 'size' argument instead of 'className' * refactor: Separated loading component to page * refactor: Applied several changes - Moved TimerLoadingPage to /src/TimerPage from /src/TimerPage/component - Set css file to print CR/LF correctly - Changed 'useQuery' to 'useGetParliamentaryTableData' hook * refactor: Deleted unneccesary codes * [HOTFIX] GitHub Actions 빌드 실패 문제 해결 (#73) - TableCompositionStep 상수 값을 한글(타임박스입력)에서 영어(TimeBox)로 바꾸며 발생한 문제 수정 - Type 상수 값을 한글(의회식 토론)에서 영어(PARLIAMENTARY)로 바꾸며 발생한 문제 수정 * [FEAT] AWS S3 및 FrontCloud dev, prod 각각 분리 배포 및 github action 구축 (#76) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * feat: dev 배포를 위한 deploy 코드 작성 * feat: prod 배포를 위한 deploy 코드 작성 * chore: merge 후 생성된 불 필요한 코드 삭제 * chore: dev 배포 명료성을 위해 access key 및 secret key 네이밍 변경 * chore: Dev 배포 관련 yml파일에서 bucket 네이밍 변경 * [FEAT] 닉네임 기반 로그인 구현 (#71) * feat: 로그인 시, memberId를 반환하도록 변경 * feat: memberId를 session 스토리지에 저장하도록 util 함수 작성 * fix: currentStep을 영문으로 변경 * feat: 정적으로 선언되 memberId를 스토리지에서 가져오도록 변경 * refactor: route.tsx 위치를 routes 폴더로 변경 * feat: ProtectedRoute 구현 * feat: ProtectedRoute 적용 * refactor: routes위치 변경에 따른 import 수정 * feat: 토론하기 클릭 시, TimerPage 연결 * refactor: 라우터 변경에 따른 수정사항 반영 --------- * [FEAT] 추가 작전 시간 타이머 구현 외 (#77) * feat: Changed API base url to deployed server * feat: Implemented AdditionalTimerComponent * fix: Recovered horizontal padding of useModal wrapper * feat: Deleted top margin of AdditionalTimerSummaryItem * fix: Fixed linting errors * fix: Removed hard-coded URL on source codes * fix: Make app get server URL from .env file * chore: Deleted .env files * chore: Updated .gitignore file to ignore .env files * [CHORE] 배포 최적화 및 배포 환경 구분 (#82) * chore: Separated deploy environments and variables * chore: Applined vite-plugin-compressions2 to compress builds * chore: Changed job name * fix: Added quotes on target path of Cloudfront cache invalidation * chore: Changed web page title * chore: Removed compression-related packages and codes * [HOTFIX] 배포된 앱이 서버와 통신하지 못하는 문제 수정 (#84) * [FIX] PostUserResponseType타입 수정, TableOverview에서 tableId를 url에서 정상적으로 가져오도록 수정 (#86) * fix: PostUserResponseType 타입 변경 * fix: 정적 navigate 제거 * fix: 불필요한 console.log제거 * fix: tableId를 정상적으로 불러오도록 수정 --------- Co-authored-by: Shawn Kang <77564014+i-meant-to-be@users.noreply.github.com> Co-authored-by: EunWoo <eunwoo1341@gmail.com>
* Update issue templates * docs: 파일명 수정 * docs: PR 템플릿 생성 (#2) * docs: 자동 issue 설정 할당 * docs: 불필요한 주석 제거 * docs: 이슈 프로젝트 권한 추가 * docs: 자동할당 로직 변경 * feat: 권한 문제로 자동 Project할당 제거 * docs: PR 자동할당 yml 작성 * docs: 불필요한 Project 정보 제거 * docs: Discord comment 알림 yml 작성 * chore: 프로젝트 초기 세팅 * chore: prettier 설정 추가 * feat: 3개의 영역으로 구분된 header(StickyTriSectionHeader) 구현 * feat: 하단에 고정되어 있는 footer wrapper 구현 * feat: main 레이아웃 구현 * feat: 중첩 컴포넌트로 기본 레이아웃 구현 * design: layout의 ContentContanier 가운데 정렬 추가 * design: layout의 ContentContanier padding 추가 * feat: PropsAndConsTitle 구현 * feat: TimerCreationButton 구현 * feat: 테이블 타입 작성 * feat: 초를 분, 초로 포맷팅하는 함수 구현 * feat: DebatePanel 구현 * feat: 테이블 구성 페이지 초기 UI rngus * feat: Pretendard 웹폰트 추가 * chore: storybook 설정 추가 * test: DebatePanel 스토리 북 작성 * test: PropsAndConsTitle 스토리북 테스트 작성 * test: TimerCreationButton 스토리북 테스트 작성 * fix: 파일명에 불필요한 공백 제거 * [FEAT] 페이지 라우팅 적용 (#22) * chore: install react-router-dom * feat: App.tsx와 main.tsx 에서 라우팅 설정 * refactor: createBrowerRouter 방식 적용 - router.tsx 파일 생성하여 라우터 적용 - main.tsx 에서 <RouterProvider router={router} /> 적용 * chore: 불필요한 App.tsx 컴포넌트 삭제 * chore: eol prettier 적용 * [FEAT] 타이머 박스 생성 모달 구현 (#17) * feat: 포털 렌더링 관리를 위한 GlobalPortal 컴포넌트 추가 * feat: 모달 생성을 위한 modal 커스텀 훅 구현 * feat: GlobalPortal 적용 * feat: 제출 이벤트, 버튼 추가 * feat: uesModal 구조 변경 * feat: Stance, DebateType에 export 추가 * test: useModal 테스트 코드 작성 * feat: 타이머 박스 생성 모달 구현 * feat: 타임 테이블 구성 페이지 피그마 UI에 맞게 구성 * refactor: 불필요한 테스트 파일 삭제 * test: 타임 테이블 구성 페이지 스토리북 작성 * test: 타임 테이블 구성 페이지 테스트 코드 작성 * refactor: params변경에 따른 수정 * test: GlbalPortal 추가 * chore: chromatic 추가 * fix: 파일명에 불필요한 공백 제거 * chore: 크로매틱 배포 토큰 변경 * [FEAT] 로그인 페이지 구현 (#24) * feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경 * chore: lint와 test를 넣은 CI yml 파일 작성 (#27) * [FEAT] 테이블 목록화면 구현 (#26) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * refactor: Table 타입 분리 및 Type네이밍 변경 * [TEST] 로그인 페이지 Storybook 테스트코드 구현 (#31) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * feat: LoginPage Storybook 구현 * test: LinkButton 스토리북 구현 * [FIX] 타임 테이블 구성 페이지 피드백 사항 반영 (#29) * fix: 텍스트를 더 자세하게 수정 * feat: 최상단 컴포넌트에 GlobalPortal추가 * fix: 하단 버튼에 main의 content가 가려지던 문제 수정 * refactor: formatSecondsToMinutes 반환 값 변경 * feat: 선택 진영에 따라 모달 제목 텍스트 색상 변경 * feat: input을 select로 변경 * feat: stace에 따른 색상 변경 함수 구현 * feat: debateType가 중립일 경우 stance을 값을 빈문자열로 표시 * feat: input Numer의 leading zero삭제 * feat: 초기값을 이전 설정한 값으로 설정되게 변경 * feat: stace가 중립일 speakerNumber 수정 불가능하게 변경 * feat: 이전 데이터가 중립일 경우 debateType이 이전 데이터를 반영하지 않도록 변경 * [TEST] 테이블 목록 컴포넌트 Storybook 테스트코드 구현 (#35) * test: Table 컴포넌트 Storybook 구현 * test: TableListPage 페이지 Storybook 구현 * test: DropdownForDebateType 컴포넌트 Storybook 구현 * fix: test 코드 통과를 위해 코드 h2 tag 수정 * [FEAT] 테이블 조회 화면 구현 (#34) * refactor: PropsAndConsTitle의 재사용에 따른 폴더 위치 변경 * feat: 테이블 선택 페이지 기본 레이아웃 구현 * fix: footerWrapper을 flex정렬 방향 변경 * refactor: FixedFooterWrapper position 속정 변경에 따른 컴포넌트 명 수정 * feat: TableOverview 라우터 추가 * test: TableOverview 스토리북 작성 * test: PropsAndConsTitle의 위치 변경 * feat: 불필요한 주석 제거 * feat: 버튼 text 수정 * test: MemoryRouter추가 * fix: 사용되지 않은 getStanceColor 수정 * [TEST] 로그인 및 테이블 조회 컴포넌트 테스트코드 구현 (#37) * [CHORE] API 처리를 위해 패키지 추가 (#39) * chore: Added API-related packages to the project * chore: Added and modified codes for API - 가상 API 사용을 위한 msw 관련 파일 추가 - TanStack Query 및 msw 대응하여 main.tsx 수정 * chore: Let msw only enabled on 'dev-mock' mode * chore: Added one blank line at end of package.json * chore: Added EOL at end of environment variable files * [FEAT] 테이블 수정 및 삭제 구현 (#44) * chore: 수정 및 삭제 아이콘을 위해 react-icons 추가 * feat: Table 컴포넌트에 Icons 추가 * feat: implement handleDelete method * feat: implement EditModalButton to edit Tables * refactor: stopPropagation method with MouseEvent 추가 - 버튼 클릭 이벤트가 상위로 전파되는 것을 막기 위해서 추가함 * feat: Edit 버튼 눌렀을 때, CreateTableModal 나오게 구현 * chore: unused closeModal function 삭제 * feat: Table 삭제를 위해 DeleteModalButton 구현 * feat: EditTableModal 구현 * feat: EditTableButton 구현 - 이후 수정 RestAPI 로직 추가 필요 * refactor: Edit 관련 컴포넌트에 name 매개변수 추가 * refactor: DebateTable 타입에 extends하여 delete 타입 추가 * refactor: 토론 유형 수정 불가 * refactor: 토론유형 hover: curser-not-allowed 추가 * refactor: handleDelete 함수형 업데이트로 수정 * refactor: EditTableButton 컴포넌트에 closeModal 매개변수 추가 * fix: TableListPage 테스트코드 수정 * [FEAT] 타임박스에 수정 및 삭제 UI 추가 (#42) * chore: 수정, 삭제 아이콘 이용을 위한 react-icons 추가 * style: 컴포넌트 간의 간경을 더 좁게 수정 * feat: 수정, 삭제 버튼을 합친 EditDeleteButtons 컴포넌트 구현 * style: 분기에 따른 컴포넌트의 높이를 동일하게 수정 * feat: 수정, 삭제 handler 함수 작성 * refactor: 가독성을 위해 중첩된 삼항연산자 분리 * feat: 삭제 버튼 클릭 시, 삭제 확인 모달 구현 * feat: EditDeleteButtons에 aria-label 추가 * test: EditDeleteButtons 스토리북 코드 작성 * feat: TableSetup 테스트에 수정, 삭제 기능 테스트 추가 * [FEAT] API 요청 관련 기능 구현 (#45) * feat: Added API mocking handler * feat: Implemented API request logics - 추가로, BE API 명세서의 반환 예시에 맞추어 일부 변수 이름을 수정 * refactor: Applied some minor changes - URL 생성 함수가 슬래시(/)를 여러 개 포함하는 문제 수정 - 모든 API 함수를 apis.ts에 통합 (추후 메소드 많아지면 분리) * feat: Let msw handler catch arguments 그 외 변경사항으로, API 함수들에서 경로 매개변수(path parameters)가 생략되어 있었던 문제를 해결 * refactor: 주석 추가 * fix: DebateTable 인터페이스 변경에 따른 일부 오류 수정 * feat: Added string identifier for 'useQuery' function --------- Co-authored-by: jaeml06 <jaeml0630@gmail.com> * [FEAT] 타임박스의 수정을 드래그앤드롭으로 변경하는 기능 구현 (#47) * feat: 이벤트 발생 비용 감소를 위한 useThrottle 작성 * faet: 타임박스 드래그앤 드롭을 위한 useDragAndDrop 구현 * feat: 타임박스에 드래그앤드롭 영역 지정 * feat: TableSetup에 드래그앤 드롭 선언 * refactor: 불필요한 주석 삭제 * fix: 병합과정에서 발생한 오류 수정 * [CHORE] storybook에 전역적인 decorators 설정 추가 (#50) * chore: 라우터, GlobalPortal설정을 전역 설정에 decorators로 추가 * chore: storybook에 msw 설정 추가 * [FIX] Mock Handler 파일에서 타입 에러 해결 (#54) * feat: Table 타입인 TableInfo 정의 * refactor: result 객체에 속핸 info의 타입을 명시하기 위해 request에 TableInfo 타입 명시 * chore: 이미 정의되있던 PostDebateTableResponseType 타입 사용 * [CHORE] VS Code 작업 영역에 대한 설정 파일 추가 #62 * [FEAT] 타이머 화면 구현 (#58) * feat: Implemented TimerPage * feat: Applied sound effect And applied minor design changed * refactor: Let TimerComponent change TimerPage's background * fix: NEUTRAL 항목에 불필요한 아이콘 뜨는 오류 수정 * feat: Added keyboard event listener on Timer * fix: 토론 순서 조작 시 발생하는 인덱스 초과 오버플로우 해결 * feat: 피드백에 따른 디자인 변경 사항 반영 * feat: Added loading and error screen on TimerPage * feat: Applied feedbacks from PR * fix: 타이머가 현재 debateInfo의 index를 불러오지 못하는 오류 수정 * refactor: 콘솔 로깅 비활성화 * fix: Storybook 출력되지 않는 문제 수정 - use-sound 패키지 제거하고 HTML 태그로 소리 출력 - 별도 컴포넌트를 거치지 않고 직접 gif 파일을 불러와 출력 * refactor: Removed unnecessary codes and comments * refactor: Hoisted all data and functions to the root page * fix: Cleared focus on button when space bar pressed * [FEAT] `ErrorBoundary` 도입 (#65) * feat: ErrorBoundary 도입 * feat: Wrapped router with ErrorBoundaryWrapper * feat: Enabled 'throwOnError' option on QueryClient * feat: Added refresh button on ErrorPage * refactor: Applied feedbacks from PR review - Declared string constants for ErrorBoundary - Set icon size on 'size' parameter instead of TailwindCSS 'className' * [FEAT] API 연결과 테이블 생성과 수정을 위해 funnel 패턴을 이용하여 멀티 스텝 폼 구현 (#57) * fix: 응답 타입을 문서에 맞게 수정 * feat: Agenda 타입 추가 * feat: 테이블을 추가하는 api 훅 추가 * feat: 테이블을 삭제하는 api 훅 추가 * feat: 사용자를 추가하는 api 훅 추가 * feat: 의회식 토론을 수정하는 api 훅 추가 * feat: 토론 리스트를 가져오는 api 훅 추가 * feat: 의호식 토론 정보를 가져오는 api 훅 추가 * style: 컴포넌트간의 간격 추가 * feat: multi-step form 구현을 위한 useFunnel 작성 * feat: multi-step form동안에 새로고침시에도 상태 유지를 위한 useBrowserStorage 구현 * feat: DropdownForDebateType의 로직 변경 * feat: 멀티 스텝을 이용한 방식으로 수정으로 인한 생성 모달, TableSetupPage를 변경 * feat: 테이블 생성과 수정을 위한 멀티 스텝 폼, TableComposition 구현 * feat: 테이블 form 정보 커스텀 훅 구현 * feat: 로그인 페이지에 상태와 api훅 추가 * fix: 타임박스 ui 버그 수정 * feat: 멀티 스텝 폼을 위해 TableSetupPage의 commponents 파일 이동 * feat: 테이블 수정을 모달에서 멀티스텝 폼 변경으로 인한 수정 * refactor: 더미 데이터 제거 * feat: composition 라우터 추가 * fix: 응답값에 맞게 msw 수정 * feat: 테이블 조회에 api 훅 추가 * refactor: 모달에서 멀티스텝폼 변경으로 인한 컴포넌트 명 변경 * fix: agenda와 type의 혼동으로 type 문제 수정 * fix: TableComposition 구현으로 인한 불필요한 파일 삭제 * fix: Type 타입을 영어로 수정 * fix: import 경로 수정 * feat: 테스트 mock을 위한 vitest 설정 * test: TableComposition 구현으로 인한 수정사항 반영 * feat: 버튼에 aria-label 추가 * chore: storybook msw 사용가능하게 설정 추가 * fix: stace 오타 변경 * test: storybook 경로 변경 * test: TableCompositon 스토리북 코드 작성 * fix: TableSetup삭제로 인한 라우터 변경 * chore: cleanup 함수 추가 * feat: 인터페이스 명 수정 * refactor: 한글에서 영어로 상수 변경 * refactor: NEUTRAL Stance 타입 변경 * refactor: typeMapping을 constants로 분리 * refactor: DebatePanel의 DebateTypeToString 수정 * refactor: type 값을 영어 상수로 변경 * [CHORE] 배포 파이프라인 자동화 구축 (#60) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * fix: 병합과정에 충돌 오류 수정 --------- Co-authored-by: jaeml06 <jaeml0630@gmail.com> * hotfix: 에러바운더리 코드가 삭제된 것에 대한 반영 (#69) * [REFACTOR] 타이머 기능 개선 외 (#66) * refactor: Applied several changes - Changed interval to 1000 ms (1 sec) - Added function that changes background to remove duplication of same codes - Removed isRunning not necessary * feat: Made TimerPage be able to catch parameters * fix: Recovered deleted ErrorBoundary related files * fix: Set icon size on 'size' argument instead of 'className' * refactor: Separated loading component to page * refactor: Applied several changes - Moved TimerLoadingPage to /src/TimerPage from /src/TimerPage/component - Set css file to print CR/LF correctly - Changed 'useQuery' to 'useGetParliamentaryTableData' hook * refactor: Deleted unneccesary codes * [HOTFIX] GitHub Actions 빌드 실패 문제 해결 (#73) - TableCompositionStep 상수 값을 한글(타임박스입력)에서 영어(TimeBox)로 바꾸며 발생한 문제 수정 - Type 상수 값을 한글(의회식 토론)에서 영어(PARLIAMENTARY)로 바꾸며 발생한 문제 수정 * [FEAT] AWS S3 및 FrontCloud dev, prod 각각 분리 배포 및 github action 구축 (#76) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * feat: dev 배포를 위한 deploy 코드 작성 * feat: prod 배포를 위한 deploy 코드 작성 * chore: merge 후 생성된 불 필요한 코드 삭제 * chore: dev 배포 명료성을 위해 access key 및 secret key 네이밍 변경 * chore: Dev 배포 관련 yml파일에서 bucket 네이밍 변경 * [FEAT] 닉네임 기반 로그인 구현 (#71) * feat: 로그인 시, memberId를 반환하도록 변경 * feat: memberId를 session 스토리지에 저장하도록 util 함수 작성 * fix: currentStep을 영문으로 변경 * feat: 정적으로 선언되 memberId를 스토리지에서 가져오도록 변경 * refactor: route.tsx 위치를 routes 폴더로 변경 * feat: ProtectedRoute 구현 * feat: ProtectedRoute 적용 * refactor: routes위치 변경에 따른 import 수정 * feat: 토론하기 클릭 시, TimerPage 연결 * refactor: 라우터 변경에 따른 수정사항 반영 --------- Co-authored-by: Shawn Kang <77564014+i-meant-to-be@users.noreply.github.com> * [FEAT] 추가 작전 시간 타이머 구현 외 (#77) * feat: Changed API base url to deployed server * feat: Implemented AdditionalTimerComponent * fix: Recovered horizontal padding of useModal wrapper * feat: Deleted top margin of AdditionalTimerSummaryItem * fix: Fixed linting errors * fix: Removed hard-coded URL on source codes * fix: Make app get server URL from .env file * chore: Deleted .env files * chore: Updated .gitignore file to ignore .env files * [CHORE] 배포 최적화 및 배포 환경 구분 (#82) * chore: Separated deploy environments and variables * chore: Applined vite-plugin-compressions2 to compress builds * chore: Changed job name * fix: Added quotes on target path of Cloudfront cache invalidation * chore: Changed web page title * chore: Removed compression-related packages and codes * [HOTFIX] 배포된 앱이 서버와 통신하지 못하는 문제 수정 (#84) * [FIX] PostUserResponseType타입 수정, TableOverview에서 tableId를 url에서 정상적으로 가져오도록 수정 (#86) * fix: PostUserResponseType 타입 변경 * fix: 정적 navigate 제거 * fix: 불필요한 console.log제거 * fix: tableId를 정상적으로 불러오도록 수정 --------- Co-authored-by: jaeml06 <jaeml0630@gmail.com> Co-authored-by: EunWoo <eunwoo1341@gmail.com>
* Update issue templates * docs: 파일명 수정 * chore: 프로젝트 초기 세팅 * feat: 하단에 고정되어 있는 footer wrapper 구현 * feat: 중첩 컴포넌트로 기본 레이아웃 구현 * feat: PropsAndConsTitle 구현 * feat: TimerCreationButton 구현 * feat: DebatePanel 구현 * feat: 테이블 구성 페이지 초기 UI rngus * chore: storybook 설정 추가 * test: DebatePanel 스토리 북 작성 * test: PropsAndConsTitle 스토리북 테스트 작성 * test: TimerCreationButton 스토리북 테스트 작성 * fix: 파일명에 불필요한 공백 제거 * [FEAT] 페이지 라우팅 적용 (#22) * chore: install react-router-dom * feat: App.tsx와 main.tsx 에서 라우팅 설정 * refactor: createBrowerRouter 방식 적용 - router.tsx 파일 생성하여 라우터 적용 - main.tsx 에서 <RouterProvider router={router} /> 적용 * chore: 불필요한 App.tsx 컴포넌트 삭제 * chore: eol prettier 적용 * [FEAT] 타이머 박스 생성 모달 구현 (#17) * feat: 포털 렌더링 관리를 위한 GlobalPortal 컴포넌트 추가 * feat: 모달 생성을 위한 modal 커스텀 훅 구현 * feat: GlobalPortal 적용 * feat: 제출 이벤트, 버튼 추가 * feat: uesModal 구조 변경 * feat: Stance, DebateType에 export 추가 * test: useModal 테스트 코드 작성 * feat: 타이머 박스 생성 모달 구현 * feat: 타임 테이블 구성 페이지 피그마 UI에 맞게 구성 * refactor: 불필요한 테스트 파일 삭제 * test: 타임 테이블 구성 페이지 스토리북 작성 * test: 타임 테이블 구성 페이지 테스트 코드 작성 * refactor: params변경에 따른 수정 * test: GlbalPortal 추가 * chore: chromatic 추가 * fix: 파일명에 불필요한 공백 제거 * chore: 크로매틱 배포 토큰 변경 * [FEAT] 로그인 페이지 구현 (#24) * feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경 * [FEAT] 테이블 목록화면 구현 (#26) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * refactor: Table 타입 분리 및 Type네이밍 변경 * [FIX] 타임 테이블 구성 페이지 피드백 사항 반영 (#29) * fix: 텍스트를 더 자세하게 수정 * feat: 최상단 컴포넌트에 GlobalPortal추가 * fix: 하단 버튼에 main의 content가 가려지던 문제 수정 * refactor: formatSecondsToMinutes 반환 값 변경 * feat: 선택 진영에 따라 모달 제목 텍스트 색상 변경 * feat: input을 select로 변경 * feat: stace에 따른 색상 변경 함수 구현 * feat: debateType가 중립일 경우 stance을 값을 빈문자열로 표시 * feat: input Numer의 leading zero삭제 * feat: 초기값을 이전 설정한 값으로 설정되게 변경 * feat: stace가 중립일 speakerNumber 수정 불가능하게 변경 * feat: 이전 데이터가 중립일 경우 debateType이 이전 데이터를 반영하지 않도록 변경 * [TEST] 테이블 목록 컴포넌트 Storybook 테스트코드 구현 (#35) * test: Table 컴포넌트 Storybook 구현 * test: TableListPage 페이지 Storybook 구현 * test: DropdownForDebateType 컴포넌트 Storybook 구현 * fix: test 코드 통과를 위해 코드 h2 tag 수정 * [FEAT] 테이블 조회 화면 구현 (#34) * refactor: PropsAndConsTitle의 재사용에 따른 폴더 위치 변경 * feat: 테이블 선택 페이지 기본 레이아웃 구현 * fix: footerWrapper을 flex정렬 방향 변경 * refactor: FixedFooterWrapper position 속정 변경에 따른 컴포넌트 명 수정 * feat: TableOverview 라우터 추가 * test: TableOverview 스토리북 작성 * test: PropsAndConsTitle의 위치 변경 * feat: 불필요한 주석 제거 * feat: 버튼 text 수정 * test: MemoryRouter추가 * fix: 사용되지 않은 getStanceColor 수정 * [CHORE] API 처리를 위해 패키지 추가 (#39) * chore: Added API-related packages to the project * chore: Added and modified codes for API - 가상 API 사용을 위한 msw 관련 파일 추가 - TanStack Query 및 msw 대응하여 main.tsx 수정 * chore: Let msw only enabled on 'dev-mock' mode * chore: Added one blank line at end of package.json * chore: Added EOL at end of environment variable files * [FEAT] 테이블 수정 및 삭제 구현 (#44) * chore: 수정 및 삭제 아이콘을 위해 react-icons 추가 * feat: Table 컴포넌트에 Icons 추가 * feat: implement handleDelete method * feat: implement EditModalButton to edit Tables * refactor: stopPropagation method with MouseEvent 추가 - 버튼 클릭 이벤트가 상위로 전파되는 것을 막기 위해서 추가함 * feat: Edit 버튼 눌렀을 때, CreateTableModal 나오게 구현 * chore: unused closeModal function 삭제 * feat: Table 삭제를 위해 DeleteModalButton 구현 * feat: EditTableModal 구현 * feat: EditTableButton 구현 - 이후 수정 RestAPI 로직 추가 필요 * refactor: Edit 관련 컴포넌트에 name 매개변수 추가 * refactor: DebateTable 타입에 extends하여 delete 타입 추가 * refactor: 토론 유형 수정 불가 * refactor: 토론유형 hover: curser-not-allowed 추가 * refactor: handleDelete 함수형 업데이트로 수정 * refactor: EditTableButton 컴포넌트에 closeModal 매개변수 추가 * fix: TableListPage 테스트코드 수정 * [FEAT] 타임박스에 수정 및 삭제 UI 추가 (#42) * chore: 수정, 삭제 아이콘 이용을 위한 react-icons 추가 * style: 컴포넌트 간의 간경을 더 좁게 수정 * feat: 수정, 삭제 버튼을 합친 EditDeleteButtons 컴포넌트 구현 * style: 분기에 따른 컴포넌트의 높이를 동일하게 수정 * feat: 수정, 삭제 handler 함수 작성 * refactor: 가독성을 위해 중첩된 삼항연산자 분리 * feat: 삭제 버튼 클릭 시, 삭제 확인 모달 구현 * feat: EditDeleteButtons에 aria-label 추가 * test: EditDeleteButtons 스토리북 코드 작성 * feat: TableSetup 테스트에 수정, 삭제 기능 테스트 추가 * [FEAT] API 요청 관련 기능 구현 (#45) * feat: Added API mocking handler * feat: Implemented API request logics - 추가로, BE API 명세서의 반환 예시에 맞추어 일부 변수 이름을 수정 * refactor: Applied some minor changes - URL 생성 함수가 슬래시(/)를 여러 개 포함하는 문제 수정 - 모든 API 함수를 apis.ts에 통합 (추후 메소드 많아지면 분리) * feat: Let msw handler catch arguments 그 외 변경사항으로, API 함수들에서 경로 매개변수(path parameters)가 생략되어 있었던 문제를 해결 * refactor: 주석 추가 * fix: DebateTable 인터페이스 변경에 따른 일부 오류 수정 * feat: Added string identifier for 'useQuery' function --------- Co-authored-by: jaeml06 <jaeml0630@gmail.com> * [FEAT] 타임박스의 수정을 드래그앤드롭으로 변경하는 기능 구현 (#47) * feat: 이벤트 발생 비용 감소를 위한 useThrottle 작성 * faet: 타임박스 드래그앤 드롭을 위한 useDragAndDrop 구현 * feat: 타임박스에 드래그앤드롭 영역 지정 * feat: TableSetup에 드래그앤 드롭 선언 * refactor: 불필요한 주석 삭제 * fix: 병합과정에서 발생한 오류 수정 * [CHORE] storybook에 전역적인 decorators 설정 추가 (#50) * chore: 라우터, GlobalPortal설정을 전역 설정에 decorators로 추가 * chore: storybook에 msw 설정 추가 * [FIX] Mock Handler 파일에서 타입 에러 해결 (#54) * feat: Table 타입인 TableInfo 정의 * refactor: result 객체에 속핸 info의 타입을 명시하기 위해 request에 TableInfo 타입 명시 * chore: 이미 정의되있던 PostDebateTableResponseType 타입 사용 * [FEAT] 타이머 화면 구현 (#58) * feat: Implemented TimerPage * feat: Applied sound effect And applied minor design changed * refactor: Let TimerComponent change TimerPage's background * fix: NEUTRAL 항목에 불필요한 아이콘 뜨는 오류 수정 * feat: Added keyboard event listener on Timer * fix: 토론 순서 조작 시 발생하는 인덱스 초과 오버플로우 해결 * feat: 피드백에 따른 디자인 변경 사항 반영 * feat: Added loading and error screen on TimerPage * feat: Applied feedbacks from PR * fix: 타이머가 현재 debateInfo의 index를 불러오지 못하는 오류 수정 * refactor: 콘솔 로깅 비활성화 * fix: Storybook 출력되지 않는 문제 수정 - use-sound 패키지 제거하고 HTML 태그로 소리 출력 - 별도 컴포넌트를 거치지 않고 직접 gif 파일을 불러와 출력 * refactor: Removed unnecessary codes and comments * refactor: Hoisted all data and functions to the root page * fix: Cleared focus on button when space bar pressed * [FEAT] `ErrorBoundary` 도입 (#65) * feat: ErrorBoundary 도입 * feat: Wrapped router with ErrorBoundaryWrapper * feat: Enabled 'throwOnError' option on QueryClient * feat: Added refresh button on ErrorPage * refactor: Applied feedbacks from PR review - Declared string constants for ErrorBoundary - Set icon size on 'size' parameter instead of TailwindCSS 'className' * [FEAT] API 연결과 테이블 생성과 수정을 위해 funnel 패턴을 이용하여 멀티 스텝 폼 구현 (#57) * fix: 응답 타입을 문서에 맞게 수정 * feat: Agenda 타입 추가 * feat: 테이블을 추가하는 api 훅 추가 * feat: 테이블을 삭제하는 api 훅 추가 * feat: 사용자를 추가하는 api 훅 추가 * feat: 의회식 토론을 수정하는 api 훅 추가 * feat: 토론 리스트를 가져오는 api 훅 추가 * feat: 의호식 토론 정보를 가져오는 api 훅 추가 * style: 컴포넌트간의 간격 추가 * feat: multi-step form 구현을 위한 useFunnel 작성 * feat: multi-step form동안에 새로고침시에도 상태 유지를 위한 useBrowserStorage 구현 * feat: DropdownForDebateType의 로직 변경 * feat: 멀티 스텝을 이용한 방식으로 수정으로 인한 생성 모달, TableSetupPage를 변경 * feat: 테이블 생성과 수정을 위한 멀티 스텝 폼, TableComposition 구현 * feat: 테이블 form 정보 커스텀 훅 구현 * feat: 로그인 페이지에 상태와 api훅 추가 * fix: 타임박스 ui 버그 수정 * feat: 멀티 스텝 폼을 위해 TableSetupPage의 commponents 파일 이동 * feat: 테이블 수정을 모달에서 멀티스텝 폼 변경으로 인한 수정 * refactor: 더미 데이터 제거 * feat: composition 라우터 추가 * fix: 응답값에 맞게 msw 수정 * feat: 테이블 조회에 api 훅 추가 * refactor: 모달에서 멀티스텝폼 변경으로 인한 컴포넌트 명 변경 * fix: agenda와 type의 혼동으로 type 문제 수정 * fix: TableComposition 구현으로 인한 불필요한 파일 삭제 * fix: Type 타입을 영어로 수정 * fix: import 경로 수정 * feat: 테스트 mock을 위한 vitest 설정 * test: TableComposition 구현으로 인한 수정사항 반영 * feat: 버튼에 aria-label 추가 * chore: storybook msw 사용가능하게 설정 추가 * fix: stace 오타 변경 * test: storybook 경로 변경 * test: TableCompositon 스토리북 코드 작성 * fix: TableSetup삭제로 인한 라우터 변경 * chore: cleanup 함수 추가 * feat: 인터페이스 명 수정 * refactor: 한글에서 영어로 상수 변경 * refactor: NEUTRAL Stance 타입 변경 * refactor: typeMapping을 constants로 분리 * refactor: DebatePanel의 DebateTypeToString 수정 * refactor: type 값을 영어 상수로 변경 * [CHORE] 배포 파이프라인 자동화 구축 (#60) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * fix: 병합과정에 충돌 오류 수정 --------- Co-authored-by: jaeml06 <jaeml0630@gmail.com> * hotfix: 에러바운더리 코드가 삭제된 것에 대한 반영 (#69) * [REFACTOR] 타이머 기능 개선 외 (#66) * refactor: Applied several changes - Changed interval to 1000 ms (1 sec) - Added function that changes background to remove duplication of same codes - Removed isRunning not necessary * feat: Made TimerPage be able to catch parameters * fix: Recovered deleted ErrorBoundary related files * fix: Set icon size on 'size' argument instead of 'className' * refactor: Separated loading component to page * refactor: Applied several changes - Moved TimerLoadingPage to /src/TimerPage from /src/TimerPage/component - Set css file to print CR/LF correctly - Changed 'useQuery' to 'useGetParliamentaryTableData' hook * refactor: Deleted unneccesary codes * [FEAT] 닉네임 기반 로그인 구현 (#71) * feat: 로그인 시, memberId를 반환하도록 변경 * feat: memberId를 session 스토리지에 저장하도록 util 함수 작성 * fix: currentStep을 영문으로 변경 * feat: 정적으로 선언되 memberId를 스토리지에서 가져오도록 변경 * refactor: route.tsx 위치를 routes 폴더로 변경 * feat: ProtectedRoute 구현 * feat: ProtectedRoute 적용 * refactor: routes위치 변경에 따른 import 수정 * feat: 토론하기 클릭 시, TimerPage 연결 * refactor: 라우터 변경에 따른 수정사항 반영 --------- Co-authored-by: Shawn Kang <77564014+i-meant-to-be@users.noreply.github.com> * [FEAT] 추가 작전 시간 타이머 구현 외 (#77) * feat: Changed API base url to deployed server * feat: Implemented AdditionalTimerComponent * fix: Recovered horizontal padding of useModal wrapper * feat: Deleted top margin of AdditionalTimerSummaryItem * fix: Fixed linting errors * fix: Removed hard-coded URL on source codes * fix: Make app get server URL from .env file * chore: Deleted .env files * chore: Updated .gitignore file to ignore .env files * [CHORE] 배포 최적화 및 배포 환경 구분 (#82) * chore: Separated deploy environments and variables * chore: Applined vite-plugin-compressions2 to compress builds * chore: Changed job name * fix: Added quotes on target path of Cloudfront cache invalidation * chore: Changed web page title * chore: Removed compression-related packages and codes * [FIX] QA에서 식별한 버그 해결 - 숀 (#92) * feat: Fixed header's elements at the correct position * fix: Fixed bugs identified at QA * fix: Let TimerPage print error text when app failed to load data * fix: Fixed test codes affected by last commits * refactor: StickyTriSectionHeader변경에 따른 UI 수정 * feat: TableOverview 홈화면 버튼 추가 --------- Co-authored-by: jaeml06 <jaeml0630@gmail.com> * [FIX] QA에서 식별한 버그 해결 - 치코 (#93) * feat: 토론주제를 정상적으로 서버에 전달하도록 변경 * fix: 테이블 수정에서 상수로 되어있던 데이터 초기화 수정 * fix: 쿼리파라미터를 유지하도록 수정 * chore: preview 포트 3000으로 수정 * feat: 테이블을 없을시, 제출 버튼 블록처리 추가 * test: 테이블 추가하기 diabled상황 추가에 따른 테스트 수정 * [FIX] QA에서 식별한 버그 해결 - 엘 (#94) * fix: TableList 화면에서 토론 유형이 영어(PARLIAMENTARY)로 표시되는 문제 해결 * fix: TableList 화면에서 토론 시간이 초가 아니라 분으로 표시되는 문제 해결 * fit: TableList 화면에서 테이블을 삭제한 후 화면이 다시 렌더링되지 않는 문제 해결 * fix: CI Test 를 통과하기 위해 test code 수정 * refactor: typeMapping 메소드 이용하여 토론 유형 매칭 * [FIX, CHORE] mock에서 드래그앤 드롭 UI가 깨지는 문제 수정, Storybook 자동 배포 yml 작성 (#81) * fix: msw 모킹값 변경 * fix: 키값을 더 고유한 값으로 변경 * chore: storybook 자동 배포 yml 작성 --------- Co-authored-by: Shawn Kang <77564014+i-meant-to-be@users.noreply.github.com> * [CHORE] main 브랜치로 배포 (#87) (#97) * Update issue templates * docs: 파일명 수정 * docs: PR 템플릿 생성 (#2) * docs: 자동 issue 설정 할당 * docs: 불필요한 주석 제거 * docs: 이슈 프로젝트 권한 추가 * docs: 자동할당 로직 변경 * feat: 권한 문제로 자동 Project할당 제거 * docs: PR 자동할당 yml 작성 * docs: 불필요한 Project 정보 제거 * docs: Discord comment 알림 yml 작성 * chore: 프로젝트 초기 세팅 * chore: prettier 설정 추가 * feat: 3개의 영역으로 구분된 header(StickyTriSectionHeader) 구현 * feat: 하단에 고정되어 있는 footer wrapper 구현 * feat: main 레이아웃 구현 * feat: 중첩 컴포넌트로 기본 레이아웃 구현 * design: layout의 ContentContanier 가운데 정렬 추가 * design: layout의 ContentContanier padding 추가 * feat: PropsAndConsTitle 구현 * feat: TimerCreationButton 구현 * feat: 테이블 타입 작성 * feat: 초를 분, 초로 포맷팅하는 함수 구현 * feat: DebatePanel 구현 * feat: 테이블 구성 페이지 초기 UI rngus * feat: Pretendard 웹폰트 추가 * chore: storybook 설정 추가 * test: DebatePanel 스토리 북 작성 * test: PropsAndConsTitle 스토리북 테스트 작성 * test: TimerCreationButton 스토리북 테스트 작성 * fix: 파일명에 불필요한 공백 제거 * [FEAT] 페이지 라우팅 적용 (#22) * chore: install react-router-dom * feat: App.tsx와 main.tsx 에서 라우팅 설정 * refactor: createBrowerRouter 방식 적용 - router.tsx 파일 생성하여 라우터 적용 - main.tsx 에서 <RouterProvider router={router} /> 적용 * chore: 불필요한 App.tsx 컴포넌트 삭제 * chore: eol prettier 적용 * [FEAT] 타이머 박스 생성 모달 구현 (#17) * feat: 포털 렌더링 관리를 위한 GlobalPortal 컴포넌트 추가 * feat: 모달 생성을 위한 modal 커스텀 훅 구현 * feat: GlobalPortal 적용 * feat: 제출 이벤트, 버튼 추가 * feat: uesModal 구조 변경 * feat: Stance, DebateType에 export 추가 * test: useModal 테스트 코드 작성 * feat: 타이머 박스 생성 모달 구현 * feat: 타임 테이블 구성 페이지 피그마 UI에 맞게 구성 * refactor: 불필요한 테스트 파일 삭제 * test: 타임 테이블 구성 페이지 스토리북 작성 * test: 타임 테이블 구성 페이지 테스트 코드 작성 * refactor: params변경에 따른 수정 * test: GlbalPortal 추가 * chore: chromatic 추가 * fix: 파일명에 불필요한 공백 제거 * chore: 크로매틱 배포 토큰 변경 * [FEAT] 로그인 페이지 구현 (#24) * feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경 * chore: lint와 test를 넣은 CI yml 파일 작성 (#27) * [FEAT] 테이블 목록화면 구현 (#26) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * refactor: Table 타입 분리 및 Type네이밍 변경 * [TEST] 로그인 페이지 Storybook 테스트코드 구현 (#31) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * feat: LoginPage Storybook 구현 * test: LinkButton 스토리북 구현 * [FIX] 타임 테이블 구성 페이지 피드백 사항 반영 (#29) * fix: 텍스트를 더 자세하게 수정 * feat: 최상단 컴포넌트에 GlobalPortal추가 * fix: 하단 버튼에 main의 content가 가려지던 문제 수정 * refactor: formatSecondsToMinutes 반환 값 변경 * feat: 선택 진영에 따라 모달 제목 텍스트 색상 변경 * feat: input을 select로 변경 * feat: stace에 따른 색상 변경 함수 구현 * feat: debateType가 중립일 경우 stance을 값을 빈문자열로 표시 * feat: input Numer의 leading zero삭제 * feat: 초기값을 이전 설정한 값으로 설정되게 변경 * feat: stace가 중립일 speakerNumber 수정 불가능하게 변경 * feat: 이전 데이터가 중립일 경우 debateType이 이전 데이터를 반영하지 않도록 변경 * [TEST] 테이블 목록 컴포넌트 Storybook 테스트코드 구현 (#35) * test: Table 컴포넌트 Storybook 구현 * test: TableListPage 페이지 Storybook 구현 * test: DropdownForDebateType 컴포넌트 Storybook 구현 * fix: test 코드 통과를 위해 코드 h2 tag 수정 * [FEAT] 테이블 조회 화면 구현 (#34) * refactor: PropsAndConsTitle의 재사용에 따른 폴더 위치 변경 * feat: 테이블 선택 페이지 기본 레이아웃 구현 * fix: footerWrapper을 flex정렬 방향 변경 * refactor: FixedFooterWrapper position 속정 변경에 따른 컴포넌트 명 수정 * feat: TableOverview 라우터 추가 * test: TableOverview 스토리북 작성 * test: PropsAndConsTitle의 위치 변경 * feat: 불필요한 주석 제거 * feat: 버튼 text 수정 * test: MemoryRouter추가 * fix: 사용되지 않은 getStanceColor 수정 * [TEST] 로그인 및 테이블 조회 컴포넌트 테스트코드 구현 (#37) * [CHORE] API 처리를 위해 패키지 추가 (#39) * chore: Added API-related packages to the project * chore: Added and modified codes for API - 가상 API 사용을 위한 msw 관련 파일 추가 - TanStack Query 및 msw 대응하여 main.tsx 수정 * chore: Let msw only enabled on 'dev-mock' mode * chore: Added one blank line at end of package.json * chore: Added EOL at end of environment variable files * [FEAT] 테이블 수정 및 삭제 구현 (#44) * chore: 수정 및 삭제 아이콘을 위해 react-icons 추가 * feat: Table 컴포넌트에 Icons 추가 * feat: implement handleDelete method * feat: implement EditModalButton to edit Tables * refactor: stopPropagation method with MouseEvent 추가 - 버튼 클릭 이벤트가 상위로 전파되는 것을 막기 위해서 추가함 * feat: Edit 버튼 눌렀을 때, CreateTableModal 나오게 구현 * chore: unused closeModal function 삭제 * feat: Table 삭제를 위해 DeleteModalButton 구현 * feat: EditTableModal 구현 * feat: EditTableButton 구현 - 이후 수정 RestAPI 로직 추가 필요 * refactor: Edit 관련 컴포넌트에 name 매개변수 추가 * refactor: DebateTable 타입에 extends하여 delete 타입 추가 * refactor: 토론 유형 수정 불가 * refactor: 토론유형 hover: curser-not-allowed 추가 * refactor: handleDelete 함수형 업데이트로 수정 * refactor: EditTableButton 컴포넌트에 closeModal 매개변수 추가 * fix: TableListPage 테스트코드 수정 * [FEAT] 타임박스에 수정 및 삭제 UI 추가 (#42) * chore: 수정, 삭제 아이콘 이용을 위한 react-icons 추가 * style: 컴포넌트 간의 간경을 더 좁게 수정 * feat: 수정, 삭제 버튼을 합친 EditDeleteButtons 컴포넌트 구현 * style: 분기에 따른 컴포넌트의 높이를 동일하게 수정 * feat: 수정, 삭제 handler 함수 작성 * refactor: 가독성을 위해 중첩된 삼항연산자 분리 * feat: 삭제 버튼 클릭 시, 삭제 확인 모달 구현 * feat: EditDeleteButtons에 aria-label 추가 * test: EditDeleteButtons 스토리북 코드 작성 * feat: TableSetup 테스트에 수정, 삭제 기능 테스트 추가 * [FEAT] API 요청 관련 기능 구현 (#45) * feat: Added API mocking handler * feat: Implemented API request logics - 추가로, BE API 명세서의 반환 예시에 맞추어 일부 변수 이름을 수정 * refactor: Applied some minor changes - URL 생성 함수가 슬래시(/)를 여러 개 포함하는 문제 수정 - 모든 API 함수를 apis.ts에 통합 (추후 메소드 많아지면 분리) * feat: Let msw handler catch arguments 그 외 변경사항으로, API 함수들에서 경로 매개변수(path parameters)가 생략되어 있었던 문제를 해결 * refactor: 주석 추가 * fix: DebateTable 인터페이스 변경에 따른 일부 오류 수정 * feat: Added string identifier for 'useQuery' function --------- * [FEAT] 타임박스의 수정을 드래그앤드롭으로 변경하는 기능 구현 (#47) * feat: 이벤트 발생 비용 감소를 위한 useThrottle 작성 * faet: 타임박스 드래그앤 드롭을 위한 useDragAndDrop 구현 * feat: 타임박스에 드래그앤드롭 영역 지정 * feat: TableSetup에 드래그앤 드롭 선언 * refactor: 불필요한 주석 삭제 * fix: 병합과정에서 발생한 오류 수정 * [CHORE] storybook에 전역적인 decorators 설정 추가 (#50) * chore: 라우터, GlobalPortal설정을 전역 설정에 decorators로 추가 * chore: storybook에 msw 설정 추가 * [FIX] Mock Handler 파일에서 타입 에러 해결 (#54) * feat: Table 타입인 TableInfo 정의 * refactor: result 객체에 속핸 info의 타입을 명시하기 위해 request에 TableInfo 타입 명시 * chore: 이미 정의되있던 PostDebateTableResponseType 타입 사용 * [CHORE] VS Code 작업 영역에 대한 설정 파일 추가 #62 * [FEAT] 타이머 화면 구현 (#58) * feat: Implemented TimerPage * feat: Applied sound effect And applied minor design changed * refactor: Let TimerComponent change TimerPage's background * fix: NEUTRAL 항목에 불필요한 아이콘 뜨는 오류 수정 * feat: Added keyboard event listener on Timer * fix: 토론 순서 조작 시 발생하는 인덱스 초과 오버플로우 해결 * feat: 피드백에 따른 디자인 변경 사항 반영 * feat: Added loading and error screen on TimerPage * feat: Applied feedbacks from PR * fix: 타이머가 현재 debateInfo의 index를 불러오지 못하는 오류 수정 * refactor: 콘솔 로깅 비활성화 * fix: Storybook 출력되지 않는 문제 수정 - use-sound 패키지 제거하고 HTML 태그로 소리 출력 - 별도 컴포넌트를 거치지 않고 직접 gif 파일을 불러와 출력 * refactor: Removed unnecessary codes and comments * refactor: Hoisted all data and functions to the root page * fix: Cleared focus on button when space bar pressed * [FEAT] `ErrorBoundary` 도입 (#65) * feat: ErrorBoundary 도입 * feat: Wrapped router with ErrorBoundaryWrapper * feat: Enabled 'throwOnError' option on QueryClient * feat: Added refresh button on ErrorPage * refactor: Applied feedbacks from PR review - Declared string constants for ErrorBoundary - Set icon size on 'size' parameter instead of TailwindCSS 'className' * [FEAT] API 연결과 테이블 생성과 수정을 위해 funnel 패턴을 이용하여 멀티 스텝 폼 구현 (#57) * fix: 응답 타입을 문서에 맞게 수정 * feat: Agenda 타입 추가 * feat: 테이블을 추가하는 api 훅 추가 * feat: 테이블을 삭제하는 api 훅 추가 * feat: 사용자를 추가하는 api 훅 추가 * feat: 의회식 토론을 수정하는 api 훅 추가 * feat: 토론 리스트를 가져오는 api 훅 추가 * feat: 의호식 토론 정보를 가져오는 api 훅 추가 * style: 컴포넌트간의 간격 추가 * feat: multi-step form 구현을 위한 useFunnel 작성 * feat: multi-step form동안에 새로고침시에도 상태 유지를 위한 useBrowserStorage 구현 * feat: DropdownForDebateType의 로직 변경 * feat: 멀티 스텝을 이용한 방식으로 수정으로 인한 생성 모달, TableSetupPage를 변경 * feat: 테이블 생성과 수정을 위한 멀티 스텝 폼, TableComposition 구현 * feat: 테이블 form 정보 커스텀 훅 구현 * feat: 로그인 페이지에 상태와 api훅 추가 * fix: 타임박스 ui 버그 수정 * feat: 멀티 스텝 폼을 위해 TableSetupPage의 commponents 파일 이동 * feat: 테이블 수정을 모달에서 멀티스텝 폼 변경으로 인한 수정 * refactor: 더미 데이터 제거 * feat: composition 라우터 추가 * fix: 응답값에 맞게 msw 수정 * feat: 테이블 조회에 api 훅 추가 * refactor: 모달에서 멀티스텝폼 변경으로 인한 컴포넌트 명 변경 * fix: agenda와 type의 혼동으로 type 문제 수정 * fix: TableComposition 구현으로 인한 불필요한 파일 삭제 * fix: Type 타입을 영어로 수정 * fix: import 경로 수정 * feat: 테스트 mock을 위한 vitest 설정 * test: TableComposition 구현으로 인한 수정사항 반영 * feat: 버튼에 aria-label 추가 * chore: storybook msw 사용가능하게 설정 추가 * fix: stace 오타 변경 * test: storybook 경로 변경 * test: TableCompositon 스토리북 코드 작성 * fix: TableSetup삭제로 인한 라우터 변경 * chore: cleanup 함수 추가 * feat: 인터페이스 명 수정 * refactor: 한글에서 영어로 상수 변경 * refactor: NEUTRAL Stance 타입 변경 * refactor: typeMapping을 constants로 분리 * refactor: DebatePanel의 DebateTypeToString 수정 * refactor: type 값을 영어 상수로 변경 * [CHORE] 배포 파이프라인 자동화 구축 (#60) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * fix: 병합과정에 충돌 오류 수정 --------- * hotfix: 에러바운더리 코드가 삭제된 것에 대한 반영 (#69) * [REFACTOR] 타이머 기능 개선 외 (#66) * refactor: Applied several changes - Changed interval to 1000 ms (1 sec) - Added function that changes background to remove duplication of same codes - Removed isRunning not necessary * feat: Made TimerPage be able to catch parameters * fix: Recovered deleted ErrorBoundary related files * fix: Set icon size on 'size' argument instead of 'className' * refactor: Separated loading component to page * refactor: Applied several changes - Moved TimerLoadingPage to /src/TimerPage from /src/TimerPage/component - Set css file to print CR/LF correctly - Changed 'useQuery' to 'useGetParliamentaryTableData' hook * refactor: Deleted unneccesary codes * [HOTFIX] GitHub Actions 빌드 실패 문제 해결 (#73) - TableCompositionStep 상수 값을 한글(타임박스입력)에서 영어(TimeBox)로 바꾸며 발생한 문제 수정 - Type 상수 값을 한글(의회식 토론)에서 영어(PARLIAMENTARY)로 바꾸며 발생한 문제 수정 * [FEAT] AWS S3 및 FrontCloud dev, prod 각각 분리 배포 및 github action 구축 (#76) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * feat: dev 배포를 위한 deploy 코드 작성 * feat: prod 배포를 위한 deploy 코드 작성 * chore: merge 후 생성된 불 필요한 코드 삭제 * chore: dev 배포 명료성을 위해 access key 및 secret key 네이밍 변경 * chore: Dev 배포 관련 yml파일에서 bucket 네이밍 변경 * [FEAT] 닉네임 기반 로그인 구현 (#71) * feat: 로그인 시, memberId를 반환하도록 변경 * feat: memberId를 session 스토리지에 저장하도록 util 함수 작성 * fix: currentStep을 영문으로 변경 * feat: 정적으로 선언되 memberId를 스토리지에서 가져오도록 변경 * refactor: route.tsx 위치를 routes 폴더로 변경 * feat: ProtectedRoute 구현 * feat: ProtectedRoute 적용 * refactor: routes위치 변경에 따른 import 수정 * feat: 토론하기 클릭 시, TimerPage 연결 * refactor: 라우터 변경에 따른 수정사항 반영 --------- * [FEAT] 추가 작전 시간 타이머 구현 외 (#77) * feat: Changed API base url to deployed server * feat: Implemented AdditionalTimerComponent * fix: Recovered horizontal padding of useModal wrapper * feat: Deleted top margin of AdditionalTimerSummaryItem * fix: Fixed linting errors * fix: Removed hard-coded URL on source codes * fix: Make app get server URL from .env file * chore: Deleted .env files * chore: Updated .gitignore file to ignore .env files * [CHORE] 배포 최적화 및 배포 환경 구분 (#82) * chore: Separated deploy environments and variables * chore: Applined vite-plugin-compressions2 to compress builds * chore: Changed job name * fix: Added quotes on target path of Cloudfront cache invalidation * chore: Changed web page title * chore: Removed compression-related packages and codes * [HOTFIX] 배포된 앱이 서버와 통신하지 못하는 문제 수정 (#84) * [FIX] PostUserResponseType타입 수정, TableOverview에서 tableId를 url에서 정상적으로 가져오도록 수정 (#86) * fix: PostUserResponseType 타입 변경 * fix: 정적 navigate 제거 * fix: 불필요한 console.log제거 * fix: tableId를 정상적으로 불러오도록 수정 --------- Co-authored-by: Shawn Kang <77564014+i-meant-to-be@users.noreply.github.com> Co-authored-by: EunWoo <eunwoo1341@gmail.com> * [FEAT] invalidateQueries 사용하여 Table 삭제 시 즉시 업데이트 반영 (#99) * feat: invalidateQueries를 사용하여 Table를 삭제한 후 성공할 시 최신 데이터를 반영 * feat: setTimeout을 사용하여 먼저 UI를 갱신한 후 alert을 표시하여 사용자경험(UX)를 향상 * [REFACTOR] 1차 UT에 있었던 1, 2순위 수정 사항 반영 (#102) * refactor: 생성, 수정 환경에서 문구 구분 * refactor: 드래그앤드롭 바 디자인 변경 * fix: 타임박스가 헤더 영역을 침범하는 문제 수정 * test: 문구 변경에 따른 테스트 수정 * Update issue templates * docs: 파일명 수정 * docs: PR 자동할당 yml 작성 * docs: 불필요한 Project 정보 제거 * chore: 프로젝트 초기 세팅 * feat: 중첩 컴포넌트로 기본 레이아웃 구현 * chore: storybook 설정 추가 * [FEAT] 페이지 라우팅 적용 (#22) * chore: install react-router-dom * feat: App.tsx와 main.tsx 에서 라우팅 설정 * refactor: createBrowerRouter 방식 적용 - router.tsx 파일 생성하여 라우터 적용 - main.tsx 에서 <RouterProvider router={router} /> 적용 * chore: 불필요한 App.tsx 컴포넌트 삭제 * chore: eol prettier 적용 * [FEAT] 타이머 박스 생성 모달 구현 (#17) * feat: 포털 렌더링 관리를 위한 GlobalPortal 컴포넌트 추가 * feat: 모달 생성을 위한 modal 커스텀 훅 구현 * feat: GlobalPortal 적용 * feat: 제출 이벤트, 버튼 추가 * feat: uesModal 구조 변경 * feat: Stance, DebateType에 export 추가 * test: useModal 테스트 코드 작성 * feat: 타이머 박스 생성 모달 구현 * feat: 타임 테이블 구성 페이지 피그마 UI에 맞게 구성 * refactor: 불필요한 테스트 파일 삭제 * test: 타임 테이블 구성 페이지 스토리북 작성 * test: 타임 테이블 구성 페이지 테스트 코드 작성 * refactor: params변경에 따른 수정 * test: GlbalPortal 추가 * chore: chromatic 추가 * fix: 파일명에 불필요한 공백 제거 * chore: 크로매틱 배포 토큰 변경 * [FEAT] 로그인 페이지 구현 (#24) * feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경 * [FEAT] 테이블 목록화면 구현 (#26) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * refactor: Table 타입 분리 및 Type네이밍 변경 * [FIX] 타임 테이블 구성 페이지 피드백 사항 반영 (#29) * fix: 텍스트를 더 자세하게 수정 * feat: 최상단 컴포넌트에 GlobalPortal추가 * fix: 하단 버튼에 main의 content가 가려지던 문제 수정 * refactor: formatSecondsToMinutes 반환 값 변경 * feat: 선택 진영에 따라 모달 제목 텍스트 색상 변경 * feat: input을 select로 변경 * feat: stace에 따른 색상 변경 함수 구현 * feat: debateType가 중립일 경우 stance을 값을 빈문자열로 표시 * feat: input Numer의 leading zero삭제 * feat: 초기값을 이전 설정한 값으로 설정되게 변경 * feat: stace가 중립일 speakerNumber 수정 불가능하게 변경 * feat: 이전 데이터가 중립일 경우 debateType이 이전 데이터를 반영하지 않도록 변경 * [TEST] 테이블 목록 컴포넌트 Storybook 테스트코드 구현 (#35) * test: Table 컴포넌트 Storybook 구현 * test: TableListPage 페이지 Storybook 구현 * test: DropdownForDebateType 컴포넌트 Storybook 구현 * fix: test 코드 통과를 위해 코드 h2 tag 수정 * [FEAT] 테이블 조회 화면 구현 (#34) * refactor: PropsAndConsTitle의 재사용에 따른 폴더 위치 변경 * feat: 테이블 선택 페이지 기본 레이아웃 구현 * fix: footerWrapper을 flex정렬 방향 변경 * refactor: FixedFooterWrapper position 속정 변경에 따른 컴포넌트 명 수정 * feat: TableOverview 라우터 추가 * test: TableOverview 스토리북 작성 * test: PropsAndConsTitle의 위치 변경 * feat: 불필요한 주석 제거 * feat: 버튼 text 수정 * test: MemoryRouter추가 * fix: 사용되지 않은 getStanceColor 수정 * [CHORE] API 처리를 위해 패키지 추가 (#39) * chore: Added API-related packages to the project * chore: Added and modified codes for API - 가상 API 사용을 위한 msw 관련 파일 추가 - TanStack Query 및 msw 대응하여 main.tsx 수정 * chore: Let msw only enabled on 'dev-mock' mode * chore: Added one blank line at end of package.json * chore: Added EOL at end of environment variable files * [FEAT] 테이블 수정 및 삭제 구현 (#44) * chore: 수정 및 삭제 아이콘을 위해 react-icons 추가 * feat: Table 컴포넌트에 Icons 추가 * feat: implement handleDelete method * feat: implement EditModalButton to edit Tables * refactor: stopPropagation method with MouseEvent 추가 - 버튼 클릭 이벤트가 상위로 전파되는 것을 막기 위해서 추가함 * feat: Edit 버튼 눌렀을 때, CreateTableModal 나오게 구현 * chore: unused closeModal function 삭제 * feat: Table 삭제를 위해 DeleteModalButton 구현 * feat: EditTableModal 구현 * feat: EditTableButton 구현 - 이후 수정 RestAPI 로직 추가 필요 * refactor: Edit 관련 컴포넌트에 name 매개변수 추가 * refactor: DebateTable 타입에 extends하여 delete 타입 추가 * refactor: 토론 유형 수정 불가 * refactor: 토론유형 hover: curser-not-allowed 추가 * refactor: handleDelete 함수형 업데이트로 수정 * refactor: EditTableButton 컴포넌트에 closeModal 매개변수 추가 * fix: TableListPage 테스트코드 수정 * [FEAT] 타임박스에 수정 및 삭제 UI 추가 (#42) * chore: 수정, 삭제 아이콘 이용을 위한 react-icons 추가 * style: 컴포넌트 간의 간경을 더 좁게 수정 * feat: 수정, 삭제 버튼을 합친 EditDeleteButtons 컴포넌트 구현 * style: 분기에 따른 컴포넌트의 높이를 동일하게 수정 * feat: 수정, 삭제 handler 함수 작성 * refactor: 가독성을 위해 중첩된 삼항연산자 분리 * feat: 삭제 버튼 클릭 시, 삭제 확인 모달 구현 * feat: EditDeleteButtons에 aria-label 추가 * test: EditDeleteButtons 스토리북 코드 작성 * feat: TableSetup 테스트에 수정, 삭제 기능 테스트 추가 * [FEAT] API 요청 관련 기능 구현 (#45) * feat: Added API mocking handler * feat: Implemented API request logics - 추가로, BE API 명세서의 반환 예시에 맞추어 일부 변수 이름을 수정 * refactor: Applied some minor changes - URL 생성 함수가 슬래시(/)를 여러 개 포함하는 문제 수정 - 모든 API 함수를 apis.ts에 통합 (추후 메소드 많아지면 분리) * feat: Let msw handler catch arguments 그 외 변경사항으로, API 함수들에서 경로 매개변수(path parameters)가 생략되어 있었던 문제를 해결 * refactor: 주석 추가 * fix: DebateTable 인터페이스 변경에 따른 일부 오류 수정 * feat: Added string identifier for 'useQuery' function --------- Co-authored-by: jaeml06 <jaeml0630@gmail.com> * [FEAT] 타임박스의 수정을 드래그앤드롭으로 변경하는 기능 구현 (#47) * feat: 이벤트 발생 비용 감소를 위한 useThrottle 작성 * faet: 타임박스 드래그앤 드롭을 위한 useDragAndDrop 구현 * feat: 타임박스에 드래그앤드롭 영역 지정 * feat: TableSetup에 드래그앤 드롭 선언 * refactor: 불필요한 주석 삭제 * fix: 병합과정에서 발생한 오류 수정 * [CHORE] storybook에 전역적인 decorators 설정 추가 (#50) * chore: 라우터, GlobalPortal설정을 전역 설정에 decorators로 추가 * chore: storybook에 msw 설정 추가 * [FEAT] 타이머 화면 구현 (#58) * feat: Implemented TimerPage * feat: Applied sound effect And applied minor design changed * refactor: Let TimerComponent change TimerPage's background * fix: NEUTRAL 항목에 불필요한 아이콘 뜨는 오류 수정 * feat: Added keyboard event listener on Timer * fix: 토론 순서 조작 시 발생하는 인덱스 초과 오버플로우 해결 * feat: 피드백에 따른 디자인 변경 사항 반영 * feat: Added loading and error screen on TimerPage * feat: Applied feedbacks from PR * fix: 타이머가 현재 debateInfo의 index를 불러오지 못하는 오류 수정 * refactor: 콘솔 로깅 비활성화 * fix: Storybook 출력되지 않는 문제 수정 - use-sound 패키지 제거하고 HTML 태그로 소리 출력 - 별도 컴포넌트를 거치지 않고 직접 gif 파일을 불러와 출력 * refactor: Removed unnecessary codes and comments * refactor: Hoisted all data and functions to the root page * fix: Cleared focus on button when space bar pressed * [FEAT] `ErrorBoundary` 도입 (#65) * feat: ErrorBoundary 도입 * feat: Wrapped router with ErrorBoundaryWrapper * feat: Enabled 'throwOnError' option on QueryClient * feat: Added refresh button on ErrorPage * refactor: Applied feedbacks from PR review - Declared string constants for ErrorBoundary - Set icon size on 'size' parameter instead of TailwindCSS 'className' * [FEAT] API 연결과 테이블 생성과 수정을 위해 funnel 패턴을 이용하여 멀티 스텝 폼 구현 (#57) * fix: 응답 타입을 문서에 맞게 수정 * feat: Agenda 타입 추가 * feat: 테이블을 추가하는 api 훅 추가 * feat: 테이블을 삭제하는 api 훅 추가 * feat: 사용자를 추가하는 api 훅 추가 * feat: 의회식 토론을 수정하는 api 훅 추가 * feat: 토론 리스트를 가져오는 api 훅 추가 * feat: 의호식 토론 정보를 가져오는 api 훅 추가 * style: 컴포넌트간의 간격 추가 * feat: multi-step form 구현을 위한 useFunnel 작성 * feat: multi-step form동안에 새로고침시에도 상태 유지를 위한 useBrowserStorage 구현 * feat: DropdownForDebateType의 로직 변경 * feat: 멀티 스텝을 이용한 방식으로 수정으로 인한 생성 모달, TableSetupPage를 변경 * feat: 테이블 생성과 수정을 위한 멀티 스텝 폼, TableComposition 구현 * feat: 테이블 form 정보 커스텀 훅 구현 * feat: 로그인 페이지에 상태와 api훅 추가 * fix: 타임박스 ui 버그 수정 * feat: 멀티 스텝 폼을 위해 TableSetupPage의 commponents 파일 이동 * feat: 테이블 수정을 모달에서 멀티스텝 폼 변경으로 인한 수정 * refactor: 더미 데이터 제거 * feat: composition 라우터 추가 * fix: 응답값에 맞게 msw 수정 * feat: 테이블 조회에 api 훅 추가 * refactor: 모달에서 멀티스텝폼 변경으로 인한 컴포넌트 명 변경 * fix: agenda와 type의 혼동으로 type 문제 수정 * fix: TableComposition 구현으로 인한 불필요한 파일 삭제 * fix: Type 타입을 영어로 수정 * fix: import 경로 수정 * feat: 테스트 mock을 위한 vitest 설정 * test: TableComposition 구현으로 인한 수정사항 반영 * feat: 버튼에 aria-label 추가 * chore: storybook msw 사용가능하게 설정 추가 * fix: stace 오타 변경 * test: storybook 경로 변경 * test: TableCompositon 스토리북 코드 작성 * fix: TableSetup삭제로 인한 라우터 변경 * chore: cleanup 함수 추가 * feat: 인터페이스 명 수정 * refactor: 한글에서 영어로 상수 변경 * refactor: NEUTRAL Stance 타입 변경 * refactor: typeMapping을 constants로 분리 * refactor: DebatePanel의 DebateTypeToString 수정 * refactor: type 값을 영어 상수로 변경 * [CHORE] 배포 파이프라인 자동화 구축 (#60) * feat: useMutation 사용하여 restAPI post요청 구현 * refactor: useLoginUser 훅으로 분리 * chore: setting Up a Deployment Automation Pipeline * chore: cd 파일 pr branch 명 변경 * fix: 불필요한 코드 지우기 * build: 패키지 매니저 변경 * build: pr types 추가 * fix: handleLogin 에 '/table' 경로로 라우팅 추가하여 test코드 통과 * fix: 올바른 test코드 위한 수정 * fix: mockServiceWorker 에서 불필요한 코드 삭제 * fix: mockServiceWorekr 필요없는 코드 삭제 * fix: 오류 해결을 위해 build 다시 생성 * fix: eslintignore 와 stylelintignore 설정을 통해 불필요한 검사 제외 * chore: gitignore 에 /dist 추가하여 빌드파일 제외 * chore: stylelintignore eol 추가 * chore: .eslintignore 삭제 및 eslint.config.js 파일 안 ignore 추가 * chore: dist 디렉토리 삭제 * chore: CD 파일에 pr types 에 'synchronize', 'reopened' 제거 * fix: 병합과정에 충돌 오류 수정 --------- Co-authored-by: jaeml06 <jaeml0630@gmail.com> * hotfix: 에러바운더리 코드가 삭제된 것에 대한 반영 (#69) * [REFACTOR] 타이머 기능 개선 외 (#66) * refactor: Applied several changes - Changed interval to 1000 ms (1 sec) - Added function that changes background to remove duplication of same codes - Removed isRunning not necessary * feat: Made TimerPage be able to catch parameters * fix: Recovered deleted ErrorBoundary related files * fix: Set icon size on 'size' argument instead of 'className' * refactor: Separated loading component to page * refactor: Applied several changes - Moved TimerLoadingPage to /src/TimerPage from /src/TimerPage/component - Set css file to print CR/LF correctly - Changed 'useQuery' to 'useGetParliamentaryTableData' hook * refactor: Deleted unneccesary codes * [FEAT] 닉네임 기반 로그인 구현 (#71) * feat: 로그인 시, memberId를 반환하도록 변경 * feat: memberId를 session 스토리지에 저장하도록 util 함수 작성 * fix: currentStep을 영문으로 변경 * feat: 정적으로 선언되 memberId를 스토리지에서 가져오도록 변경 * refactor: route.tsx 위치를 routes 폴더로 변경 * feat: ProtectedRoute 구현 * feat: ProtectedRoute 적용 * refactor: routes위치 변경에 따른 import 수정 * feat: 토론하기 클릭 시, TimerPage 연결 * refactor: 라우터 변경에 따른 수정사항 반영 --------- Co-authored-by: Shawn Kang <77564014+i-meant-to-be@users.noreply.github.com> * [FEAT] 추가 작전 시간 타이머 구현 외 (#77) * feat: Changed API base url to deployed server * feat: Implemented AdditionalTimerComponent * fix: Recovered horizontal padding of useModal wrapper * feat: Deleted top margin of AdditionalTimerSummaryItem * fix: Fixed linting errors * fix: Removed hard-coded URL on source codes * fix: Make app get server URL from .env file * chore: Deleted .env files * chore: Updated .gitignore file to ignore .env files * [CHORE] 배포 최적화 및 배포 환경 구분 (#82) * chore: Separated deploy environments and variables * chore: Applined vite-plugin-compressions2 to compress builds * chore: Changed job name * fix: Added quotes on target path of Cloudfront cache invalidation * chore: Changed web page title * chore: Removed compression-related packages and codes * [CHORE] main 브랜치로 배포 (#87) (#97) * Update issue templates * docs: 파일명 수정 * docs: PR 템플릿 생성 (#2) * docs: 자동 issue 설정 할당 * docs: 불필요한 주석 제거 * docs: 이슈 프로젝트 권한 추가 * docs: 자동할당 로직 변경 * feat: 권한 문제로 자동 Project할당 제거 * docs: PR 자동할당 yml 작성 * docs: 불필요한 Project 정보 제거 * docs: Discord comment 알림 yml 작성 * chore: 프로젝트 초기 세팅 * chore: prettier 설정 추가 * feat: 3개의 영역으로 구분된 header(StickyTriSectionHeader) 구현 * feat: 하단에 고정되어 있는 footer wrapper 구현 * feat: main 레이아웃 구현 * feat: 중첩 컴포넌트로 기본 레이아웃 구현 * design: layout의 ContentContanier 가운데 정렬 추가 * design: layout의 ContentContanier padding 추가 * feat: PropsAndConsTitle 구현 * feat: TimerCreationButton 구현 * feat: 테이블 타입 작성 * feat: 초를 분, 초로 포맷팅하는 함수 구현 * feat: DebatePanel 구현 * feat: 테이블 구성 페이지 초기 UI rngus * feat: Pretendard 웹폰트 추가 * chore: storybook 설정 추가 * test: DebatePanel 스토리 북 작성 * test: PropsAndConsTitle 스토리북 테스트 작성 * test: TimerCreationButton 스토리북 테스트 작성 * fix: 파일명에 불필요한 공백 제거 * [FEAT] 페이지 라우팅 적용 (#22) * chore: install react-router-dom * feat: App.tsx와 main.tsx 에서 라우팅 설정 * refactor: createBrowerRouter 방식 적용 - router.tsx 파일 생성하여 라우터 적용 - main.tsx 에서 <RouterProvider router={router} /> 적용 * chore: 불필요한 App.tsx 컴포넌트 삭제 * chore: eol prettier 적용 * [FEAT] 타이머 박스 생성 모달 구현 (#17) * feat: 포털 렌더링 관리를 위한 GlobalPortal 컴포넌트 추가 * feat: 모달 생성을 위한 modal 커스텀 훅 구현 * feat: GlobalPortal 적용 * feat: 제출 이벤트, 버튼 추가 * feat: uesModal 구조 변경 * feat: Stance, DebateType에 export 추가 * test: useModal 테스트 코드 작성 * feat: 타이머 박스 생성 모달 구현 * feat: 타임 테이블 구성 페이지 피그마 UI에 맞게 구성 * refactor: 불필요한 테스트 파일 삭제 * test: 타임 테이블 구성 페이지 스토리북 작성 * test: 타임 테이블 구성 페이지 테스트 코드 작성 * refactor: params변경에 따른 수정 * test: GlbalPortal 추가 * chore: chromatic 추가 * fix: 파일명에 불필요한 공백 제거 * chore: 크로매틱 배포 토큰 변경 * [FEAT] 로그인 페이지 구현 (#24) * feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경 * chore: lint와 test를 넣은 CI yml 파일 작성 (#27) * [FEAT] 테이블 목록화면 구현 (#26) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫기 버튼 가독성을 위해 위치 변경 및 크기 변경 * refactor: ModalProps 타입 분리 * chore: Table 컴포넌트에 시간 단위 '분' 추가 * refactor: Modal props 컴포넌트 안에 배치 * refactor: useModal 훅에 esc 닫는 기능 추가 * refactor: useModal 적용하여 기존 모달 리팩토링 * refactor: 모달 닫기 버튼 사이즈 변경 * refactor: TimerCreationContent Padding 증가 * refactor: Modal 닫기 버튼 위치 조정 및 사이즈 변경 * refactor: TableProps 분리 제거 * refactor: Modal 컴포넌트를 ModalWrapper 감싸기 * refactor: responsive Table UI 로 리팩토링 * refactor: responsive Modal UI 리팩토링 * refactor: Table 타입 분리 및 Type네이밍 변경 * [TEST] 로그인 페이지 Storybook 테스트코드 구현 (#31) * feat: TableListPage 와이어 프레임 구현 * refactor: grid 가운데 정렬 및 gap 추가 * feat: Table 컴포넌트 구현 * feat: AddTable 컴포넌트 구현 - 클릭 시 새로운 토론 생성 * feat: TableProps 추가 * 페이지 테이블 모달 구현 * refactor: 모달 와이어프레임 구현 * feat: 토론 시간 이름 및 토론 유형 UI 구현 * feat: 토론 유형 선택 토글 구현 * refactor: 토론 유형 토글 선택 기능 구현 * refactor: 토론 유형 토글 컴포넌트로 분리 * style: UI 색상 변경 - amber-500 * feat: CreateTableButton 컴포넌트 구현 - 테이블 만들기 버튼 클릭 시 '/' 로 이동 * refactor: Table 컴포넌트 라우팅 적용 * chore: dummy data 제거 * chore: dummy data 주석처리 * chore: dummy data 추가 * refactor: TableProps 타입 분리 * refactor: 닫…
* feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경
* feat: 로그인 페이지 전체 레이아웃 * feat: 로그인 버튼 구현 * feat: 닉네임 별 페이지 목록 페이지 라우팅 설정 * refactor: scale 효과 추가 및 font 굵기 조절 * refactor: tailwind css 가독성 향상 및 개선 * refactor: LinkButton 재사용성 향상 - url과 title을 props로 넘김 * chore: eslint 자동 정렬 설정 * chore: LoginPage eslint 자동 정렬 적용 * refactor: input placeholder 가독성 향상을 위해 글꼴 색깔 변경


🚩 연관 이슈
closed #20
📝 작업 내용
<리팩토링>
-LinkButton 컴포넌트 재활용성을 위해 url 과 title을 props로 넘겨주는 방식을 택함
🏞️ 스크린샷 (선택)
🗣️ 리뷰 요구사항 (선택)