Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FE] feat: AI 채팅 구현 #185

Merged
merged 9 commits into from
Dec 5, 2023
Merged

Conversation

HBSPS
Copy link
Collaborator

@HBSPS HBSPS commented Dec 5, 2023

PR 설명

✅ 완료한 기능 명세

  • AI 채팅 구현
  • UI 수정
  • 채팅 소켓 에러 핸들링
  • 에러 토스트 추가

📸 스크린샷

image
image

고민과 해결과정

  • 토스트에서 남은 시간을 시각적으로 보여줄 수 있는 방법
    • error는 state로 관리되며 state의 수정에 따라 렌더링 또는 제거됨
    • 이 상태에서 3초 동안 토스트를 유지시키고 사라지게 하되, 좋은 UX를 위해 3초의 시간을 시각적으로 보여주고자 함
    • 최대한 기본 CSS만 사용할 수 있도록 하기 위해 @keyframes를 사용하도록 함
    import { ErrorData } from '@/types/chatting';
    
    interface ChattingErrorToastProps {
    errorData: ErrorData;
    setErrorData: React.Dispatch<React.SetStateAction<ErrorData | null>>;
    }
    
    export default function ChattingErrorToast({ errorData, setErrorData }: ChattingErrorToastProps) {
    return (
      <div className="absolute z-10 flex flex-col items-start w-full bottom-24 ">
        <div className="flex flex-col p-5 mb-5 ml-5 drop-shadow-lg bg-base">
          <span className="text-sm">{errorData.text1}</span>
          <span className="text-sm">{errorData.text2}</span>
          <div
            className="absolute bottom-0 left-0 flex-grow w-full h-2 bg-point-blue animate-[toast_3s_linear_forwards]"
            onAnimationEnd={() => setErrorData(null)}
          />
        </div>
      </div>
    );
    }
    toast: {
      '0%': { width: '100%' },
      '100%': { width: '0%' },
    },
    • onAnimationEnd 이벤트를 통해 애니메이션 종료를 감지할 수 있음
    • 해당 이벤트를 이용하여 애니메이션이 종료되면 state의 변경이 일어나고 토스트가 사라지도록 구성할 수 있었음

@HBSPS HBSPS added feature 기능 구현 FrontEnd 프론트엔드 관련 labels Dec 5, 2023
@HBSPS HBSPS requested a review from d0422 December 5, 2023 03:39
@HBSPS HBSPS self-assigned this Dec 5, 2023
Copy link
Collaborator

@d0422 d0422 left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Collaborator

Choose a reason for hiding this comment

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

요 svg는 사용하지 않는 것 같은데 삭제해도 괜찮을까요?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

넵 삭제했습니다!

@HBSPS HBSPS merged commit e633900 into boostcampwm2023:dev Dec 5, 2023
6 checks passed
@HBSPS HBSPS mentioned this pull request Dec 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature 기능 구현 FrontEnd 프론트엔드 관련
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[FE] AI 질문하기 기능 추가
2 participants