Skip to content

Conversation

@eunwoo-levi
Copy link
Member

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

🚩 연관 이슈

closed #25

📝 작업 내용

  1. TableListPage.tsx - 전체적인 테이블 목록화면 (백엔드 API 연동 전, dummy data로 대체)
import DefaultLayout from '../../layout/defaultLayout/DefaultLayout';
import { TableProps } from '../../type/type';
import AddTable from './components/AddTable';
import Table from './components/Table';

const data = [
  { name: '테이블1', type: '의회식 토론', time: 30 },
  { name: '테이블 2', type: '의회식 토론', time: 30 },
  { name: '테이블 3', type: '의회식 토론', time: 30 },
  { name: '테이블 4', type: '의회식 토론', time: 30 },
];

export default function TableListPage() {
  return (
    <DefaultLayout>
      <DefaultLayout.Header>
        <DefaultLayout.Header.Left>테이블 목록화면</DefaultLayout.Header.Left>
      </DefaultLayout.Header>
      <div className="flex h-screen flex-col px-4 py-6">
        <main className="grid grid-cols-3 justify-items-center gap-6">
          {data.map((table: TableProps, idx: number) => (
            <Table
              key={idx}
              name={table.name}
              type={table.type}
              time={table.time}
            />
          ))}
          <AddTable />
        </main>
      </div>
    </DefaultLayout>
  );
}
  1. Table.tsx - 생성된 테이블 컴포넌트 (클릭 시 찬성/반대 테이블 생성 페이지인 '/' 페이지 이동)
import { useNavigate } from 'react-router-dom';
import { TableProps } from '../../../type/type';

export default function Table({ name, type, time }: TableProps) {
  const navigate = useNavigate();

  const handleClick = () => {
    navigate('/');
  };

  return (
    <button
      onClick={handleClick}
      className="flex h-[200px] w-[500px] flex-col items-center rounded-md bg-amber-500 p-5 duration-200 hover:scale-105"
    >
      <h1 className=" text-5xl font-semibold">{name}</h1>
      <div className="flex w-full flex-grow flex-col items-start justify-center text-2xl font-semibold">
        <h1>유형 : {type}</h1>
        <h1>소요시간 : {time}</h1>
      </div>
    </button>
  );
}
  1. AddTable.tsx - 테이블 추가 컴포넌트 (클릭 시 모달 생성)
import { useState } from 'react';
import CreateTableModal from './Modal/CreateTableModal';

export default function AddTable() {
  const [isOpen, setIsOpen] = useState(false);

  const handleClick = () => {
    setIsOpen(!isOpen);
  };

  return (
    <>
      <button
        onClick={handleClick}
        className="flex h-[200px] w-[500px] items-center justify-center rounded-md bg-neutral-300 text-4xl font-bold duration-200 hover:scale-105"
      >
        +
      </button>
      <CreateTableModal isOpen={isOpen} onClose={() => setIsOpen(false)} />
    </>
  );
}




  • 이후 Modal 부분
  1. CreateTableModal - 테이블 생성 모달 컴포넌트
import { useEffect } from 'react';
import ToggleForDebateType from './ToggleForDebateType';
import CreateTableButton from './CreateTableButton';
import { ModalProps } from '../../../../type/type';

export default function CreateTableModal({ isOpen, onClose }: ModalProps) {
  useEffect(() => {
    const handleEsc = (e: KeyboardEvent) => {
      if (e.key === 'Escape') {
        onClose();
      }
    };

    window.addEventListener('keydown', handleEsc);
    return () => window.removeEventListener('keydown', handleEsc);
  }, [onClose]);

  if (!isOpen) return null;

  return (
    <div className="fixed inset-0 z-50 flex items-center justify-center bg-black/50">
      <div className="relative flex h-[800px] w-[1200px] flex-col bg-white">
        <div className="flex h-[100px] items-center justify-center bg-neutral-300 text-5xl font-semibold">
          <h1>어떤 토론을 원하시나요?</h1>
          <button
            onClick={onClose}
            className="absolute right-2 top-2 text-4xl font-semibold hover:scale-110"
          >
            X
          </button>
        </div>
        <section className="flex flex-1 flex-col justify-center gap-14 p-6">
          <div className="flex items-center justify-center gap-4">
            <h1 className="w-[400px] text-5xl font-bold">토론 시간표 이름</h1>
            <input
              placeholder="시간표#1(디폴트 값)"
              className="w-[600px] rounded-md bg-neutral-300 p-6 text-center text-3xl font-semibold text-white placeholder-white"
            />
          </div>
          <div className="flex items-center justify-center gap-4">
            <h1 className="w-[400px] text-5xl font-bold">토론 유형</h1>
            <ToggleForDebateType />
          </div>
        </section>
        <CreateTableButton />
      </div>
    </div>
  );
}
  1. ToggleForDebateType.tsx - 토론 유형 토글 컴포넌트 ( 의회식 토론, 시간 총량제 토론 선택 )
