import React from 'react';
import { toEnglishDigits } from '../../lib/utils';

interface DigitInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'type'> {
  value: string;
  onChange: (value: string) => void;
  /** حداکثر تعداد رقم (مثلاً ۱۱ برای موبایل، ۱۰ برای کد ملی). */
  maxDigits?: number;
}

/**
 * ورودیِ فقط-عددی که ارقام فارسی/عربی را همان لحظه به انگلیسی تبدیل می‌کند و هر
 * کاراکتر غیررقمی را حذف می‌کند؛ همیشه LTR و کیبورد عددی. مناسب شماره تماس و کد ملی.
 */
export default function DigitInput({ value, onChange, maxDigits, ...rest }: DigitInputProps) {
  const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
    let digits = toEnglishDigits(e.target.value).replace(/\D/g, '');
    if (maxDigits) digits = digits.slice(0, maxDigits);
    onChange(digits);
  };

  return (
    <input
      {...rest}
      value={value}
      onChange={handleChange}
      dir="ltr"
      inputMode="numeric"
      maxLength={maxDigits}
    />
  );
}
