Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

markdown支持插件 #116

Merged
merged 2 commits into from
Mar 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@
"rc-util": "^5.38.2",
"react-intersection-observer": "^9.8.1",
"react-layout-kit": "^1.7.4",
"react-markdown": "^8.0.7",
"zustand": "^4.5.1",
"zustand-utils": "^1.3.2"
},
Expand Down
3 changes: 3 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions src/ChatItem/components/MessageContent.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { ChatItemProps } from '@/ChatItem';
import EditableMessage from '@/EditableMessage';
import { ConfigProvider } from 'antd';

import { MarkdownProps } from '@ant-design/pro-editor';
import { useStyles } from '../style';

export interface MessageContentProps {
Expand All @@ -21,6 +22,7 @@ export interface MessageContentProps {
text?: ChatItemProps['text'];
type?: ChatItemProps['type'];
className?: string;
markdownProps?: MarkdownProps;
}

const MessageContent = memo<MessageContentProps>(
Expand All @@ -34,6 +36,7 @@ const MessageContent = memo<MessageContentProps>(
placement,
messageExtra,
renderMessage,
markdownProps,
type,
primary,
onDoubleClick,
Expand All @@ -55,6 +58,7 @@ const MessageContent = memo<MessageContentProps>(
openModal={mobile ? editing : undefined}
text={text}
value={String(message || '...')}
markdownProps={markdownProps}
/>
);
const messageContent = renderMessage ? renderMessage(content) : content;
Expand Down
2 changes: 2 additions & 0 deletions src/ChatItem/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ const ChatItem = memo<ChatItemProps>((props) => {
text,
errorMessage,
chatItemRenderConfig,
markdownProps,
onDoubleClick,
originData,
...restProps
Expand Down Expand Up @@ -87,6 +88,7 @@ const ChatItem = memo<ChatItemProps>((props) => {
renderMessage={renderMessage}
text={text}
type={type}
markdownProps={markdownProps}
/>
);
return chatItemRenderConfig?.contentRender?.(props, dom) || dom;
Expand Down
7 changes: 7 additions & 0 deletions src/ChatItem/type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { ReactNode } from 'react';

import { EditableMessageProps } from '@/EditableMessage';
import { DivProps, MetaData } from '@/types';
import { MarkdownProps } from '@ant-design/pro-editor';

export type WithFalse<T> = T | false;

Expand Down Expand Up @@ -75,6 +76,12 @@ export interface ChatItemProps<T = Record<string, any>> {
*/
type?: 'block' | 'pure';

/**
* @description The configuration for the markdown component
* @default {}
*/
markdownProps?: MarkdownProps;

/**
* @description 聊天项渲染函数,为了保证性能他是惰性的,只有在列表项内容修改的时候才会重新执行
* @default (props, defaultDom) => defaultDom
Expand Down
7 changes: 7 additions & 0 deletions src/ChatList/ChatListItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { LLMRoleType } from '@/types/llm';
import { ChatMessage } from '@/types/message';

import { useRefFunction } from '@/ProChat/hooks/useRefFunction';
import { MarkdownProps } from '@ant-design/pro-editor';
import ActionsBar, { type ActionsBarProps } from './ActionsBar';

export type OnMessageChange = (id: string, content: string) => void;
Expand Down Expand Up @@ -99,6 +100,10 @@ export interface ListItemProps<T = Record<string, any>> {
* 聊天项的渲染函数。
*/
chatItemRenderConfig?: ChatItemProps['chatItemRenderConfig'];
/**
* markdown组件的配置。
*/
markdownProps?: MarkdownProps;
/**
* 原始数据。
*/
Expand Down Expand Up @@ -133,6 +138,7 @@ const ChatListItem = (props: ChatListItemProps) => {
renderItems,
chatItemRenderConfig,
chatItemClassName,
markdownProps,
...item
} = props;

Expand Down Expand Up @@ -285,6 +291,7 @@ const ChatListItem = (props: ChatListItemProps) => {
time={item.updateAt || item.createAt}
type={type === 'chat' ? 'block' : 'pure'}
chatItemRenderConfig={chatItemRenderConfig}
markdownProps={markdownProps}
/>
);
return dom;
Expand Down
2 changes: 2 additions & 0 deletions src/ChatList/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ const ChatList = memo<ChatListProps>(
renderActions,
historyCount = 0,
chatItemRenderConfig,
markdownProps,
...props
}) => {
const { cx, styles } = useStyles();
Expand Down Expand Up @@ -114,6 +115,7 @@ const ChatList = memo<ChatListProps>(
{...item}
originData={item}
chatItemRenderConfig={chatItemRenderConfig}
markdownProps={markdownProps}
/>
</Fragment>
</ShouldUpdateItem>
Expand Down
20 changes: 9 additions & 11 deletions src/EditableMessage/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

import MessageInput, { type MessageInputProps } from '@/MessageInput';
import MessageModal, { type MessageModalProps } from '@/MessageModal';
import { Markdown } from '@ant-design/pro-editor';
import { Markdown, MarkdownProps } from '@ant-design/pro-editor';

export interface EditableMessageProps {
/**
Expand All @@ -14,10 +14,6 @@
* @title The class name for the MessageInput component
*/
input?: string;
/**
* @title The class name for the Markdown component
*/
markdown?: string;
textarea?: string;
};
editButtonSize?: MessageInputProps['editButtonSize'];
Expand Down Expand Up @@ -64,16 +60,16 @@
* @title The style for the MessageInput component
*/
input?: CSSProperties;
/**
* @title The style for the Markdown component
*/
markdown?: CSSProperties;
};
text?: MessageModalProps['text'];
/**
* @title The current text value
*/
value: string;
/**
* @title The props for the Markdown component
*/
markdownProps?: MarkdownProps;
}

const EditableMessage = memo<EditableMessageProps>(
Expand All @@ -93,6 +89,7 @@
editButtonSize,
text,
model,
markdownProps,
}) => {
const [isEdit, setTyping] = useMergedState(false, {
onChange: onEditingChange,
Expand Down Expand Up @@ -134,12 +131,12 @@
input
) : (
<Markdown
className={classNames?.markdown}
{...markdownProps}
style={{
height: isAutoSize ? 'unset' : height,
overflowX: 'hidden',
overflowY: 'auto',
...styles?.markdown,
...markdownProps.style,

Check failure on line 139 in src/EditableMessage/index.tsx

View workflow job for this annotation

GitHub Actions / test

src/ProChat/__test__/demo.test.tsx > <ProChat /> > renders use-ref.tsx correctly

TypeError: Cannot read properties of undefined (reading 'style') ❯ src/EditableMessage/index.tsx:139:32 ❯ renderWithHooks node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:16305:18 ❯ updateFunctionComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19588:20 ❯ updateSimpleMemoComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19425:10 ❯ updateMemoComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19284:14 ❯ beginWork node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:21673:16 ❯ beginWork$1 node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:27426:14 ❯ performUnitOfWork node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26560:12 ❯ workLoopSync node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26466:5 ❯ renderRootSync node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26434:7

Check failure on line 139 in src/EditableMessage/index.tsx

View workflow job for this annotation

GitHub Actions / test

src/ProChat/__test__/demo.test.tsx > <ProChat /> > renders use-pro-chat.tsx correctly

TypeError: Cannot read properties of undefined (reading 'style') ❯ src/EditableMessage/index.tsx:139:32 ❯ renderWithHooks node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:16305:18 ❯ updateFunctionComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19588:20 ❯ updateSimpleMemoComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19425:10 ❯ updateMemoComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19284:14 ❯ beginWork node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:21673:16 ❯ beginWork$1 node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:27426:14 ❯ performUnitOfWork node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26560:12 ❯ workLoopSync node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26466:5 ❯ renderRootSync node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26434:7

Check failure on line 139 in src/EditableMessage/index.tsx

View workflow job for this annotation

GitHub Actions / test

src/ProChat/__test__/demo.test.tsx > <ProChat /> > renders toBottomConfig.tsx correctly

TypeError: Cannot read properties of undefined (reading 'style') ❯ src/EditableMessage/index.tsx:139:32 ❯ renderWithHooks node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:16305:18 ❯ updateFunctionComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19588:20 ❯ updateSimpleMemoComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19425:10 ❯ updateMemoComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19284:14 ❯ beginWork node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:21673:16 ❯ beginWork$1 node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:27426:14 ❯ performUnitOfWork node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26560:12 ❯ workLoopSync node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26466:5 ❯ renderRootSync node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26434:7

Check failure on line 139 in src/EditableMessage/index.tsx

View workflow job for this annotation

GitHub Actions / test

src/ProChat/__test__/demo.test.tsx > <ProChat /> > renders sse.tsx correctly

TypeError: Cannot read properties of undefined (reading 'style') ❯ src/EditableMessage/index.tsx:139:32 ❯ renderWithHooks node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:16305:18 ❯ updateFunctionComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19588:20 ❯ updateSimpleMemoComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19425:10 ❯ updateMemoComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19284:14 ❯ beginWork node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:21673:16 ❯ beginWork$1 node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:27426:14 ❯ performUnitOfWork node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26560:12 ❯ workLoopSync node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26466:5 ❯ renderRootSync node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26434:7

Check failure on line 139 in src/EditableMessage/index.tsx

View workflow job for this annotation

GitHub Actions / test

src/ProChat/__test__/demo.test.tsx > <ProChat /> > renders request.tsx correctly

TypeError: Cannot read properties of undefined (reading 'style') ❯ src/EditableMessage/index.tsx:139:32 ❯ renderWithHooks node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:16305:18 ❯ updateFunctionComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19588:20 ❯ updateSimpleMemoComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19425:10 ❯ updateMemoComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19284:14 ❯ beginWork node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:21673:16 ❯ beginWork$1 node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:27426:14 ❯ performUnitOfWork node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26560:12 ❯ workLoopSync node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26466:5 ❯ renderRootSync node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26434:7

Check failure on line 139 in src/EditableMessage/index.tsx

View workflow job for this annotation

GitHub Actions / test

src/ProChat/__test__/demo.test.tsx > <ProChat /> > renders no-stream.tsx correctly

TypeError: Cannot read properties of undefined (reading 'style') ❯ src/EditableMessage/index.tsx:139:32 ❯ renderWithHooks node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:16305:18 ❯ updateFunctionComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19588:20 ❯ updateSimpleMemoComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19425:10 ❯ updateMemoComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19284:14 ❯ beginWork node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:21673:16 ❯ beginWork$1 node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:27426:14 ❯ performUnitOfWork node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26560:12 ❯ workLoopSync node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26466:5 ❯ renderRootSync node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26434:7

Check failure on line 139 in src/EditableMessage/index.tsx

View workflow job for this annotation

GitHub Actions / test

src/ProChat/__test__/demo.test.tsx > <ProChat /> > renders modal.tsx correctly

TypeError: Cannot read properties of undefined (reading 'style') ❯ src/EditableMessage/index.tsx:139:32 ❯ renderWithHooks node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:16305:18 ❯ updateFunctionComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19588:20 ❯ updateSimpleMemoComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19425:10 ❯ updateMemoComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19284:14 ❯ beginWork node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:21673:16 ❯ beginWork$1 node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:27426:14 ❯ performUnitOfWork node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26560:12 ❯ workLoopSync node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26466:5 ❯ renderRootSync node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26434:7

Check failure on line 139 in src/EditableMessage/index.tsx

View workflow job for this annotation

GitHub Actions / test

src/ProChat/__test__/demo.test.tsx > <ProChat /> > renders meta.tsx correctly

TypeError: Cannot read properties of undefined (reading 'style') ❯ src/EditableMessage/index.tsx:139:32 ❯ renderWithHooks node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:16305:18 ❯ updateFunctionComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19588:20 ❯ updateSimpleMemoComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19425:10 ❯ updateMemoComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19284:14 ❯ beginWork node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:21673:16 ❯ beginWork$1 node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:27426:14 ❯ performUnitOfWork node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26560:12 ❯ workLoopSync node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26466:5 ❯ renderRootSync node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26434:7

Check failure on line 139 in src/EditableMessage/index.tsx

View workflow job for this annotation

GitHub Actions / test

src/ProChat/__test__/demo.test.tsx > <ProChat /> > renders loading.tsx correctly

TypeError: Cannot read properties of undefined (reading 'style') ❯ src/EditableMessage/index.tsx:139:32 ❯ renderWithHooks node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:16305:18 ❯ updateFunctionComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19588:20 ❯ updateSimpleMemoComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19425:10 ❯ updateMemoComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19284:14 ❯ beginWork node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:21673:16 ❯ beginWork$1 node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:27426:14 ❯ performUnitOfWork node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26560:12 ❯ workLoopSync node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26466:5 ❯ renderRootSync node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26434:7

Check failure on line 139 in src/EditableMessage/index.tsx

View workflow job for this annotation

GitHub Actions / test

src/ProChat/__test__/demo.test.tsx > <ProChat /> > renders initialChats.tsx correctly

TypeError: Cannot read properties of undefined (reading 'style') ❯ src/EditableMessage/index.tsx:139:32 ❯ renderWithHooks node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:16305:18 ❯ updateFunctionComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19588:20 ❯ updateSimpleMemoComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19425:10 ❯ updateMemoComponent node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:19284:14 ❯ beginWork node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:21673:16 ❯ beginWork$1 node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:27426:14 ❯ performUnitOfWork node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26560:12 ❯ workLoopSync node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26466:5 ❯ renderRootSync node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom.development.js:26434:7
}}
>
{value || placeholder}
Expand All @@ -156,6 +153,7 @@
setExpand(e);
setTyping(false);
}}
markdownProps={markdownProps}
open={expand}
placeholder={placeholder}
text={text}
Expand Down
20 changes: 18 additions & 2 deletions src/MessageModal/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { useMergedState } from 'rc-util';
import { CSSProperties, ReactNode, memo } from 'react';

import MessageInput, { type MessageInputProps } from '@/MessageInput';
import { Markdown } from '@ant-design/pro-editor';
import { Markdown, MarkdownProps } from '@ant-design/pro-editor';
import { Modal, type ModalProps } from 'antd';

export interface MessageModalProps extends Pick<ModalProps, 'open' | 'footer'> {
Expand Down Expand Up @@ -41,6 +41,10 @@ export interface MessageModalProps extends Pick<ModalProps, 'open' | 'footer'> {
* @description The value of the message content
*/
value: string;
/**
* @description The props for the Markdown component
*/
markdownProps?: MarkdownProps;
}

const MessageModal = memo<MessageModalProps>(
Expand All @@ -56,6 +60,7 @@ const MessageModal = memo<MessageModalProps>(
text,
footer,
extra,
markdownProps,
}) => {
const { mobile } = useResponsive();

Expand Down Expand Up @@ -106,7 +111,18 @@ const MessageModal = memo<MessageModalProps>(
) : (
<>
{extra}
<Markdown style={value ? markdownStyle : { ...markdownStyle, opacity: 0.5 }}>
<Markdown
{...markdownProps}
style={
value
? { ...markdownStyle, ...markdownProps.style }
: {
...markdownStyle,
...markdownProps.style,
opacity: 0.5,
}
}
>
{String(value || placeholder)}
</Markdown>
</>
Expand Down
Loading
Loading