var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var stdin_exports = {};
__export(stdin_exports, {
  default: () => stdin_default
});
module.exports = __toCommonJS(stdin_exports);
var import_react = require("react");
var import__ = require(".");
var import_useIntersectionObserver = __toESM(require("./useIntersectionObserver"));
const defaultObserverOptions = {
  threshold: [0, 1]
};
const useImageVisible = (observerOptions = defaultObserverOptions, errorImage) => {
  const [isLoaded, setIsLoaded] = (0, import_react.useState)(false);
  const handleIntersection = (0, import_react.useCallback)(
    (entries) => {
      entries.filter((entry) => entry.isIntersecting).forEach((entry) => {
        const target = entry.target;
        const url = target.dataset.src || "";
        (0, import__.loadImage)(url).catch(() => {
          (0, import__.setImage)(target, errorImage);
          (0, import__.addCssClassName)(target, "rc-lazyload__error");
          target.setAttribute("lazy", "error");
        }).then((imagePath) => {
          (0, import__.setImage)(target, imagePath);
          setIsLoaded(true);
          (0, import__.addCssClassName)(target, "rc-lazyload__loaded");
          target.setAttribute("lazy", "loaded");
          target.removeAttribute("data-src");
        });
      });
    },
    [setIsLoaded, isLoaded]
  );
  const ref = (0, import_useIntersectionObserver.default)(observerOptions, handleIntersection);
  return [ref, isLoaded];
};
var stdin_default = useImageVisible;
