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.
- RN CLI
- Expo
import {PSMessageModel} from '@communi/chat-react-native';
import {PSMessageModel} from '@piscale/chat-expo';
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 sendMessageJsonPayloadLocal
và deleteMessageJsonPayload
như sau:
Tên | Mô tả |
---|---|
sendMessageJsonPayload | Sẽ 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 |
sendMessageJsonPayloadLocal | Sẽ 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 |
deleteMessageJsonPayload | Xoá 1 Customize Message được chỉ định |