Skip to main content

Customize Message

Hiển thị Customize Message

Để tăng khả năng thích ứng với nhiều yêu cầu liên quan đến logic nghiệp vụ của khách hàng, chúng tôi cung cấp một Factory chịu trách nhiệm render MessageUI dựa vào dữ liệu tuỳ chỉnh của khách hàng.

import {PSMessageModel} from '@communi/chat-react-native';
import React from 'react';

export const PSMessagesScreen = ({...}: {...}) => {
const customizedMessageItemFactory = React.useCallback(
(message: PSMessageModel) => {
const json = message.body?.jsonPayload;
if (json) {
try {
const payload = JSON.parse(String.raw`${json}`);
return <YourFCComponent payload={payload}/>;
} catch (error) {
return null;
}
} else {
return null;
}
},
[],
);

return (
<PSMessages
{...props}
customizedMessageItemFactory={customizedMessageItemFactory}
/>
)
}

Gửi Customize Message

Bạn hoàn toàn có thể chủ động gửi 1 Customize Message được SDK cung cấp như sau:

import {PSMessageJsonPayloadContext, usePSMessageJsonPayloadContext} from '@communi/chat-react-native';

// VD sử dụng
<PSMessageJsonPayloadContext.Consumer>
{contextValue => (
contextValue.sendMessageJsonPayload(JSON.stringify(...));
)}
</PSMessageJsonPayloadContext.Consumer>

// hoặc sử dụng useContext
const {sendMessageJsonPayload} = usePSMessageJsonPayloadContext();

Ngoài sendMessageJsonPayload context này còn cũng cấp sendMessageJsonPayloadLocaldeleteMessageJsonPayload như sau:

TênMô tả
sendMessageJsonPayloadSẽ gửi 1 Customize Message Remote và những người khác trong cuộc hội thoại đó cũng sẽ nhận được message này
sendMessageJsonPayloadLocalSẽ gửi 1 Customize Message Local chỉ hiển thị trong cuộc hội thoại của bạn, những người khác trong cuộc hội thoại không nhận được message này
deleteMessageJsonPayloadXoá 1 Customize Message được chỉ định