npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

hook-simo-harry

v0.0.6

Published

card add form custom hook made by harry & simo

Downloads

4

Readme

hook-simo-harry Get Started

설치하기

npm install hook-simo-harry

사용예시

  • useCardNumbers
import React from "react";
import useCardNumbers from "hook-simo-harry";

const CardNumberForm = () => {
  const { cardNumbers, validationResult, handleCardNumberChange } = useCardNumbers();

  return (
    <form>
      <input
        key="your input key"
        name="your input name"
        value={cardNumbers.join("-")}
        onChange={(e) => handleCardNumberChange(e.target.value.replaceAll("-", ""))}
        placeholder="please enter your card number"
      />
      {validationResult.errorText && <p>{validationResult.errorText}</p>}
      <button type="submit" disabled={!validationResult.isValid}>
        Submit
      </button>
    </form>
  );
};

export default CardNumberForm;

반환값 설명

아래는 useCardNumbers 훅의 반환값을 설명하는 표입니다.

| Property | Type | Description | | ------------------------ | ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | cardNumbers | string[] | 각 카드 번호 부분의 값 카드 브랜드 포매팅 규칙에 맞게 포매팅한 후 결과를 을 배열로 제공합니다. ex) ['1234', '1234', '1234', '1234'] 배열로 제공된 값을 자유롭게 문자열로 다시 변경하거나 배열의 값 그대로 사용할 수 있습니다. ex) cardNumbers.join('-'); | | validationResult | { isValid: boolean; errorText: string; } | 카드 입력의 유효성 검사 결과를 포함합니다. | | handleCardNumberChange | function | 카드 번호 입력 필드의 변경을 처리하는 함수입니다. |

이 훅을 사용하면 각 카드 번호에 따라서 카드 브랜드를 판별할 수 있고, 그에 맞는 유효성 검증과 포매팅 규칙이 적용된 결과를 반환받을 수 있습니다.

Error Description

useCardNumbers 훅은

visa, master, diners, amex, unionpay 카드 브랜드 판단 기능을 제공합니다.
각 브랜드 입력 규칙에 맞지 않는 입력을 할 경우, 입력 규칙에 맞는 예외 피드백 메시지를 제공합니다. 다음은 각 브랜드 별 예외 피드백입니다.

| brand | rules | errorText | | :---------------------------: | :-----: | :----------------------------------------: | | visa | 4-4-4-4 | 4-4-4-4 형식의 16자리 숫자를 입력해 주세요 | | master | 4-4-4-4 | 4-4-4-4 형식의 16자리 숫자를 입력해 주세요 | | diners | 4-6-4 | 4-6-4 형식의 16자리 숫자를 입력해 주세요 | | amex | 4-6-5 | 4-6-5 형식의 16자리 숫자를 입력해 주세요 | | unionpay | 4-4-4-4 | 4-4-4-4 형식의 16자리 숫자를 입력해 주세요 | | none(해당 브랜드가 없는 경우) | 4-4-4-4 | 4-4-4-4 형식의 16자리 숫자를 입력해 주세요 |

추가로, 문자를 입력했을 경우애는 카드 번호의 입력을 막고 해당 규칙에 대한 예외 피드백을 제공합니다.

| rules | errorText | | :----------------: | :------------------: | | 문자를 입력한 경우 | 숫자를 입력해 주세요 |

  • useExpiryDate
import React from "react";
import useExpiryDate from "your-library-name";

const ExpiryDateForm = () => {
  const { expiryDate, isExpiryDateCompleted, errorState, errorText, handleExpiryDateChange } = useExpiryDate();

  return (
    <form>
      <input name="month" value={expiryDate.month} onChange={handleExpiryDateChange} placeholder="MM" />
      <input name="year" value={expiryDate.year} onChange={handleExpiryDateChange} placeholder="YY" />
      {errorText && <p>{errorText}</p>}
      <button type="submit" disabled={!isExpiryDateCompleted}>
        Submit
      </button>
    </form>
  );
};

export default ExpiryDateForm;

반환값 설명

