feat: add plain text with send text message

pull/90/head
moonrailgun 2 years ago
parent 4a068ee3d5
commit 1fa1293d1a

@ -38,6 +38,11 @@ export interface SendMessagePayloadMeta {
}
export interface SendMessagePayload extends SimpleMessagePayload {
/**
* contentplain
* inbox
*/
plain?: string;
meta?: SendMessagePayloadMeta;
}

@ -35,7 +35,6 @@ function useHandleSendMessage(context: ConverseContext) {
*/
const handleSendMessage = useCallback(
async (payload: SendMessagePayload) => {
payload.content = String(payload.content).trim();
// 输入合法性检测
if (payload.content === '') {
showErrorToasts(t('无法发送空消息'));

@ -1,3 +1,4 @@
import { getMessageTextDecorators } from '@/plugin/common';
import React from 'react';
import { ChatBoxContextProvider, useConverseMessage } from 'tailchat-shared';
import { ErrorView } from '../ErrorView';
@ -58,10 +59,12 @@ const ChatBoxInner: React.FC<ChatBoxProps> = React.memo((props) => {
<ChatInputBox
onSendMsg={(msg, meta) => {
const content = preprocessMessage(msg);
handleSendMessage({
converseId: props.converseId,
groupId: props.groupId,
content: preprocessMessage(msg),
content,
plain: getMessageTextDecorators().serialize(content),
meta,
});
}}

@ -5,11 +5,15 @@ const emojiNameRegex = /:([a-zA-Z0-9_\-\+]+):/g;
/**
*
*/
export function preprocessMessage(message: string) {
export function preprocessMessage(message: string): string {
message = String(message).trim();
/**
* emoji
*/
return message.replace(emojiNameRegex, (code) =>
message = message.replace(emojiNameRegex, (code) =>
getMessageTextDecorators().emoji(code)
);
return message;
}

@ -12,6 +12,7 @@ export interface BuiltinEventMap {
converseId: string;
messageId: string;
content: string;
plain?: string;
meta: MessageMetaStruct;
}
| {

@ -46,6 +46,7 @@ class MessageService extends TcService {
converseId: 'string',
groupId: [{ type: 'string', optional: true }],
content: 'string',
plain: { type: 'string', optional: true },
meta: { type: 'any', optional: true },
},
});
@ -164,10 +165,11 @@ class MessageService extends TcService {
converseId: string;
groupId?: string;
content: string;
plain?: string;
meta?: object;
}>
) {
const { converseId, groupId, content, meta } = ctx.params;
const { converseId, groupId, content, plain, meta } = ctx.params;
const userId = ctx.meta.userId;
const t = ctx.meta.t;
@ -208,6 +210,7 @@ class MessageService extends TcService {
converseId: String(converseId),
messageId: String(message._id),
content,
plain,
meta: meta ?? {},
});

Loading…
Cancel
Save