"use client"
import { useIntl } from "react-intl"
import { useReactToPrint } from "react-to-print"

import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon"
import { OldDSButton as Button } from "@scandic-hotels/design-system/OldDSButton"

import type { DownloadInvoiceProps } from "@/types/components/hotelReservation/bookingConfirmation/actions/downloadInvoice"

export default function DownloadInvoice({ mainRef }: DownloadInvoiceProps) {
  const intl = useIntl()
  const reactToPrintFn = useReactToPrint({ contentRef: mainRef })

  function downloadBooking() {
    reactToPrintFn()
  }

  return (
    <Button
      intent="text"
      onPress={downloadBooking}
      size="small"
      theme="base"
      variant="icon"
      wrapping
    >
      <MaterialIcon icon="download" color="CurrentColor" />
      {intl.formatMessage({
        defaultMessage: "Download invoice",
      })}
    </Button>
  )
}
