Function: useMessages()
typescript
1
useMessages(): object
Defined in: hooks/index.ts:486
Hook for accessing DIDComm message context and operations.
Provides functionality for managing DIDComm messages including reading, deleting, and filtering messages by type. This hook must be used within a MessagesProvider.
Returns
Messages context containing:
messages
: Array of all messages with their read status metadatareceivedMessages
: Filtered array containing only received messagessentMessages
: Filtered array containing only sent messagesunreadMessages
: Filtered array containing only unread messagesreadMessage
: Async function to mark a specific message as readdeleteMessage
: Async function to permanently delete a messagegetMessages
: Async function to refresh and reload messages from storage
deleteMessage()
typescript
1
deleteMessage: (message) => Promise<void>
Function to delete a message
Parameters
message
Returns
Promise
<void
>
getMessages()
typescript
1
getMessages: () => Promise<object[]>
Function to refresh messages from storage
Returns
Promise
<object
[]>
messages
typescript
1
messages: object[]
Array of all messages with their read status
readMessage()
typescript
1
readMessage: (message) => Promise<void>
Function to mark a message as read
Parameters
message
Returns
Promise
<void
>
receivedMessages
typescript
1
receivedMessages: Message[]
Array of received messages only
sentMessages
typescript
1
sentMessages: Message[]
Array of sent messages only
unreadMessages
typescript
1
unreadMessages: Message[]
Array of unread messages only
Throws
When used outside of MessagesProvider
Example
tsx123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960import { useMessages } from '@trust0/identus-react/hooks';function MessageInbox() {const {messages,unreadMessages,readMessage,deleteMessage,getMessages} = useMessages();const handleReadMessage = async (message) => {try {await readMessage(message);console.log('Message marked as read');} catch (error) {console.error('Failed to mark message as read:', error);}};const handleDeleteMessage = async (message) => {try {await deleteMessage(message);console.log('Message deleted');} catch (error) {console.error('Failed to delete message:', error);}};const refreshMessages = async () => {try {await getMessages();console.log('Messages refreshed');} catch (error) {console.error('Failed to refresh messages:', error);}};return (<div><h3>Messages ({messages.length})</h3><p>Unread: {unreadMessages.length}</p><button onClick={refreshMessages}>Refresh</button>{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={() => handleReadMessage(item.message)}>Mark as Read</button><button onClick={() => handleDeleteMessage(item.message)}>Delete</button></div>))}</div>);}