아래는 useExpiryDate 훅의 반환값을 설명하는 표입니다.

| Property | Type | Description | | ------------------------ | -------------------------------- | -------------------------------------------------------------------------- | | expiryDate | Record<ExpiryDateKeys, string> | monthyear을 키로 하는 객체로, 각각 유효기간의 월과 년을 저장합니다. | | errorState | boolean | 각 유효기간 입력의 에러 상태를 표현하는 객체입니다. | | errorText | string | 입력 관련 에러 메시지를 제공합니다. | | handleExpiryDateChange | function | 유효기간 입력 필드의 변경을 처리하는 함수입니다. | | isExpiryDateCompleted | boolean | 모든 유효기간 필드(월과 년)가 입력되었는지 여부를 나타냅니다. |

이 훅을 사용함으로써 개발자는 카드 유효기간 입력 폼의 상태 관리와 유효성 검증을 쉽게 구현할 수 있습니다.

Error Description

useExpiryDate 훅은 카드 유효기간 입력에 대한 유효성 검증 기능을 제공합니다.
유효하지 입력을 할 경우, 각 입력 규칙에 맞는 예외 피드백 메시지를 제공합니다.
다음은 각 상황별 예외 피드백입니다.

| rules | errorText | | :--------------------------: | :-------------------------------------: | | 유효하지 않은 월 입력인 경우 | 월 입력은 01 ~ 12 사이의 입력이어야해요 | | 이미 지난 년도를 입력한 경우 | 이미 지난 년도는 입력할 수 없어요. | | 이미 지난 유효 기간인 경우 | 이미 지난 유효기간이에요 | | 문자를 입력한 경우 | 숫자를 입력해 주세요 |

  • useCardHolderName
import React from "react";
import useCardHolderName from "your-library-name";

const CardHolderNameForm = () => {
  const { holderName, errorState, errorText, handleCardHolderNameChange } = useCardHolderName();

  return (
    <form>
      <input type="text" value={holderName} onChange={handleCardHolderNameChange} placeholder="Card Holder Name" />
      {errorText && <p>{errorText}</p>}
      <button type="submit" disabled={errorState}>
        Submit
      </button>
    </form>
  );
};

export default CardHolderNameForm;

반환값 설명

아래는 useCardHolderName 훅의 반환값을 설명하는 표입니다.

| Property | Type | Description | | ---------------------------- | ---------- | ----------------------------------------------------------------------------------------------- | | holderName | string | 사용자가 입력한 카드 소유자의 이름입니다. 입력이 유효한 경우, 대문자로 변환됩니다. | | errorState | boolean | 현재 사용자 이름 입력에 오류가 있는지 여부를 나타내는 상태입니다. | | errorText | string | 입력과 관련된 오류 메시지를 제공합니다. | | handleCardHolderNameChange | function | 카드 소유자 이름 입력 필드의 변경을 처리하는 함수입니다. 입력이 유효하면 이름을 업데이트합니다. |

이 훅을 사용함으로써 개발자는 카드 소유자 이름 입력 폼의 유효성 검사 및 상태 관리를 쉽게 할 수 있습니다. 오류 메시지와 입력 상태 관리를 통해 사용자에게 적절한 피드백을 제공할 수 있습니다.

Error Description

useCardHolderName 훅은 카드 소유자 입력에 대한 유효성 검증 기능을 제공합니다.
유효하지 입력을 할 경우, 각 입력 규칙에 맞는 예외 피드백 메시지를 제공합니다.
다음은 각 상황별 예외 피드백입니다.

| rules | errorText | | :------------------------------: | :------------------------------------------: | | 유효하지 않은 사용자 입력인 경우 | 사용자 이름은 0 ~ 15자 사이의 영문이어야해요 | | 문자를 입력한 경우 | 숫자를 입력해 주세요 |

  • useCVCNumber
import React from "react";
import useCVC from "your-library-name";

