"use client" import { type ReactNode, useState } from "react" import { Button } from "@scandic-hotels/design-system/Button" import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon" import SidePeekSelfControlled from "@scandic-hotels/design-system/SidePeekSelfControlled" import { trackOpenSidePeekEvent } from "@scandic-hotels/tracking/componentEvents" import { HotelSidePeekContent } from "./HotelSidePeekContent" import type { AdditionalData, Hotel, Restaurant, } from "@scandic-hotels/trpc/types/hotel" enum SidePeekEnum { hotelDetails = "hotel-detail-side-peek", } interface HotelDetailsSidePeekProps { hotel: Hotel & { url: string | null } restaurants: Restaurant[] additionalHotelData: AdditionalData | undefined triggerLabel: ReactNode buttonVariant: "primary" | "secondary" wrapping?: boolean } const buttonPropsMap: Record< HotelDetailsSidePeekProps["buttonVariant"], Pick, "variant" | "color" | "size"> > = { primary: { variant: "Text", color: "Primary", size: "md", }, secondary: { variant: "Secondary", color: "Inverted", size: "sm", }, } export function HotelDetailsSidePeek({ hotel, restaurants, additionalHotelData, triggerLabel, wrapping = true, buttonVariant, }: HotelDetailsSidePeekProps) { const buttonProps = buttonPropsMap[buttonVariant] const [isOpen, setIsOpen] = useState(false) return ( <> setIsOpen(false)} > ) }