mirror of https://github.com/msgbyte/tailchat
feat: 增加新组件 CopyableText
parent
9f8e5c7a6f
commit
6424199be2
@ -0,0 +1,34 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import type { ComponentStory, ComponentMeta } from '@storybook/react';
|
||||||
|
import { CopyableText } from '.';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
title: 'Tailchat/CopyableText',
|
||||||
|
component: CopyableText,
|
||||||
|
argTypes: {
|
||||||
|
config: {
|
||||||
|
description: '见: https://ant.design/components/typography-cn#copyable',
|
||||||
|
defaultValue: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
} as ComponentMeta<typeof CopyableText>;
|
||||||
|
|
||||||
|
const Template: ComponentStory<typeof CopyableText> = (args) => (
|
||||||
|
<div>
|
||||||
|
可复制文本: <CopyableText {...args} />
|
||||||
|
<- 点击此处复制
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
|
||||||
|
export const Default = Template.bind({});
|
||||||
|
Default.args = {
|
||||||
|
children: 'Foo',
|
||||||
|
};
|
||||||
|
|
||||||
|
export const WithConfig = Template.bind({});
|
||||||
|
WithConfig.args = {
|
||||||
|
children: 'Foo',
|
||||||
|
config: {
|
||||||
|
text: 'Bar',
|
||||||
|
},
|
||||||
|
};
|
@ -0,0 +1,25 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { Typography } from 'antd';
|
||||||
|
import type { BlockProps } from 'antd/lib/typography/Base';
|
||||||
|
|
||||||
|
interface CopyableTextProps extends React.PropsWithChildren {
|
||||||
|
className?: string;
|
||||||
|
style?: React.CSSProperties;
|
||||||
|
config?: BlockProps['copyable'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 可复制的文本
|
||||||
|
*/
|
||||||
|
export const CopyableText: React.FC<CopyableTextProps> = React.memo((props) => {
|
||||||
|
return (
|
||||||
|
<Typography.Text
|
||||||
|
className={props.className}
|
||||||
|
style={props.style}
|
||||||
|
copyable={props.config ?? true}
|
||||||
|
>
|
||||||
|
{props.children}
|
||||||
|
</Typography.Text>
|
||||||
|
);
|
||||||
|
});
|
||||||
|
CopyableText.displayName = 'CopyableText';
|
Loading…
Reference in New Issue