thinkanddoit / coupang-clone-2

쿠팡 클론 코딩을 통한 좋은 코드 작성하는 능력 기르기
0 stars 0 forks source link

탄력적 대응가능한 컴포넌트 설계하기 #8

Open thinkanddoit opened 1 year ago

thinkanddoit commented 1 year ago

미션 : 탄력적 대응가능한 컴포넌트 설계하기

세부 사항

만들어볼 컴포넌트

  1. Button image

(위의 유즈케이스만 고려)

  1. 일반적인 button element
  2. form의 submit
  3. a tag를 이용한 페이지 라우팅 (next/link 사용)

위 유즈케이스들을 대응하기 위해 Button 컴포넌트가 어떻게 대응해야할지 아래와 같은 pseudo code를 작성하며 고민하자.

// 일반적인 button element
const addToCart = () => {};

return (
    <Button
        // 어떤 prop들을 어떻게 활용하면 좋을지 작성해보세요
    />
);

이후엔 정해진 인터페이스에 맞게 Button 컴포넌트를 구현해보자.

  1. Input image image image
  1. react-hook-form의 register를 사용할 수 있어야 한다.
  2. focus시 border-bottom이 파란색으로, error시 빨간색으로 바뀐다.
  3. 좌측에 icon이 표시된다.
  4. invalid한 값 입력 시 적절한 에러 메세지를 보여준다.
  5. 필요 시 autoComplete도 사용할 수 있다. (마지막 스크린샷 참고)
import { useForm } from "react-hook-form"

import { Input } from "../components/common"

const Login: NextPage = () => {
  const { register } = useForm();

  return (
        <Input
            {...register("email")}
            // 어떤 prop이 추가로 필요할까요?
        />
    )
}

  1. Check, CheckGroup image

Page에 적용

Storybook을 설치하고 Chromatic으로 배포하기

어떻게 해결 할것인가

ToDo List