import { useEffect } from 'react';

// Navegación por TAB desde el último control de la fila
export const LastCellTabHook = ({
    itemsLength,
    onTabFromLast,
}: {
    itemsLength: number;
    onTabFromLast: (row: number) => void;
}) => {
    useEffect(() => {
        const handler = (e: KeyboardEvent) => {
            if (e.key !== "Tab" || e.shiftKey) return;
            const target = e.target as HTMLElement | null;
            if (!target) return;
            const tr = target.closest<HTMLTableRowElement>("tr[data-row-index]");
            if (!tr) return;

            // Asumimos el trigger de impuestos como último focusable de la fila
            const isTaxTrigger = target.getAttribute("aria-label")?.toLowerCase().includes("tax");

            if (!isTaxTrigger) return;

            const rowIndex = Number(tr.dataset.rowIndex ?? -1);
            if (rowIndex >= 0) {
                e.preventDefault();
                onTabFromLast(rowIndex);
            }
        };
        document.addEventListener("keydown", handler);
        return () => document.removeEventListener("keydown", handler);
    }, [itemsLength, onTabFromLast]);
    return null;
}