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: 프론트엔드 home 기능 구현 #33

Merged
merged 17 commits into from
Nov 14, 2023

Conversation

d0422
Copy link
Collaborator

@d0422 d0422 commented Nov 13, 2023

PR 설명

프론트엔드 home 기능 구현

✅ 완료한 기능 명세

  • 홈화면 UI구현
  • 방 생성 구현
  • 홈화면 -> room 으로 넘어가는 로직 구현
  • 방 코드 입력부분에 입력하기 전까지 disable처리
  • 홈화면 UI반응형 어느정도 대응
  • home 컴포넌트 기능 테스트

📸 스크린샷

기본 접속시

image

방번호 입력시

image

방생성 버튼 클릭시

image

고민과 해결과정

useInput

input로직이 나중에도 필요할 수 있을 텐데 해당 로직에 필요한 훅을 모아서 useInput으로 만들어 주었다.

import { useState } from 'react';

export default function useInput(initialValue: string) {
  const [value, setValue] = useState(initialValue);

  const onChange = (event: React.ChangeEvent<HTMLInputElement>) => {
    if (event.target) setValue(event.target.value);
  };

  return { inputValue: value, onChange };
}

uuid

방을 어떻게 만들어 줄까하다가 uuid 라이브러리를 사용해서 처리해주었다

@d0422 d0422 added feature 기능 구현 FrontEnd 프론트엔드 관련 labels Nov 14, 2023
Copy link

@crongro crongro left a comment

Choose a reason for hiding this comment

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

tailwindcss 잘 활용해보세요~ 편리할듯.

@@ -0,0 +1,14 @@
import { ReactNode } from 'react';

export default function Button({ children, onClick, fontSize }: { children: ReactNode; onClick: () => void; fontSize: string }) {
Copy link

Choose a reason for hiding this comment

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

타입정의가 길면 type이나 interface로 선언~

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

type ButtonProps = {
  children: ReactNode;
  onClick: () => void;
  fontSize: string;
};

선언해주었습니다!

const [value, setValue] = useState(initialValue);

const onChange = (event: React.ChangeEvent<HTMLInputElement>) => {
if (event.target) setValue(event.target.value);
Copy link

Choose a reason for hiding this comment

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

해체할당문법으로 받기.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

    const {
      target: { value },
    } = event;

요런 형태로 개선해보았습니다!

@d0422 d0422 force-pushed the FE094/feature/home branch from 15d1df2 to 321dd29 Compare November 14, 2023 04:57
@d0422 d0422 self-assigned this Nov 14, 2023
@HBSPS HBSPS linked an issue Nov 14, 2023 that may be closed by this pull request
5 tasks
d0422 added 15 commits November 14, 2023 15:01
mainColor,backgroundColor,black,white 설정
main이미지 추가
html, body width, height설정
children, onClick, fontSize를 props로 받는 공용 컴포넌트인 Button컴포넌트 추가
Home화면 UI구성
(#32)
uuid 라이브러리 설치
uuid types설치
(#32)
방생성 버튼을 누르는 경우, UUID값에 따라 방을 새롭게 생성하고, 해당 방으로 이동하는 기능 구현
(#32)
input의 state, change함수를 추상화한 useInput 훅 추가
(#32)
방참가 입력값이 있는경우 참가 버튼에 불이 들어오는 기능 구현
input창에 입력한 방으로 이동하는 기능 구현
input창에 입력한 후 클릭하지 않고 enter를 눌러도 이동하는 기능 구현
(#32)
tailwind 반응형 기준 추가
(#32)
Home 로고 이미지 변경
모바일 반응형 대응
(#32)
useInput event 구조분해할당으로 코드 개선
(#32)
Button 공통 컴포넌트 props타입 명시
(#32)
input placeholder 추가
방생성 클릭시, uuid를 url로 갖는 새로운 방을 생성하고, 해당 방 url로 이동한다.
참가 클릭시, input입력창에 입력한 url을 가진 방으로 이동한다.
(#32)
@d0422 d0422 force-pushed the FE094/feature/home branch from 1518f10 to a491488 Compare November 14, 2023 06:01
불필요한 async await 구문삭제
Copy link
Collaborator

@HBSPS HBSPS left a comment

Choose a reason for hiding this comment

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

LGTM!

frontEnd/src/pages/Home.tsx Outdated Show resolved Hide resolved
100vh -> h-screen
100vw -> w-screen

Co-authored-by: Wiyeong Seo <[email protected]>
@d0422 d0422 merged commit 01b277a into boostcampwm2023:dev Nov 14, 2023
2 checks passed
@d0422 d0422 mentioned this pull request Nov 14, 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] 홈 화면 기능 구현
3 participants