import { useNavigate } from 'react-router-dom';

export default function CreateTableButton() {
  const navigate = useNavigate();

  const handleClick = () => {
    navigate('/');
  };

  return (
    <button
      onClick={handleClick}
      className="h-[80px] w-full bg-amber-500 text-4xl font-semibold transition duration-300 hover:bg-red-300"
    >
      테이블 만들기
    </button>
  );
}
  1. CreateTableButton.tsx - 토글 안, 테이블 만들기 버튼 컴포넌트 (클릭 시 찬성/반대 테이블 생성 페이지인 '/' 페이지 이동)
import { useNavigate } from 'react-router-dom';

export default function CreateTableButton() {
  const navigate = useNavigate();

  const handleClick = () => {
    navigate('/');
  };

  return (
    <button
      onClick={handleClick}
      className="h-[80px] w-full bg-amber-500 text-4xl font-semibold transition duration-300 hover:bg-red-300"
    >
      테이블 만들기
    </button>
  );
}



<리뷰 적용 후 변경 사항>

  1. useModal 에 esc 닫기 기능 추가
  useEffect(() => {
    const handleEsc = (e: KeyboardEvent) => {
      if (e.key === 'Escape') {
        closeModal();
      }
    };

    window.addEventListener('keydown', handleEsc);
    return () => window.removeEventListener('keydown', handleEsc);
  }, [closeModal]);
  1. useModal 훅 이용하여 기존 Modal 리팩토링
import ToggleForDebateType from './ToggleForDebateType';
import CreateTableButton from './CreateTableButton';

interface ModalProps {
  closeModal: () => void;
  ModalWrapper: ({
    children,
  }: {
    children: React.ReactNode;
  }) => JSX.Element | null;
}

export default function CreateTableModal({ ModalWrapper }: ModalProps) {
  return (
    <ModalWrapper>
      <div className="flex h-[700px] w-full flex-col">
        <div className="flex h-[100px] items-center justify-center bg-neutral-300 text-5xl font-semibold">
          <h1>어떤 토론을 원하시나요?</h1>
        </div>
        <section className="flex flex-1 flex-col justify-center gap-14 p-6">
          <div className="flex items-center justify-center gap-4">
            <h1 className="w-[400px] text-5xl font-bold">토론 시간표 이름</h1>
            <input
              placeholder="시간표#1(디폴트 값)"
              className="w-[600px] rounded-md bg-neutral-300 p-6 text-center text-3xl font-semibold text-white placeholder-white"
            />
          </div>
          <div className="flex items-center justify-center gap-4">
            <h1 className="w-[400px] text-5xl font-bold">토론 유형</h1>
            <ToggleForDebateType />
          </div>
        </section>
        <CreateTableButton />
      </div>
    </ModalWrapper>
  );
}
import CreateTableModal from './Modal/CreateTableModal';
import { useModal } from '../../../hooks/useModal';

export default function AddTable() {
  const { openModal, closeModal, ModalWrapper } = useModal();

  return (
    <>
      <button
        onClick={openModal}
        className="flex h-[200px] w-[500px] items-center justify-center rounded-md bg-neutral-300 text-4xl font-bold duration-200 hover:scale-105"
      >
        +
      </button>
      <CreateTableModal closeModal={closeModal} ModalWrapper={ModalWrapper} />
    </>
  );
}

🏞️ 스크린샷 (선택)

  • 테이블 목록 화면
    image

  • 테이블 추가 버튼 클릭 시 모달
    image

  • 토론 유형 선택 토글
    image

image

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

  • 백엔드 API 연동 하기 전 dummy data로 대체하였습니다. 이후 API 연결이 되면 추가 코드를 작성할 예정입니다.
  • 이후 StoryBook UI 테스트코드를 추가할 예정입니다.
  • 추가할 부분이나 수정할 부분 있으면 리뷰 부탁드립니다.

@eunwoo-levi eunwoo-levi added the feat 기능 개발 label Dec 25, 2024
@eunwoo-levi eunwoo-levi self-assigned this Dec 25, 2024
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.

