'use client';

/**
 * Modal de Burndown da sprint — usa o componente Scrum já existente.
 */

import React from 'react';
import { Button, Modal } from 'antd';
import {
    mergeWaygestFormModalBodyStyles,
    useWaygestFormModalProps,
    waygestFormModalFooterClassName,
} from '@/hooks/useWaygestFormModalProps';
import BurndownSprint from '@/features/projetos/components/scrum/BurndownSprint/BurndownSprint';

export interface ModalSprintBurndownProps {
    open: boolean;
    onClose: () => void;
    sprintId: string;
    sprintNome?: string | null;
}

export function ModalSprintBurndown({
    open,
    onClose,
    sprintId,
    sprintNome,
}: ModalSprintBurndownProps) {
    const formModalLayout = useWaygestFormModalProps();
    const sprintIdSafe = sprintId.trim();

    return (
        <Modal
            title={sprintNome?.trim() ? `Burndown — ${sprintNome}` : 'Burndown da sprint'}
            data-testid="projeto-sprint-burndown-modal"
            open={open}
            onCancel={onClose}
            footer={
                <div className={waygestFormModalFooterClassName}>
                    <Button type="primary" onClick={onClose}>
                        Fechar
                    </Button>
                </div>
            }
            width={formModalLayout.width ?? 860}
            centered={formModalLayout.centered ?? true}
            className={formModalLayout.className}
            zIndex={formModalLayout.zIndex}
            styles={mergeWaygestFormModalBodyStyles(formModalLayout)}
            destroyOnHidden
            keyboard
            focusTriggerAfterClose
        >
            {open && sprintIdSafe ? <BurndownSprint sprintId={sprintIdSafe} /> : null}
        </Modal>
    );
}
