Skip to content

Conversation

@eunwoo-levi
Copy link
Member

@eunwoo-levi eunwoo-levi commented Dec 22, 2024

🚩 연관 이슈

closed # 21

📝 작업 내용

  1. App 컴포넌트에서 라우팅 적용하였습니다.
function App() {
  return (
    <Routes>
      <Route path="/login" element={<LoginPage />} />
      <Route path="/" element={<TableSetup />} />
    </Routes>
  );
}
  1. main.tsx 코드에서 BrowserRouter로 적용하였습니다.
import { StrictMode } from 'react';
import { createRoot } from 'react-dom/client';
import './index.css';
import App from './App.tsx';
import { BrowserRouter } from 'react-router-dom';

createRoot(document.getElementById('root')!).render(
  <StrictMode>
    <BrowserRouter>
      <App />
    </BrowserRouter>
  </StrictMode>,
);




<리뷰 반영 >

  • 리팩토링 : createBrowserRouter 적용

  • route.tsx 파일을 src 디렉토리에 생성

import { createBrowserRouter } from 'react-router-dom';
import TableSetup from './page/TableSetupPage/TableSetup';
import LoginPage from './page/LoginPage/LoginPage';

const router = createBrowserRouter([
  {
    path: '/',
    element: <TableSetup />,
  },
  {
    path: '/login',
    element: <LoginPage />,
  },
]);

export default router;

<main.tsx>

createRoot(document.getElementById('root')!).render(
  <StrictMode>
    <RouterProvider router={router} />
  </StrictMode>,
);

<App.tsx>

function App() {}

export default App;

🏞️ 스크린샷 (선택)

🗣️ 리뷰 요구사항 (선택)

  • Routing 설정 부분에서 수정할 부분 있으면 리뷰 부탁드립니다.

@eunwoo-levi eunwoo-levi added the feat 기능 개발 label Dec 22, 2024
@eunwoo-levi eunwoo-levi self-assigned this Dec 22, 2024
Copy link
Contributor

@jaeml06 jaeml06 left a comment

Choose a reason for hiding this comment

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

페이지라우터 설정확인했습니다.
BrowserRouter를 이용한 라우팅으로 해결해주네요.
혹시 BrowserRouter를 사용하신 이유가 있을까요?
리액트 라우터 v6.4버전 이상에서 부터 다른 라우터 방식도 제공하고 있습니다.
https://reactrouter.com/6.28.1/routers/picking-a-router
createBrowserRouter인데요. 공식 홈페이지에도 업데이트할 것을 권장하고 있습니다.

우리 프로젝트에서는

import { StrictMode } from 'react';
import { createRoot } from 'react-dom/client';
import { RouterProvider } from 'react-router-dom';
import './index.css';
import router from './router'; // 라우터 설정 파일을 분리

createRoot(document.getElementById('root')!).render(
  <StrictMode>
    <RouterProvider router={router} />
  </StrictMode>,
);
import { createBrowserRouter } from 'react-router-dom';
import TableSetup from './page/TableSetupPage/TableSetup';
import LoginPage from './page/LoginPage/LoginPage';

const router = createBrowserRouter([
  {
    path: '/',
    element: <TableSetup />,
  },
  {
    path: '/login',
    element: <LoginPage />,
  },
]);

export default router;

로 적용 가능할 것 같습니다.

엘 생각은 어떠신가요?

@eunwoo-levi
Copy link
Member Author

eunwoo-levi commented Dec 22, 2024

@jaeml06 답장해주셔서 감사합니다.

https://reactrouter.com/7.1.0/start/library/routing

최근까지 Next.js로 주로 서비스를 만들어와서 자동 Routing을 지원하는 이유로 'createBrowserRouter' 방식이 React 6.4 부터 지원되는 부분을 모르고있었네요.
이전에는 위 방법과 같은 방식으로 이전에 써왔었는데 치코님이 알려주신 방법이 프로젝트가 커지면 라우팅 설정을 더 잘 관리할 수 있는 장점이 있는 것 같습니다.

의견 반영하겠습니다. 감사합니다.

@jaeml06
Copy link
Contributor

jaeml06 commented Dec 22, 2024

@jaeml06 답장해주셔서 감사합니다.

https://reactrouter.com/7.1.0/start/library/routing

최근까지 Next.js로 주로 서비스를 만들어와서 자동 Routing을 지원하는 이유로 'createBrowserRouter' 방식이 React 6.4 부터 지원되는 부분을 모르고있었네요. 이전에는 위 방법과 같은 방식으로 이전에 써왔었는데 치코님이 알려주신 방법이 프로젝트가 커지면 라우팅 설정을 더 잘 관리할 수 있는 장점이 있는 것 같습니다.

의견 반영하겠습니다. 감사합니다.

