Files
video-gen/video-gen-admin/node_modules/antd/es/image/hooks/useMergedPreviewConfig.js
T
2026-05-25 17:08:18 +08:00

37 lines
1.5 KiB
JavaScript

import React from 'react';
import { clsx } from 'clsx';
import { useMergedMask, useZIndex } from '../../_util/hooks';
import { getTransitionName } from '../../_util/motion';
const useMergedPreviewConfig = (previewConfig, contextPreviewConfig, prefixCls, mergedRootClassName, getContextPopupContainer, icons, defaultCover) => {
const [zIndex] = useZIndex('ImagePreview', previewConfig?.zIndex);
const [mergedPreviewMask, blurClassName] = useMergedMask(previewConfig?.mask, contextPreviewConfig?.mask, `${prefixCls}-preview`);
return React.useMemo(() => {
if (!previewConfig) {
return previewConfig;
}
const {
cover,
getContainer,
closeIcon,
rootClassName: previewRootClassName
} = previewConfig;
const {
closeIcon: contextCloseIcon
} = contextPreviewConfig ?? {};
return {
motionName: getTransitionName(`${prefixCls}-preview`, 'fade'),
...previewConfig,
...(defaultCover ? {
cover: cover ?? defaultCover
} : {}),
icons,
getContainer: getContainer ?? getContextPopupContainer,
zIndex,
closeIcon: closeIcon ?? contextCloseIcon,
rootClassName: clsx(mergedRootClassName, previewRootClassName),
mask: mergedPreviewMask,
blurClassName: blurClassName.mask
};
}, [previewConfig, contextPreviewConfig, prefixCls, mergedRootClassName, getContextPopupContainer, defaultCover, icons, zIndex, mergedPreviewMask, blurClassName]);
};
export default useMergedPreviewConfig;