Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@jae-o/hooks-module

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@jae-o/hooks-module

hooks module

latest
npmnpm
Version
1.0.4
Version published
Weekly downloads
32
190.91%
Maintainers
1
Weekly downloads
 
Created
Source

🧩 hooks module

React 프로젝트에서 결제 폼을 만들 때 사용할 수 있는 커스텀 훅 모음입니다.
카드 번호, 유효기간, CVC 등 다양한 입력 필드에 대해 유효성 검사와 상태 관리 기능을 함께 제공합니다.

✨ Features

  • 카드 정보 입력 필드별 상태유효성 검증 일괄 관리
  • 카드 브랜드(VISA, MasterCard 등) 자동 감지
  • 타입 안전한 TypeScript 기반
  • skipValidation 옵션 제공으로 유연한 상태 업데이트 가능

📦 Installation

npm i @jae-o/hooks-module

🧪 제공 훅 목록

  • useCardNumbers: 카드 번호 입력 (3~4칸) 상태 및 검증
  • useExpiryDate: 유효기간 (MM/YY) 입력 및 검증
  • useCVC: 카드 CVC 입력 및 검증

사용 예시: useCardNumbers

import { useCardNumbers } from '@jae-o/hooks-module';

function CardInputForm() {
  const { cardNumbers, validationResults, cardBrand, handleCardNumbersChange } =
    useCardNumbers([
      { name: 'part1', length: 4 },
      { name: 'part2', length: 4 },
      { name: 'part3', length: 4 },
      { name: 'part4', length: 4 },
    ]);

  return (
    <div>
      {(['part1', 'part2', 'part3', 'part4'] as const).map((key) => (
        <input
          key={key}
          value={cardNumbers[key]}
          onChange={(e) => handleCardNumbersChange(key, e.target.value)}
        />
      ))}
      <p>Detected Brand: {cardBrand}</p>
      <p>Error: {validationResults.part1.errorMessage}</p>
    </div>
  );
}

📘 API Reference

useCardNumbers

  • 카드 번호 입력 필드(3~4칸)의 상태와 유효성 검사, 카드 브랜드 감지를 지원합니다.
반환값타입설명
cardNumbersRecord<필드이름, string>입력된 카드 번호 값들
validationResultsRecord<필드이름, { isValid: boolean; errorMessage: string }>각 필드별 유효성 검사 결과
cardBrand'VISA' | 'MASTERCARD' | 'AMEX' | 'DINERS' | 'UNIONPAY' | 'UNKNOWN'카드 브랜드 감지 결과
handleCardNumbersChange({ key, value, options }: { key: 필드이름; value: string; options?: { skipValidation?: boolean } }) => void입력 변경 핸들러
getCardNumberValidationError(key: 필드이름, value: string) => 에러타입 | null카드 번호 조각 유효성 검사 함수

옵션 설명

  • skipValidation: true로 설정 시 유효성 오류가 있어도 값을 강제로 업데이트합니다. (자동완성, 서버 데이터 주입 시 유용)

useExpiryDate

  • 카드 유효기간(MM/YY) 입력을 관리하고, 만료 여부도 검증합니다.
반환값타입설명
expiryDate{ month: string; year: string }월/연도 입력 값
validationResultsRecord<'month' | 'year', ValidationResult>각 필드 유효성 결과
handleExpiryDateChange(key, value, options?) => void월 또는 연도 변경 핸들러
getExpiryDateValidationError(key, value) => 에러타입 | null포맷 검증 함수
getExpiryDateExpiredError(key, value, otherFields) => 에러타입 | null만료 여부 검증 함수

useCVC

  • 카드 CVC 입력 필드를 관리합니다.
반환값타입설명
CVCstring입력된 CVC 값
validationResult{ isValid: boolean; errorMessage: string }유효성 검사 결과
handleCVCChange(value, options?) => voidCVC 값 변경 핸들러
getCVCValidationError(value) => 에러타입 | null포맷 검증 함수

FAQs

Package last updated on 15 May 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts