1.1.3 • Published 10 months ago

phone-mask-uz v1.1.3

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

📱 Phone Mask UZ

✨ Features

  • 🎯 Automatic formatting for Uzbekistan phone numbers
  • ✅ Built-in validation
  • 🔄 Works with all UI libraries
  • 🎨 Fully customizable
  • 📦 Lightweight (< 5KB)
  • 💪 Written in TypeScript
  • ⚡ Easy to use

🚀 Installation

npm install phone-mask-uz
# Yarn
yarn add phone-mask-uz

# pnpm
pnpm add phone-mask-uz

💻 Usage

1️⃣ Basic Example

import PhoneNumber from 'phone-mask-uz';

function App() {
  const [phone, setPhone] = useState('');
  
  return (
    <PhoneNumber
      value={phone}
      onChange={(value, isValid) => setPhone(value)}
      placeholder="+998 __ ___ __ __"
    />
  );
}

2️⃣ With Ant Design

import PhoneNumber from 'phone-mask-uz';
import { Form, Input } from 'antd';

function App() {
  const [form] = Form.useForm();

  return (
    <Form form={form}>
      <Form.Item name="phone">
        <PhoneNumber
          inputComponent={Input}
          inputProps={{ size: 'large' }}
        />
      </Form.Item>
    </Form>
  );
}

Material-UI

import PhoneNumber from 'phone-mask-uz';
import { TextField } from '@mui/material';

function App() {
  return (
    <PhoneNumber
      inputComponent={TextField}
      inputProps={{ variant: 'outlined' }}
    />
  );
}

Chakra UI

import PhoneNumber from 'phone-mask-uz';
import { Input } from '@chakra-ui/react';

function App() {
  return (
    <PhoneNumber
      inputComponent={Input}
    />
  );
}

🎛 Props

Essential Props

PropTypeDefaultDescription
valuestring''Input value
onChange(value: string, isValid: boolean) => void-Callback when value changes
placeholderstring'+998 _ __ __'Input placeholder text
PropTypeDefaultDescription
errorstring | boolean-Error message or state
showErrorbooleantrueShow error state
inputComponentReact.ComponentType-Custom input component (Antd Input, MUI TextField)
inputPropsobject{}Props for input component
wrapperComponentReact.ComponentType-Wrapper component
wrapperPropsobject{}Props for wrapper component
disabledbooleanfalseDisable input
classNamestring''CSS class

🛠 Utility Functions

import { normalizePhoneNumber, isValidPhoneNumber } from 'phone-mask-uz';

// Format phone number
normalizePhoneNumber('998901234567'); // '+998 90 123 45 67'

// Validate phone number
isValidPhoneNumber('+998 90 123 45 67'); // true

✅ Validation

  • Must start with +998
  • Must be exactly 12 digits
  • Validation state returned through onChange callback

🎨 Formatting

Number format: +998 XX XXX XX XX

Example:

  • Input: 998901234567
  • Result: +998 90 123 45 67

🌐 Browser Support

  • Google Chrome
  • Mozilla Firefox
  • Safari
  • Microsoft Edge

🤝 Contributing

Contributions are welcome! Feel free to submit a Pull Request.

📄 License

MIT

1.1.3

10 months ago

1.1.1

10 months ago

1.1.0

10 months ago

1.0.9

10 months ago

1.0.8

10 months ago

1.0.7

10 months ago

1.0.5

10 months ago

1.0.0

10 months ago