mirror of
https://github.com/ant-design/ant-design.git
synced 2024-12-16 09:39:10 +08:00
51 lines
1.1 KiB
TypeScript
51 lines
1.1 KiB
TypeScript
|
import { PictureOutlined } from '@ant-design/icons';
|
||
|
import { Image, Tooltip, Typography } from 'antd';
|
||
|
import React from 'react';
|
||
|
import useLocale from '../../../hooks/useLocale';
|
||
|
|
||
|
const locales = {
|
||
|
cn: {
|
||
|
tip: '预览',
|
||
|
},
|
||
|
en: {
|
||
|
tip: 'Preview',
|
||
|
},
|
||
|
};
|
||
|
|
||
|
export interface InlinePopoverProps {
|
||
|
previewURL?: string;
|
||
|
}
|
||
|
|
||
|
// 鼠标悬浮弹出 Popover 组件,用于帮助用户更快看到一些属性对应的预览效果
|
||
|
const InlinePopover: React.FC = (props: InlinePopoverProps) => {
|
||
|
const { previewURL } = props;
|
||
|
|
||
|
const [locale] = useLocale(locales);
|
||
|
const [visible, setVisible] = React.useState(false);
|
||
|
|
||
|
return (
|
||
|
<>
|
||
|
<Tooltip title={locale.tip}>
|
||
|
<Typography.Link onClick={() => setVisible(true)}>
|
||
|
<PictureOutlined />
|
||
|
</Typography.Link>
|
||
|
</Tooltip>
|
||
|
|
||
|
<Image
|
||
|
width={10}
|
||
|
style={{ display: 'none' }}
|
||
|
src={previewURL}
|
||
|
preview={{
|
||
|
visible,
|
||
|
src: previewURL,
|
||
|
onVisibleChange: (value) => {
|
||
|
setVisible(value);
|
||
|
},
|
||
|
}}
|
||
|
/>
|
||
|
</>
|
||
|
);
|
||
|
};
|
||
|
|
||
|
export default InlinePopover;
|