import { getTranslations } from "next-intl/server"; import { claimDailyReward } from "@/actions/daily-reward"; import { CurrencyIcon } from "@/components/shared/currency-icon"; import { SurfaceCard } from "@/components/surface-card"; import { type DailyRewardState, rewardForStreak, } from "@/lib/services/daily-rewards"; import styles from "./dashboard.module.css"; export default async function DailyRewardCard({ state, }: { state: DailyRewardState; }) { const t = await getTranslations("pages.myDashboard"); if (!state.enabled) { return ( {t("dailyRewardDisabled")} ); } if (state.rewards.length === 0) { return ( {t("dailyRewardUnavailable")} ); } const upcoming = state.alreadyClaimedToday ? rewardForStreak(state.rewards, state.nextStreak + 1) : state.nextReward; return ( {t("dailyRewardHint")} {state.rewards.map((reward) => ( {t("dailyRewardDay", { day: reward.day })} {reward.amount} ))} {t("dailyRewardStreak", { count: state.nextStreak })} {upcoming && ( {t( state.alreadyClaimedToday ? "dailyRewardTomorrow" : "dailyRewardNextClaim", { amount: upcoming.amount, currency: t.has(`currencies.${upcoming.currency}`) ? t(`currencies.${upcoming.currency}`) : upcoming.currency, }, )} )} {state.alreadyClaimedToday ? ( {t("dailyRewardClaimedToday")} ) : ( {t("dailyRewardClaim")} )} ); }
{t("dailyRewardDisabled")}
{t("dailyRewardUnavailable")}
{t("dailyRewardHint")}
{t("dailyRewardStreak", { count: state.nextStreak })}
{t( state.alreadyClaimedToday ? "dailyRewardTomorrow" : "dailyRewardNextClaim", { amount: upcoming.amount, currency: t.has(`currencies.${upcoming.currency}`) ? t(`currencies.${upcoming.currency}`) : upcoming.currency, }, )}
{t("dailyRewardClaimedToday")}