import { ChatMessagesState, chatMessageStore } from '../store/chatMessage';
import { useSelectedFieldStore } from './useSelectedFieldStore';

export type UseChatMessageArg = {
  roomId: string;
};

const EMPTY_CHAT_MESSAGES_STATE: ChatMessagesState = {
  chatMessagesLoaded: false,
  chatMessages: [],
};

export function useChatRoomState({ roomId }: UseChatMessageArg) {
  const chatMessageState = useSelectedFieldStore(
    chatMessageStore,
    () => chatMessageStore.get()[roomId] ?? EMPTY_CHAT_MESSAGES_STATE
  );

  return chatMessageState;
}

/**
 * @deprecated Use useChatRoomState hook instead
 */
export function useChatMessages({ roomId }: UseChatMessageArg) {
  const chatMessageState = useSelectedFieldStore(
    chatMessageStore,
    () => chatMessageStore.get()[roomId] ?? EMPTY_CHAT_MESSAGES_STATE
  );

  return chatMessageState;
}
