diff --git a/apps/scandic-web/.env.local.example b/apps/scandic-web/.env.local.example
index fd28543c1..651408b1e 100644
--- a/apps/scandic-web/.env.local.example
+++ b/apps/scandic-web/.env.local.example
@@ -60,6 +60,5 @@ ENABLE_BOOKING_WIDGET_HOTELRESERVATION_PATH="false"
SHOW_SITE_WIDE_ALERT="false"
SHOW_SIGNUP_FLOW="true"
-USE_NEW_REWARDS_ENDPOINT="true"
USE_NEW_REWARD_MODEL="true"
diff --git a/apps/scandic-web/.env.test b/apps/scandic-web/.env.test
index 3a0bf6912..701ac3ae2 100644
--- a/apps/scandic-web/.env.test
+++ b/apps/scandic-web/.env.test
@@ -43,7 +43,6 @@ GOOGLE_STATIC_MAP_ID="test"
GOOGLE_DYNAMIC_MAP_ID="test"
NEXT_PUBLIC_HIDE_FOR_NEXT_RELEASE="true"
SALESFORCE_PREFERENCE_BASE_URL="test"
-USE_NEW_REWARDS_ENDPOINT="true"
USE_NEW_REWARD_MODEL="true"
TZ=UTC
@@ -54,4 +53,4 @@ SHOW_SITE_WIDE_ALERT="false"
NEXT_PUBLIC_SENTRY_ENVIRONMENT="test"
NEXT_PUBLIC_SENTRY_CLIENT_SAMPLERATE="0"
-SITEMAP_SYNC_SECRET="test
\ No newline at end of file
+SITEMAP_SYNC_SECRET="test"
diff --git a/apps/scandic-web/components/Blocks/DynamicContent/Rewards/CurrentRewards/Client.tsx b/apps/scandic-web/components/Blocks/DynamicContent/Rewards/CurrentRewards/Client.tsx
index 3f0ddc359..8128c4cf0 100644
--- a/apps/scandic-web/components/Blocks/DynamicContent/Rewards/CurrentRewards/Client.tsx
+++ b/apps/scandic-web/components/Blocks/DynamicContent/Rewards/CurrentRewards/Client.tsx
@@ -19,10 +19,7 @@ import Redeem from "../Redeem"
import styles from "./current.module.css"
import type { CurrentRewardsClientProps } from "@/types/components/myPages/myPage/accountPage"
-import type {
- Reward,
- RewardWithRedeem,
-} from "@/server/routers/contentstack/reward/output"
+import type { Reward } from "@/types/components/myPages/rewards"
export default function ClientCurrentRewards({
rewards: initialData,
@@ -34,7 +31,7 @@ export default function ClientCurrentRewards({
const [currentPage, setCurrentPage] = useState(1)
const { data } = trpc.contentstack.rewards.current.useQuery<{
- rewards: (Reward | RewardWithRedeem)[]
+ rewards: Reward[]
}>(
{
lang,
@@ -70,21 +67,13 @@ export default function ClientCurrentRewards({
{paginatedRewards.map((reward, idx) => {
- const earliestExpirationDate =
- "coupons" in reward
- ? getEarliestExpirationDate(reward.coupons)
- : null
+ const earliestExpirationDate = getEarliestExpirationDate(reward)
return (
- {showRedeem && (
-
- )}
+ {showRedeem &&
}
* {
- min-width: 200px;
-}
-
-.filterButton {
- position: relative;
- display: inline-flex;
- align-items: center;
- gap: var(--Spacing-x1);
- place-self: flex-start;
-}
-
-.filterCount {
- display: flex;
- align-items: center;
- justify-content: center;
- color: var(--Base-Text-Inverted);
- background-color: var(--Base-Text-Accent);
- border-radius: var(--Corner-radius-Rounded);
- width: 20px;
- height: 20px;
- font-size: var(--typography-Footnote-Regular-fontSize);
-}
-
-.customFormCheckbox {
- min-width: 200px;
-}
-
-.customCheckbox {
- display: flex;
- color: var(--text-color);
- cursor: pointer;
-}
-
-.customCheckbox[data-selected] .checkbox {
- border: none;
- background: var(--UI-Input-Controls-Fill-Selected);
-}
-
-.customCheckbox[data-disabled] .checkbox {
- border: 1px solid var(--UI-Input-Controls-Border-Disabled);
- background: var(--UI-Input-Controls-Surface-Disabled);
-}
-
-.customCheckbox[data-focus-visible="true"] {
- outline: 2px solid var(--UI-Input-Controls-Fill-Selected);
- outline-offset: 2px;
-}
-
-.checkboxContainer {
- display: flex;
- align-items: center;
- gap: var(--Spacing-x-one-and-half);
-}
-
-.checkbox {
- width: 24px;
- height: 24px;
- min-width: 24px;
- background: var(--UI-Input-Controls-Surface-Normal);
- border: 1px solid var(--UI-Input-Controls-Border-Normal);
- border-radius: 4px;
- transition: all 200ms;
- display: flex;
- align-items: center;
- justify-content: center;
- forced-color-adjust: none;
-}
-
-@media screen and (min-width: 768px) {
- .overlay {
- display: flex;
- justify-content: center;
- align-items: center;
- }
-
- .modal {
- left: auto;
- bottom: auto;
- width: min(933px, 80vw);
- max-height: 80vh;
- }
-
- .checkboxGroup {
- gap: var(--Spacing-x5);
- }
-}
diff --git a/apps/scandic-web/components/Blocks/DynamicContent/Rewards/CurrentRewards/FilterRewardsModal/index.tsx b/apps/scandic-web/components/Blocks/DynamicContent/Rewards/CurrentRewards/FilterRewardsModal/index.tsx
deleted file mode 100644
index 07658a107..000000000
--- a/apps/scandic-web/components/Blocks/DynamicContent/Rewards/CurrentRewards/FilterRewardsModal/index.tsx
+++ /dev/null
@@ -1,247 +0,0 @@
-"use client"
-
-import { motion } from "framer-motion"
-import { useState } from "react"
-import {
- Checkbox,
- Dialog,
- DialogTrigger,
- Modal,
- ModalOverlay,
-} from "react-aria-components"
-import { useIntl } from "react-intl"
-
-import {
- type MembershipLevelEnum,
- TIER_TO_FRIEND_MAP,
-} from "@/constants/membershipLevels"
-
-import { CloseLargeIcon, FilterIcon } from "@/components/Icons"
-import CheckIcon from "@/components/Icons/Check"
-import Button from "@/components/TempDesignSystem/Button"
-import Body from "@/components/TempDesignSystem/Text/Body"
-import Subtitle from "@/components/TempDesignSystem/Text/Subtitle"
-
-import styles from "./filterRewardsModal.module.css"
-
-import type {
- FilterRewardsModalProps,
- RewardCategory,
-} from "@/types/components/myPages/rewards"
-
-type ModalState = "visible" | "hidden" | "unmounted"
-
-export default function FilterRewardsModal({
- selectedCategories,
- selectedLevels,
- onCategoriesChange,
- onLevelsChange,
- availableTierLevels,
- availableCategories,
-}: FilterRewardsModalProps) {
- const intl = useIntl()
-
- const [animation, setAnimation] = useState("unmounted")
- const [tempCategories, setTempCategories] =
- useState(selectedCategories)
- const [tempLevels, setTempLevels] =
- useState(selectedLevels)
-
- const categoryTranslations: Record = {
- Restaurants: intl.formatMessage({ id: "Restaurants" }),
- Bar: intl.formatMessage({ id: "Bar" }),
- Voucher: intl.formatMessage({ id: "Voucher" }),
- "Services and rooms": intl.formatMessage({ id: "Services and rooms" }),
- "Spa and gym": intl.formatMessage({ id: "Spa and gym" }),
- }
-
- function handleClearAll() {
- setTempCategories([])
- setTempLevels([])
- }
-
- function handleApply(close: () => void) {
- onCategoriesChange(tempCategories)
- onLevelsChange(tempLevels)
- close()
- }
-
- function handleOpenChange(isOpen: boolean) {
- setAnimation(isOpen ? "visible" : "hidden")
- if (isOpen) {
- setTempCategories(selectedCategories)
- setTempLevels(selectedLevels)
- }
- }
-
- return (
-
-
-
- {
- if (state === "hidden") {
- setAnimation("unmounted")
- }
- }}
- variants={variants.fade}
- initial="hidden"
- animate={animation}
- >
-
-
-
-
-
- )
-}
-
-const MotionOverlay = motion(ModalOverlay)
-const MotionModal = motion(Modal)
-
-const variants = {
- fade: {
- hidden: {
- opacity: 0,
- transition: { duration: 0.4, ease: "easeInOut" },
- },
- visible: {
- opacity: 1,
- transition: { duration: 0.4, ease: "easeInOut" },
- },
- },
-
- slideInOut: {
- hidden: {
- opacity: 0,
- y: 32,
- transition: { duration: 0.4, ease: "easeInOut" },
- },
- visible: {
- opacity: 1,
- y: 0,
- transition: { duration: 0.4, ease: "easeInOut" },
- },
- },
-}
diff --git a/apps/scandic-web/components/Blocks/DynamicContent/Rewards/CurrentRewards/index.tsx b/apps/scandic-web/components/Blocks/DynamicContent/Rewards/CurrentRewards/index.tsx
index 11094f382..aa681effa 100644
--- a/apps/scandic-web/components/Blocks/DynamicContent/Rewards/CurrentRewards/index.tsx
+++ b/apps/scandic-web/components/Blocks/DynamicContent/Rewards/CurrentRewards/index.tsx
@@ -31,7 +31,7 @@ export default async function CurrentRewardsBlock({
diff --git a/apps/scandic-web/components/Blocks/DynamicContent/Rewards/Redeem/Flows/Campaign.tsx b/apps/scandic-web/components/Blocks/DynamicContent/Rewards/Redeem/Flows/Campaign.tsx
index 3d6202841..88bf12c84 100644
--- a/apps/scandic-web/components/Blocks/DynamicContent/Rewards/Redeem/Flows/Campaign.tsx
+++ b/apps/scandic-web/components/Blocks/DynamicContent/Rewards/Redeem/Flows/Campaign.tsx
@@ -10,17 +10,13 @@ import Title from "@/components/TempDesignSystem/Text/Title"
import { toast } from "@/components/TempDesignSystem/Toasts"
import { RewardIcon } from "../../RewardIcon"
-import useRedeemFlow from "../useRedeemFlow"
import styles from "../redeem.module.css"
-export default function Campaign() {
- const { reward } = useRedeemFlow()
- const intl = useIntl()
+import type { Campaign } from "@/types/components/myPages/rewards"
- if (!reward) {
- return null
- }
+export default function Campaign({ reward }: { reward: Campaign }) {
+ const intl = useIntl()
return (
<>
diff --git a/apps/scandic-web/components/Blocks/DynamicContent/Rewards/Redeem/Flows/Tier.tsx b/apps/scandic-web/components/Blocks/DynamicContent/Rewards/Redeem/Flows/Tier.tsx
index 69831bd57..a8ac39b11 100644
--- a/apps/scandic-web/components/Blocks/DynamicContent/Rewards/Redeem/Flows/Tier.tsx
+++ b/apps/scandic-web/components/Blocks/DynamicContent/Rewards/Redeem/Flows/Tier.tsx
@@ -16,20 +16,19 @@ import useRedeemFlow from "../useRedeemFlow"
import styles from "../redeem.module.css"
+import type { Surprise, Tier } from "@/types/components/myPages/rewards"
+
export default function Tier({
+ reward,
membershipNumber,
}: {
+ reward: Tier | Surprise
membershipNumber: string
}) {
- const { reward, onRedeem, redeemStep, setRedeemStep, isRedeeming } =
- useRedeemFlow()
+ const { onRedeem, redeemStep, setRedeemStep, isRedeeming } = useRedeemFlow()
const intl = useIntl()
- if (!reward) {
- return null
- }
-
return (
<>
@@ -93,7 +92,7 @@ export default function Tier({
{redeemStep === "confirmation" && (