"use client"

import { useIntl } from "react-intl"

import Body from "@scandic-hotels/design-system/Body"
import Link from "@scandic-hotels/design-system/Link"
import { LoadingSpinner } from "@scandic-hotels/design-system/LoadingSpinner"
import Subtitle from "@scandic-hotels/design-system/Subtitle"

import { customerService } from "@/constants/webHrefs"

import useLang from "@/hooks/useLang"

import styles from "./timeoutSpinner.module.css"

export default function TimeoutSpinner() {
  const intl = useIntl()
  const lang = useLang()

  return (
    <div className={styles.container}>
      <LoadingSpinner />
      <Subtitle className={styles.heading}>
        {intl.formatMessage({
          defaultMessage: "Taking longer than usual",
        })}
      </Subtitle>
      <Body textAlign="center" className={styles.messageContainer}>
        {intl.formatMessage(
          {
            defaultMessage:
              "We are still confirming your booking. This is usually a matter of minutes and we do apologise for the wait. Please check your inbox for a booking confirmation email and if you still haven't received it by end of day, please contact our <link>customer support</link>.",
          },
          {
            link: (text) => (
              <Link
                href={customerService[lang]}
                textDecoration="underline"
                target="_blank"
              >
                {text}
              </Link>
            ),
          }
        )}
      </Body>
    </div>
  )
}
