import React from 'react';
import { TimePicker, Form } from 'antd';
import type { TimePickerProps } from 'antd/es/time-picker';
import type { FormItemProps } from 'antd/es/form';

interface FormTimePickerProps extends Omit<TimePickerProps, 'name'> {
    name: string | (string | number)[];
    label?: string;
    required?: boolean;
    help?: string;
    format?: string;
    placeholder?: string;
    rules?: FormItemProps['rules'];
}

export default function FormTimePicker({
    name,
    label,
    required = false,
    help,
    format = 'HH:mm',
    placeholder = 'Selecione o horário',
    rules,
    ...timePickerProps
}: FormTimePickerProps) {
    const formRules = required
        ? [{ required: true, message: `${label || 'Campo'} é obrigatório` }, ...(rules || [])]
        : rules;

    return (
        <Form.Item name={name} label={label} rules={formRules} help={help}>
            <TimePicker
                format={format}
                placeholder={placeholder}
                style={{ width: '100%' }}
                {...timePickerProps}
            />
        </Form.Item>
    );
}
