mirror of
https://github.com/CompassConnections/Compass.git
synced 2026-08-01 02:42:05 -04:00
32 lines
811 B
TypeScript
32 lines
811 B
TypeScript
import {ChatMessage} from 'common/chat-message'
|
|
import {useEffect} from 'react'
|
|
import {usePersistentLocalState} from 'web/hooks/use-persistent-local-state'
|
|
import {api} from 'web/lib/api'
|
|
|
|
export function useLastPrivateMessages(
|
|
userId: string | undefined,
|
|
channelIds?: number[] | undefined,
|
|
): Record<number, ChatMessage> {
|
|
const key = `last-messages-${userId}`
|
|
const [lastMessages, setLastMessages] = usePersistentLocalState<Record<number, ChatMessage>>(
|
|
{},
|
|
key,
|
|
)
|
|
|
|
useEffect(() => {
|
|
if (!userId) {
|
|
setLastMessages({})
|
|
return
|
|
}
|
|
|
|
const fetchLastMessages = async () => {
|
|
const messages = await api('get-last-messages', {channelIds})
|
|
setLastMessages(messages)
|
|
}
|
|
|
|
fetchLastMessages()
|
|
}, [userId, channelIds?.join(',')])
|
|
|
|
return lastMessages
|
|
}
|