"use client"

import { useIntl } from "react-intl"

import useSidePeekStore, {
  SidePeekEnum,
} from "@scandic-hotels/booking-flow/stores/sidepeek"
import { Button } from "@scandic-hotels/design-system/Button"
import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon"

import { trackOpenSidePeekEvent } from "@/utils/tracking"

import type { ToggleSidePeekProps } from "@/types/components/hotelReservation/toggleSidePeekProps"

export default function ToggleSidePeek({ hotelId }: ToggleSidePeekProps) {
  const intl = useIntl()
  const openSidePeek = useSidePeekStore((state) => state.openSidePeek)

  return (
    <Button
      onPress={() => {
        openSidePeek({ key: SidePeekEnum.hotelDetails, hotelId })
        trackOpenSidePeekEvent({
          name: SidePeekEnum.hotelDetails,
          hotelId,
          includePathname: true,
        })
      }}
      size="Small"
      variant="Secondary"
      color="Inverted"
      wrapping
      typography="Body/Paragraph/mdBold"
    >
      {intl.formatMessage({
        defaultMessage: "See hotel details",
      })}
      <MaterialIcon icon="chevron_right" size={20} color="CurrentColor" />
    </Button>
  )
}