확인했습니다! 디자인에 조금의 피드백이 있는데요. 테이블 추가 모달에서, 모달을 닫는 X 버튼이 헤더의 중간 높이에 있으면 좋을 거 같아요! 그 외에는 별도 피드백 없습니다.

그리고 이거는 개인적으로 궁금한 부분인데요, 치코님과 엘님 모두 페이지 간 매개변수를 넘길 때 interface SomePageProps { ... } 이런 식으로 래핑해서 넘겨주시던데, React에서는 이게 국룰인가요?

@eunwoo-levi
Copy link
Member Author

@i-meant-to-be 디자인 피드백 반영해서 수정하였습니다! 수정한 내용도 PR 내용에 추가하였습니다.

@eunwoo-levi
Copy link
Member Author

eunwoo-levi commented Dec 25, 2024

@i-meant-to-be React에서는 TypeScript를 사용할 때 props 타입을 정의하는 건 거의 관례처럼 쓰이고 있습니다. TypeScript를 사용한다면 매개변수에 타입을 명시하는 것이 필수인데, 팀 스타일에 따라 type을 쓰기도 하지만, interface는 주로 재사용성과 확장성을 중시할 때 더 선호됩니다. 또한, 추가적으로 코드들를 깔끔하고 명료하게 하기 위해서 매개변수 타입들은 type 디렉토리 안에 type.ts 파일에 type들을 다 작성하여 필요로 하는 위치에 import하는 방식으로 타입들을 지정해주고 있습니다!

src/type/type.ts Outdated
Comment on lines 28 to 37

export interface TableProps {
name: string;
type: string;
time: number;
}

export interface ModalProps {
isOpen: boolean;
onClose: () => void;
Copy link
Contributor

Choose a reason for hiding this comment

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

(권장)
개인적으로 컴포넌트의 props는 따로 파일을 분리하는 것보다 같은 파일에서 관리하는 것이 유지보수에 용이했던 기억이 있습니다. 따로 두면 타입 확인도 쉽지 않고 컴포넌트 타입이여서 다른 곳에서 사용하는 일도 거의 없더라고요.

Copy link
Member Author

Choose a reason for hiding this comment

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

ModalProps는 CreateTableModal 컴포넌트에만 쓰이기 때문에 따로 두지않고 피드백 반영해서 수정하였습니다.
TableProps같은 경우는 TableListPage 와 Table컴포넌트 모두 쓰이기 때문에 type 파일에 두었는데 어떻게 생각하시나요?

Copy link
Contributor

Choose a reason for hiding this comment

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

다만 이럴경우 뒤의 Pros라는 단어보다는 그냥 Table 이라는 단어나 다른 단어로 사용하는 것이 좋아보이네요. props인데

