File size: 665 Bytes
00a912e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | import { useCallback } from 'react'
import { EVENTS, LIMITS } from '@music-together/shared'
import { useSocketContext } from '@/providers/socket-context'
import { toast } from 'sonner'
export function useChat() {
const { socket } = useSocketContext()
const sendMessage = useCallback(
(content: string) => {
const trimmed = content.trim()
if (!trimmed) return
if (trimmed.length > LIMITS.CHAT_CONTENT_MAX_LENGTH) {
toast.error(`消息不能超过 ${LIMITS.CHAT_CONTENT_MAX_LENGTH} 个字符`)
return
}
socket.emit(EVENTS.CHAT_MESSAGE, { content: trimmed })
},
[socket],
)
return { sendMessage }
}
|