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 }
}