  {data.map((table: TableProps, idx: number) => (
            <Table
              key={idx}
              name={table.name}
              type={table.type}
              time={table.time}
            />
          ))}

pros로는 사용하지 않아서 어색하네요

Copy link
Contributor

@jaeml06 jaeml06 Dec 25, 2024

Choose a reason for hiding this comment

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

제가 저번 프로젝트에서 useModal이라는 훅을 만들어서 모달을 띄울 수 있게 만들었는데 혹시 useModal을 사용하지 않고 자체적으로 Modal을 만드신 이유가 있을까요? 혹시 이용하는데 어려움이 있으셔서 사용하지 않으셨나요? 만약 사용에 어려움이 있었다면 피드백 반영해서 개선하도록 하겠습니다.

Copy link
Contributor

Choose a reason for hiding this comment

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

참고로 현재 최상단에
image
이유는 모르겠지만 GlobalPortal이 사라져있어서 위와 같이 선언해주어여 useModal이 사용 가능합니다.

Copy link
Member Author

@eunwoo-levi eunwoo-levi Dec 25, 2024

Choose a reason for hiding this comment

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

useModal를 이전에 사용하려고 시도했으나 제대로 동작이 안되는 부분이 있어서 일단 Modal을 직접 구현하였는데, 알려주신 부분을 고려해서 useModal를 이용하여 구현해보겠습니다. (아마 말씀해주신대로 GlobalPortal 문제였던 것 같습니다.)

Copy link
Contributor

Choose a reason for hiding this comment

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

제가 제대로 확인했어야 했는데 죄송하네요. 병합과정에서 사라진 것 같습니다. 추가적으로 esc를 눌렀을 때 모달이 닫히게 하는 로직은 좋다고 생각합니다. 반영하고 싶으시다면 useModal을 수정해서 개선하셔도 됩니다.

Copy link
Member Author

@eunwoo-levi eunwoo-levi Dec 25, 2024

Choose a reason for hiding this comment

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

useModal 이용하여 기존에 구현한 Modal을 리팩토링 하였습니다.
기존 구현해주신 useModal 커스텀 훅에서 ESC 닫기 기능 추가하였고, p-5 CSS 부분은 제가 구현하려고 한 Modal 스타일이랑 맞지 않아서 제거하여 재사용성을 더 용이하도록 하였습니다.
대신, 치코님이 기존에 구현해두신 TimerCreationContent 컴포넌트에 최상위 div 태그에 <div className="p-10">
padding을 증가시켜 구현해놓으신 코드가 지장이 없도록 하였습니다.

추가적으로 닫기 'X' 버튼의 absolute Top 위치를 조정시키고 사이즈를 더 늘려 가독성을 늘렸습니다.

필요한 부분 있으시면 피드백 부탁드립니다.
감사합니다!

Copy link
Contributor

Choose a reason for hiding this comment

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

디자인적인 부분은 개인취향이 반영된 것이라 나중에 다시 한번 팀원들과 합의해보면되니 괜찮습니다. 나중에 x 글자는 이미지 파일로 변경할 필요가 있어보여서 후에 다시 개선해보독해죠. p-10으로 늘리니 제가 사용하는 곳에서 디자인이 살짝 이상해보여서 후에 개선이 필요해보이긴하네요

Copy link
Member Author

@eunwoo-levi eunwoo-levi Dec 26, 2024

Choose a reason for hiding this comment

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

전체적인 Table 컴포넌트와, Modal 컴포넌트 모두 Responsive 한 UI로 리팩토링 완료하였습니다.

src/type/type.ts Outdated
Comment on lines 25 to 27
url: string;
title: string;
}
Copy link
Contributor

Choose a reason for hiding this comment

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

이부분도 위치 변경이 필요해보이네요

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.

넵 확인했습니다. UI 수정하느라 고생하셨습니다.
approve드리도록히겠습니다.

제가 하나 의견 달아둔 것만 확인하시고 merage하셔도 괜찮을 것 같습니다.

Comment on lines 12 to 17
export interface TableProps {
name: string;
type: string;
time: number;
}

Copy link
Contributor

Choose a reason for hiding this comment

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

(권장)
제 의도가 잘못전달 된 것 같네요.
TableProps의 위치자체는 type에 있는 것이 좋으나 네이밍이 Props가 뒤에 붙어서 어울리지 않는다는 이야기 였습니다.

type.ts

export interface Table {
  name: string;
  type: string;
  time: number;
}

로 선언해주고

table.tsx에서

export interface TableProps extends Table {}

로 사용해주면
같은 타입이 중복되는 일도 없어지고

          {data.map((table: Table, idx: number) => (
            <Table
              key={idx}
              name={table.name}
              type={table.type}
              time={table.time}
            />
          ))}

map에서 사용된 타입되 Props가 없고 Table로 네이밍되어있는 것이 좋아보인다는 의견이 였습니다.

같은 타입이 두번 선언되었으면 나중에 타입이 추가되거나 변경되었을 때 두 곳 전부를 수정해야해서 귀찮을 수 있습니다.

Copy link
Contributor

Choose a reason for hiding this comment

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

결국 table도 서버에서 받아와야하니 이때 받아오는 데이터도 Table[] 타입일테니 재사용가능한 type.ts에 두는 것이 좋아보여서 의견드린거였습니다.

Copy link
Member Author

Choose a reason for hiding this comment

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

제가 이전 리뷰를 잘못 이해했었네요. 리뷰 감사합니다. 수정 후 Merge하였습니다.

@eunwoo-levi eunwoo-levi merged commit e271b4c into develop Dec 26, 2024
1 check passed
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/#25 branch February 3, 2025 14:48
jaeml06 pushed a commit that referenced this pull request Feb 4, 2025
* 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네이밍 변경
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
* 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네이밍 변경
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
* 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네이밍 변경
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
* 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네이밍 변경
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
* 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네이밍 변경
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
* 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네이밍 변경
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
* 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네이밍 변경
katie424 pushed a commit that referenced this pull request Jun 1, 2025
* 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네이밍 변경
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feat 기능 개발

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT] 테이블 목록화면 구현

4 participants