Variable: MessagesContext

typescript
1
const MessagesContext: Context<undefined | { deleteMessage: (message) => Promise<void>; load: () => Promise<void>; messages: object[]; readMessage: (message) => Promise<void>; receivedMessages: Message[]; sentMessages: Message[]; unreadMessages: Message[]; }>

Defined in: packages/identus-react/src/context/index.ts:637

React context for DIDComm message management.

Provides comprehensive functionality for managing DIDComm messages including reading, deleting, and organizing messages by type and status. Essential for handling communication between identity entities.

Example

tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import { MessagesContext } from '@trust0/identus-react/context';
import { useContext } from 'react';
function MessageInbox() {
const context = useContext(MessagesContext);
if (!context) {
throw new Error('MessageInbox must be used within MessagesProvider');
}
const {
messages,
unreadMessages,
readMessage,
deleteMessage
} = context;
const markAsRead = async (message: SDK.Domain.Message) => {
await readMessage(message);
};
const removeMessage = async (message: SDK.Domain.Message) => {
await deleteMessage(message);
};
return (
<div>
<h3>Messages ({messages.length})</h3>
<p>Unread: {unreadMessages.length}</p>
{messages.map((item, index) => (
<div key={index} className={!item.read ? 'unread' : ''}>
<p>From: {item.message.from?.toString()}</p>
<p>Type: {item.message.piuri}</p>
<button onClick={() => markAsRead(item.message)}>
Mark as Read
</button>
<button onClick={() => removeMessage(item.message)}>
Delete
</button>
</div>
))}
</div>
);
}