All files / src/features/ChangeLog Changelog.tsx

100% Statements 7/7
100% Branches 6/6
100% Functions 2/2
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85                    1x                                     236x                 236x           236x         236x   236x                             1x                                    
import { MerchantType } from "@customTypes/merchant.preview.types";
import ChangelogButton from "./ChangelogButton";
import ChangelogModal from "./ChangelogModal";
import { useChangelogModal } from "./hooks/useChanglelogModal";
import { useListTopics } from "features/Minibuilders/Conversations/hooks/useListTopics";
import { calculateTotalUnreadSum } from "features/Minibuilders/Conversations/utils/functions";
import { useChangelogData } from "./hooks/useChangelogData";
import { useCustomTheme } from "@theme/hooks/useCustomTheme";
import { FormProvider } from "react-hook-form";
 
const Changelog = ({
  isOpen,
  handleOpenChangelogModal,
  isMerchantApproved,
  isLoadingConversation,
  merchant,
  doublePanelActive,
  isOpenConversations,
  secondPanelWidth,
}: MerchantType & {
  isOpen: boolean;
  handleOpenChangelogModal: (open?: boolean) => void;
  isLoading: boolean;
  isMerchantApproved: boolean;
  isLoadingConversation: boolean;
  doublePanelActive?: boolean;
  isOpenConversations?: boolean;
  secondPanelWidth?: number;
}) => {
  const { isMobileView } = useCustomTheme();
  const {
    data,
    isLoading,
    handleLoadMore,
    isMoreData,
    filtersForm,
    isFiltersApplied,
    showMoreDataAvailable,
  } = useChangelogData({
    id: merchant?.accID,
    enabled: isMerchantApproved && isOpen,
    isOpen,
  });
 
  const { data: topicData, isLoading: isTopicDataLoading } = useListTopics({
    merchantId: merchant?.accID,
    enabled: isMobileView,
  });
 
  const { totalUnread } = calculateTotalUnreadSum(topicData?.data);
 
  return (
    <>
      {!isMobileView && (
        <ChangelogButton
          handleOpenChangelogModal={handleOpenChangelogModal}
          doublePanelActive={doublePanelActive}
          isLoading={isLoading}
          isOpen={isOpen}
          isOpenConversations={isOpenConversations}
          secondPanelWidth={secondPanelWidth}
        />
      )}
      <FormProvider {...filtersForm}>
        <ChangelogModal
          open={isOpen}
          onClose={() => handleOpenChangelogModal(false)}
          data={data}
          isLoading={isLoading}
          isMerchantApproved={isMerchantApproved}
          isLoadingConversation={isLoadingConversation || isTopicDataLoading}
          totalUnread={totalUnread}
          handleLoadMore={handleLoadMore}
          merchantId={merchant?.accID}
          isMoreData={isMoreData}
          isFiltersApplied={isFiltersApplied}
          showMoreDataAvailable={showMoreDataAvailable}
        />
      </FormProvider>
    </>
  );
};
 
export default Changelog;