import {
  messageItemPopoverStore,
  messageItemPopoverStoreActions,
} from '../store';
import { PopoverDetail } from '../types';
import { useSelectedFieldStore } from './useSelectedFieldStore';

export type UseMessageItemPopoverArg = {
  messageId?: string;
};

export function useMessageItemPopover(arg: UseMessageItemPopoverArg = {}) {
  const { messageId } = arg;
  const popoverDetail = useSelectedFieldStore<
    typeof messageItemPopoverStore,
    PopoverDetail | null
  >(messageItemPopoverStore, () =>
    messageItemPopoverStore.get().messageId === messageId
      ? messageItemPopoverStore.get()
      : null
  );

  return {
    popoverDetail,
    showPopover: messageItemPopoverStoreActions.showPopover,
    hidePopover: messageItemPopoverStoreActions.hidePopover,
  };
}
