"use client" import { useIntl } from "react-intl" import { useManageStayStore } from "@/stores/my-stay/manageStayStore" import { useMyStayRoomDetailsStore } from "@/stores/my-stay/myStayRoomDetailsStore" import { ChevronDownIcon } from "@/components/Icons" import Modal from "@/components/Modal" import Button from "@/components/TempDesignSystem/Button" import GuaranteeLateArrival from "../GuaranteeLateArrival" import CancelStay from "./ActionPanel/Actions/CancelStay" import ModifyStay from "./ActionPanel/Actions/ModifyStay" import ActionPanel from "./ActionPanel" import type { Hotel } from "@/types/hotel" import { type CreditCard } from "@/types/user" interface ManageStayProps { hotel: Hotel savedCreditCards: CreditCard[] | null refId: string isLoggedIn: boolean } export default function ManageStay({ hotel, savedCreditCards, refId, isLoggedIn, }: ManageStayProps) { const intl = useIntl() const { isOpen, activeView, actions: { setIsOpen, handleCloseModal }, } = useManageStayStore() const bookedRoom = useMyStayRoomDetailsStore((state) => state.bookedRoom) const linkedReservationRooms = useMyStayRoomDetailsStore( (state) => state.linkedReservationRooms ) const allRoomsCancelled = linkedReservationRooms.every((room) => room.isCancelled) && bookedRoom.isCancelled function renderContent() { switch (activeView) { case "cancelStay": return case "modifyStay": return case "guaranteeLateArrival": return ( ) default: return } } return ( <> {isOpen && ( {renderContent()} )} ) }