import CloseOutlined from '@ant-design/icons/CloseOutlined'; import LeftOutlined from '@ant-design/icons/LeftOutlined'; import RightOutlined from '@ant-design/icons/RightOutlined'; import RotateLeftOutlined from '@ant-design/icons/RotateLeftOutlined'; import RotateRightOutlined from '@ant-design/icons/RotateRightOutlined'; import SwapOutlined from '@ant-design/icons/SwapOutlined'; import ZoomInOutlined from '@ant-design/icons/ZoomInOutlined'; import ZoomOutOutlined from '@ant-design/icons/ZoomOutOutlined'; import RcImage from 'rc-image'; import type { GroupConsumerProps } from 'rc-image/lib/PreviewGroup'; import React from 'react'; import classNames from 'classnames'; import { ConfigContext } from '../config-provider'; import { getTransitionName } from '../_util/motion'; // CSSINJS import useStyle from './style'; export const icons = { rotateLeft: , rotateRight: , zoomIn: , zoomOut: , close: , left: , right: , flipX: , flipY: , }; const InternalPreviewGroup: React.FC = ({ previewPrefixCls: customizePrefixCls, preview, ...props }) => { const { getPrefixCls } = React.useContext(ConfigContext); const prefixCls = getPrefixCls('image', customizePrefixCls); const previewPrefixCls = `${prefixCls}-preview`; const rootPrefixCls = getPrefixCls(); const [wrapSSR, hashId] = useStyle(prefixCls); const mergedPreview = React.useMemo(() => { if (preview === false) { return preview; } const _preview = typeof preview === 'object' ? preview : {}; const mergedRootClassName = classNames(hashId, _preview.rootClassName ?? ''); return { ..._preview, transitionName: getTransitionName(rootPrefixCls, 'zoom', _preview.transitionName), maskTransitionName: getTransitionName(rootPrefixCls, 'fade', _preview.maskTransitionName), rootClassName: mergedRootClassName, }; }, [preview]); return wrapSSR( , ); }; export default InternalPreviewGroup;