@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
32 lines (31 loc) • 1 kB
JavaScript
"use client";
import { openPreview } from "./viewer/registry.mjs";
import PreviewOutlet from "./viewer/PreviewOutlet.mjs";
import { useCallback, useMemo } from "react";
import { jsx } from "react/jsx-runtime";
//#region src/Image/useImagePreview.tsx
const useImagePreview = (elementRef, options) => {
const resolvedOptions = useMemo(() => ({
autoZoomThreshold: 2,
defaultZoom: "auto",
maxScale: 8,
...options
}), [options]);
return {
open: useCallback(() => {
const element = elementRef.current;
if (!element) return;
const active = document.activeElement;
openPreview({
element,
options: resolvedOptions,
previewSrc: resolvedOptions.src,
src: element.currentSrc || element.src
}, void 0, 0, active instanceof HTMLElement && active !== document.body ? active : null);
}, [elementRef, resolvedOptions]),
outlet: /* @__PURE__ */ jsx(PreviewOutlet, { elementRef })
};
};
//#endregion
export { useImagePreview };
//# sourceMappingURL=useImagePreview.mjs.map