'use client';

import React, { type ReactNode } from 'react';
import { Button } from 'antd';
import { waygestFormModalFooterClassName } from '@/hooks/useWaygestFormModalProps';

export type WaygestFormModalFooterProps = {
    onCancel: () => void;
    submitLabel: string;
    loading?: boolean;
    cancelDisabled?: boolean;
    submitDisabled?: boolean;
    submitTestId?: string;
    cancelLabel?: string;
    /** Ações extras entre Cancelar e Salvar (ex.: "Limpar formulário"), agrupadas à direita. */
    children?: ReactNode;
    onSubmit?: () => void;
};

/**
 * Footer padrão Waygest para modais de cadastro/edição.
 * Cancelar à esquerda, Salvar à direita, mesma linha em todos os breakpoints (incl. mobile).
 */
export function WaygestFormModalFooter({
    onCancel,
    submitLabel,
    loading = false,
    cancelDisabled = false,
    submitDisabled = false,
    submitTestId,
    cancelLabel = 'Cancelar',
    children,
    onSubmit,
}: WaygestFormModalFooterProps) {
    return (
        <div className={waygestFormModalFooterClassName}>
            <Button onClick={onCancel} disabled={loading || cancelDisabled}>
                {cancelLabel}
            </Button>
            {children}
            <Button
                type="primary"
                loading={loading}
                disabled={submitDisabled}
                data-testid={submitTestId}
                onClick={onSubmit}
            >
                {submitLabel}
            </Button>
        </div>
    );
}
