import React, { useState } from "react"; import { Button } from "@/components/ui/button/button"; import Card from "@/components/ui/card/card"; import LIcon from "@/components/ui/lucid-icon/lucid-icon"; import ModalableItem from "@/components/widget/modalable-item/modalable-item"; import { RezervationSummaryDivider, RezervationSummaryTitle, } from "@/components/widget/rezervation-summary/rezervation-summary"; import { useApp } from "@/hooks/useApp"; import { useLocale } from "@/hooks/useLocale"; import type { RoomGroupResult } from "@/services/eva-display/hotel/hotel-detail/hotel-detail-services.types"; import type { HotelListItemCampaignInformation } from "@/services/eva-display/hotel/hotel-search/hotel-search-services.types"; import useRoomSelect from "../../hooks/use-room-select"; export const GetCampaigns = (roomGroupResult: RoomGroupResult[]) => roomGroupResult ?.filter((items) => items.campaignInformations) .map((item) => item.campaignInformations) .flatMap((campaign) => campaign) .reduce((prev, val: HotelListItemCampaignInformation) => { if (!prev.find((item) => item.key === val.key)) { prev.push(val); } return prev; }, [] as HotelListItemCampaignInformation[]); const ReservationSummaryCampaigns = () => { const [isShowMore, setIsShowMore] = useState(false); const { isOtel } = useApp(); const { state } = useRoomSelect(); const { t } = useLocale(); const campaigns = state.roomGroupResult ? GetCampaigns(state.roomGroupResult) : []; return ( isOtel && campaigns && campaigns.length > 0 && (
{campaigns.slice(0, isShowMore ? campaigns.length : 2).map((item) => ( ))}
{campaigns.length > 2 && ( )}
) ); }; export default ReservationSummaryCampaigns;