const CVCNumberForm = () => {
  const { CVCNumber, errorState, errorText, handleCVCChange, isCVCNumberInputCompleted } = useCVCNumber();

  return (
    <form>
      <input type="text" value={CVCNumber} onChange={handleCVCChange} placeholder="CVC" maxLength={4} />
      {errorText && <p>{errorText}</p>}
      <button type="submit" disabled={!CVCNumber.length === 3 || errorState}>
        Submit
      </button>
    </form>
  );
};

export default CVCForm;

아래는 useCVCNumber 훅의 반환값을 설명하는 표입니다.

반환값 설명

| Property | Type | Description | | --------------------------- | ---------- | -------------------------------------------------------------------------------------- | | CVCNumber | string | 사용자가 입력한 카드의 CVC 코드입니다. | | errorState | boolean | 현재 입력에 오류가 있는지 여부를 나타내는 상태입니다. | | errorText | string | 입력과 관련된 오류 메시지를 제공합니다. | | handleCVCChange | function | CVC 입력 필드의 변경을 처리하는 함수입니다. 입력이 유효하면 CVC 코드를 업데이트합니다. | | isCVCNumberInputCompleted | boolean | CVC 번호가 모두 입력되었는지 여부를 나타냅니다. |

이 훅을 사용함으로써 개발자는 CVC 입력 폼의 유효성 검사 및 상태 관리를 쉽게 할 수 있습니다. 오류 메시지와 입력 상태 관리를 통해 사용자에게 적절한 피드백을 제공할 수 있습니다.

Error Description

useCVCNumber 훅은 CVC 번호에 대한 유효성 검증 기능을 제공합니다.
유효하지 입력을 할 경우, 각 입력 규칙에 맞는 예외 피드백 메시지를 제공합니다.
다음은 각 상황별 예외 피드백입니다.

| rules | errorText | | :-------------------------------: | :--------------------------: | | 3자리의 숫자를 입력하지 않은 경우 | 3자리의 숫자를 입력해 주세요 | | 문자를 입력한 경우 | 숫자를 입력해 주세요 |

  • useCardPassword
import React from "react";
import useCardPassword from "your-library-name";

const CardPasswordForm = () => {
  const { cardPassword, errorState, errorText, handleCardPasswordChange } = useCardPassword();

  return (
    <form>
      <input type="password" value={cardPassword} onChange={handleCardPasswordChange} placeholder="Card Password" />
      {errorText && <p>{errorText}</p>}
      <button type="submit" disabled={!cardPassword.length === 4 || errorState}>
        Submit
      </button>
    </form>
  );
};

export default CardPasswordForm;

아래는 useCardPassword 훅의 반환값을 설명하는 표입니다.

반환값 설명

| Property | Type | Description | | ------------------------------ | ---------- | ------------------------------------------------------------------------------------------------ | | cardPassword | string | 사용자가 입력한 카드의 비밀번호입니다. | | errorState | boolean | 현재 입력에 오류가 있는지 여부를 나타내는 상태입니다. | | errorText | string | 입력과 관련된 오류 메시지를 제공합니다. | | handleCardPasswordChange | function | 카드 비밀번호 입력 필드의 변경을 처리하는 함수입니다. 입력이 유효하면 비밀번호를 업데이트합니다. | | isCardPasswordInputCompleted | boolean | 카드 비밀번호가 모두 입력되었는지 여부를 나타냅니다. |

이 훅을 사용함으로써 개발자는 카드 비밀번호 입력 폼의 유효성 검사 및 상태 관리를 쉽게 할 수 있습니다. 오류 메시지와 입력 상태 관리를 통해 사용자에게 적절한 피드백을 제공할 수 있습니다.

Error Description

useCardPassword 훅은 카드 비밀번호 번호에 대한 유효성 검증 기능을 제공합니다.
유효하지 입력을 할 경우, 각 입력 규칙에 맞는 예외 피드백 메시지를 제공합니다.
다음은 각 상황별 예외 피드백입니다.

| rules | errorText | | :-------------------------------: | :--------------------------: | | 2자리의 숫자를 입력하지 않은 경우 | 2자리의 숫자를 입력해 주세요 | | 문자를 입력한 경우 | 숫자를 입력해 주세요 |