1.1.3 • Published 8 months ago

phone-mask-uz v1.1.3

Weekly downloads
-
License
MIT
Repository
github
Last release
8 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

8 months ago

1.1.1

8 months ago

1.1.0

8 months ago

1.0.9

8 months ago

1.0.8

8 months ago

1.0.7

8 months ago

1.0.5

8 months ago

1.0.0

8 months ago