@livelike/react-native
Version:
LiveLike React Native package
36 lines (32 loc) • 1.08 kB
text/typescript
import {
ISendMessageArgs,
hasDebugLogger,
sendMessage as sendMessageApi,
} from '@livelike/javascript';
import { useCallback } from 'react';
import { chatMessageStoreActions } from '../store/chatMessage';
import { useAnalytics } from './useAnalytics';
export function useChatMessageActions({ roomId }) {
const { trackEvent } = useAnalytics();
const sendChatMessage = useCallback(
(messageArgs: ISendMessageArgs) => {
return sendMessageApi(messageArgs)
.then((message) => {
chatMessageStoreActions.addChatMessageAction({
roomId: messageArgs.roomId,
chatMessage: message,
});
trackEvent('Chat Message Sent', { roomId, message });
return message;
})
.catch((error) => {
trackEvent('Chat Message Failed', { roomId, error });
hasDebugLogger() && console.error(error);
return error;
});
},
[roomId]
);
const deleteChatMessage = chatMessageStoreActions.deleteChatMessageAction;
return { sendChatMessage, deleteChatMessage };
}