"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useFocusInput = void 0;
const react_1 = require("react");
/**
 * предоставляет методы работы с фокусом на инпутах
 */
const useFocusInput = (codeLength, isAutoFocus) => {
    const inputRefs = (0, react_1.useRef)([]);
    /**
     * устанавливает фокус на инпуте
     */
    const setFocusIndex = (index) => {
        inputRefs.current[index].focus();
    };
    /**
     * устанавливает фокус на следующем инпуте
     */
    const setFocusIndexNext = (index) => {
        const lastIndexOfCode = codeLength - 1;
        if (index !== lastIndexOfCode) {
            setFocusIndex(index + 1);
        }
    };
    /**
     * устанавливает фокус на предыдущем инпуте
     */
    const setFocusIndexPrevious = (index) => {
        if (index !== 0) {
            setFocusIndex(index - 1);
        }
    };
    /**
     * вызывает блюр на всех инпутах
     */
    const setBlur = () => {
        inputRefs.current.forEach((elem) => elem.blur());
    };
    (0, react_1.useEffect)(() => {
        if (isAutoFocus) {
            setFocusIndex(0);
        }
    }, []);
    return {
        inputRefs,
        setFocusIndexNext,
        setFocusIndexPrevious,
        setBlur,
    };
};
exports.useFocusInput = useFocusInput;
