"use client" import { useRef, useState } from "react" import { Button } from "react-aria-components" import { CheckIcon, InfoCircleIcon } from "@/components/Icons" import Caption from "@/components/TempDesignSystem/Text/Caption" import PricePopover from "./Popover" import PriceTable from "./PriceList" import styles from "./flexibilityOption.module.css" import { FlexibilityOptionProps } from "@/types/components/hotelReservation/selectRate/flexibilityOption" export default function FlexibilityOption({ product, name, paymentTerm, priceInformation, roomType, roomTypeCode, features, petRoomPackage, handleSelectRate, }: FlexibilityOptionProps) { const [rootDiv, setRootDiv] = useState(undefined) const [isPopoverOpen, setIsPopoverOpen] = useState(false) let triggerRef = useRef(null) const buttonClickedRef = useRef(false) function setRef(node: Element | null) { if (node) { setRootDiv(node) } } if (!product) { return (
{name} ({paymentTerm})
) } const { public: publicPrice, member: memberPrice } = product.productType function onChange() { const rate = { roomTypeCode, roomType, priceName: name, public: publicPrice, member: memberPrice, features: petRoomPackage ? features : [], } handleSelectRate(rate) } function togglePopover() { buttonClickedRef.current = !buttonClickedRef.current setIsPopoverOpen(buttonClickedRef.current) } function handlePopoverChange(isOpen: boolean) { setIsPopoverOpen(isOpen) } return ( ) }