import GenericPaymentApproval from 'src/components/generic-payment-approval';
import React from 'react';
import { AdvancePaymentDetails } from 'src/components/advance-detail/types';
import { useAdvancePaymentApproval } from 'src/components/advance-detail/advance-payment-approval/hooks/use-advance-payment-approval';

interface AdvancePaymentApprovalProps {
    setIsSidecarOpen: (open: boolean) => void;
    isSidecarOpen: boolean;
    paymentEntityDetails: AdvancePaymentDetails;
    paymentEntityId: string;
    onPaymentSent: () => void;
}

const AdvancePaymentApproval: React.FC<AdvancePaymentApprovalProps> = ({
    setIsSidecarOpen,
    isSidecarOpen,
    paymentEntityDetails,
    paymentEntityId,
    onPaymentSent,
}) => {
    const { stepsConfig, completedSteps } = useAdvancePaymentApproval({
        paymentEntityDetails,
        onPaymentSent,
    });

    return (
        <GenericPaymentApproval
            paymentEntityId={paymentEntityId}
            completedSteps={completedSteps}
            stepsConfig={stepsConfig}
            sidecarProps={{
                isOpen: isSidecarOpen,
                setIsOpen: setIsSidecarOpen,
            }}
        />
    );
};

export default AdvancePaymentApproval;
