import {
  getCurrentRewards,
  getMembershipLevel,
} from "@/lib/trpc/memoizedRequests"

import { Section } from "@/components/Section"
import { SectionHeader } from "@/components/Section/Header"
import SectionLink from "@/components/Section/Link"

import ClientCurrentRewards from "./Client"

import type { AccountPageComponentProps } from "@/types/components/myPages/myPage/accountPage"

export default async function CurrentRewardsBlock({
  title,
  subtitle,
  link,
}: AccountPageComponentProps) {
  const [rewardsResponse, membershipLevel] = await Promise.all([
    getCurrentRewards(),
    getMembershipLevel(),
  ])

  if (!rewardsResponse?.rewards.length) {
    return null
  }

  return (
    <Section>
      <SectionHeader heading={title} link={link} preamble={subtitle} />
      <ClientCurrentRewards
        rewards={rewardsResponse.rewards}
        showRedeem={true}
        membershipNumber={membershipLevel?.membershipNumber}
      />
      <SectionLink link={link} variant="mobile" />
    </Section>
  )
}
