import { useEffect, useState } from 'react';
import { getDOMRect } from "../../../lib/dom/getDOMRect";

/**
 * Вычисляет положение `GlobalLoader`
 *
 * @param ref - ref `GlobalLoader`
 * @returns - возвращает положение полоски `GlobalLoader`
 */

export var useGlobalLoaderPosition = function useGlobalLoaderPosition(ref) {
  var _getDOMRect = getDOMRect(ref),
    left = _getDOMRect.left;
  return {
    left: left
  };
};

/**
 * Вычисляет ширину `GlobalLoader`
 *
 * @param status - статус `GlobalLoader`
 * @param ref - ref `GlobalLoader`
 * @returns - возвращает ширину полоски `GlobalLoader`
 */

export var useGlobalLoaderWidth = function useGlobalLoaderWidth(status, ref) {
  var _ref$current;
  var _getDOMRect2 = getDOMRect(ref),
    width = _getDOMRect2.width;
  var _useState = useState(0),
    startWidth = _useState[0],
    setStartWidth = _useState[1];
  var fullWidth = ((_ref$current = ref.current) == null || (_ref$current = _ref$current.parentElement) == null ? void 0 : _ref$current.offsetWidth) || 0;
  useEffect(function () {
    if (status === 'error') {
      setStartWidth(width);
    } else if (status === 'accept') {
      setStartWidth(startWidth);
    } else {
      setStartWidth(0);
    }
  }, [status]);
  return {
    width: width,
    startWidth: startWidth,
    fullWidth: fullWidth
  };
};