넵 저도 최신 문서를 봤는데 64부터는 createBrowserRouter를 이용한 방식을 추천한다고 되어있는데 7.1.0문서에서는 해당 내용이 언급이 없어서 당황했네요. 설명도 기존의 방식으로 되어있고 createBrowserRouter가 사라진 것도 아니고 제대로 지원하는데 공식문서가 설명이 부족해서 좀 아쉽긴하더라고요.

Copy link
Contributor

@i-meant-to-be i-meant-to-be left a comment

Choose a reason for hiding this comment

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

확인했습니다! 카톡 남겨주신 대로 코드가 어렵지 않아서 이해가 가네요.
다만 지금 두 분 말씀 나누신 거 보면 다른 대안이 있어 보이는데, 일단 승인을 남기기는 하겠으나, 혹시라도 개선된 버전으로 수정이 진행될 예정이라면 추가로 리뷰 요청 남겨주시면 확인할 수 있도록 할게요.

- router.tsx 파일 생성하여 라우터 적용
- main.tsx 에서     <RouterProvider router={router} /> 적용
@eunwoo-levi
Copy link
Member Author

eunwoo-levi commented Dec 22, 2024

@jaeml06 반영해서 커밋하였습니다. 확인 부탁드립니다.

  • App.tsx파일은 사실 상 필요가 없어보이는데 빈 코드로 두는게 좋을까요?
  • 추가 커밋을 남겼으나 이상하게 이후 PR Commits 기록에 안남는 이유가 무엇인지 아실까요?
    레포에서 feat/[FEAT] 페이지 라우팅 설정 #21 브랜치에는 정상적으로 커밋이 된 것을 확인할 수 있습니다.

Copy link
Contributor

@jaeml06 jaeml06 left a comment

Choose a reason for hiding this comment

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

넵 확인했습니다. 반영감사합니다.
질문에 대한 답변드리겠습니다!

  • App파일 같은경우 불필요해졌으니 제거해도 된다고 생각합니다.
image PR commit기록이면 이것을 말하는 것인가요? 아니면 다른 것인가요?

src/route.tsx Outdated
},
]);

export default router; No newline at end of file
Copy link
Contributor

Choose a reason for hiding this comment

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

prettier에 eol설정되어있는데 혹시 prettier가 자동으로 적용되지 않는 것 같아요! 아니면 적용하지 않고 commit을 했거나...

Copy link
Member Author

Choose a reason for hiding this comment

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

prettier 적용하였습니다. 확인 다시 해주시면 감사하겠습니다.

Copy link
Contributor

Choose a reason for hiding this comment

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

확인했습니다.

@eunwoo-levi eunwoo-levi merged commit 9816577 into develop Dec 22, 2024
i-meant-to-be added a commit that referenced this pull request Jan 24, 2025
* 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>
jaeml06 added a commit that referenced this pull request Jan 30, 2025
* 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>
@i-meant-to-be i-meant-to-be mentioned this pull request Feb 3, 2025
@eunwoo-levi eunwoo-levi deleted the feat/#21 branch February 3, 2025 14:48
jaeml06 pushed a commit that referenced this pull request Feb 4, 2025
* 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 적용
jaeml06 added a commit that referenced this pull request Feb 4, 2025
* 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>
jaeml06 pushed a commit that referenced this pull request Feb 4, 2025
* 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 적용
jaeml06 added a commit that referenced this pull request Feb 4, 2025
* 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>
jaeml06 added a commit that referenced this pull request Feb 4, 2025
* 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: 닫…
jaeml06 pushed a commit that referenced this pull request Feb 4, 2025
* 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 적용
jaeml06 added a commit that referenced this pull request Feb 4, 2025
* 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>
jaeml06 pushed a commit that referenced this pull request Feb 4, 2025
* 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 적용
jaeml06 added a commit that referenced this pull request Feb 4, 2025
* 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>
jaeml06 added a commit that referenced this pull request Feb 4, 2025
* 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] 타임 테이블 구성 …
jaeml06 pushed a commit that referenced this pull request Feb 4, 2025
* 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 적용
jaeml06 added a commit that referenced this pull request Feb 4, 2025
* 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>
jaeml06 pushed a commit that referenced this pull request Feb 4, 2025
* 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 적용
jaeml06 added a commit that referenced this pull request Feb 4, 2025
* 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>
katie424 pushed a commit that referenced this pull request Jun 1, 2025
* 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>
katie424 pushed a commit that referenced this pull request Jun 1, 2025
* 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: 닫…
katie424 pushed a commit that referenced this pull request Jun 1, 2025
* 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 적용
katie424 pushed a commit that referenced this pull request Jun 1, 2025
* 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 적용
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feat 기능 개발

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants