Ellie UI

Input

Usage

import { Input } from "@ellie-ui/core";

export const Example = () => {
  return (
    <Input placeholder="텍스트를 입력해주세요" />
  )
}

Disabled

import { Input } from "@ellie-ui/core";

export const Example = () => {
  return (
    <Input placeholder="텍스트를 입력해주세요" disabled />
  )
}

Read Only

import { Input } from "@ellie-ui/core";

export const Example = () => {
  return (
    <Input defaultValue="nononcrust@gmail.com" readOnly />
  )
}

Invalid

import { Input } from "@ellie-ui/core";

export const Example = () => {
  return (
    <Input placeholder="텍스트를 입력해주세요" invalid />
  )
}

Controlled

import { Input } from "@ellie-ui/core";
import { useInput } from "@ellie-ui/core/hooks";

export const Example = () => {
  const input = useInput()

  return (
    <Input
      value={input.value}
      onChange={input.onChange}
      placeholder="텍스트를 입력해주세요"
    />
  )
}

With Form

이메일을 입력해주세요

import { Button, Form, Input } from "@ellie-ui/core";
import { zodResolver } from "@hookform/resolvers/zod";
import { useForm } from "react-hook-form";
import { z } from "zod";

type EmailForm = z.infer<typeof EmailForm>;
const EmailForm = z.object({
  email: z.email({ message: "올바른 이메일 형식을 입력해주세요" })
})

export const Example = () => {
  const form = useForm<EmailForm>({
    resolver: zodResolver(EmailForm),
    defaultValues: {
      email: "",
    },
  })

  const onSubmit = form.handleSubmit(() => {})

  return (
  <Form onSubmit={onSubmit}>
    <Controller
      name="email"
      control={form.control}
      render={({ field, fieldState }) => (
        <Form.Field invalid={fieldState.invalid}>
          <Form.Label>이메일</Form.Label>
          <Form.Control>
            <Input {...field} placeholder="이메일을 입력해주세요" />
          </Form.Control>
          <Form.Description>이메일을 입력해주세요</Form.Description>
          <Form.ErrorMessage>{fieldState.error?.message}</Form.ErrorMessage>
        </Form.Field>
      )}
    />
    <Button className="mt-4" type="submit">
      제출하기
    </Button>
  </Form>
  )
}

API

Input Props

Prop

Type