diff --git a/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/DA.json b/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/DA.json index daa0c1a26..880d013a7 100644 --- a/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/DA.json +++ b/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/DA.json @@ -1,7 +1,7 @@ { "levels": [ { - "tier": 1, + "level": 1, "name": "New Friend", "requiredPoints": 0, "requiredNights": 0, @@ -9,21 +9,21 @@ { "title": "Friendly room rates", "value": "Friendly room rates", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "10% off on food on weekends", "value": "10% off", - "explaination": "on food on weekends", + "explanation": "on food on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" }, { "title": "Free kids mocktail during stay", "value": "Free kids mocktail", - "explaination": "during stay", + "explanation": "during stay", "description": "", "href": "" } @@ -31,7 +31,7 @@ "icon": "/_static/icons/loyaltyLevels/new-friend.svg" }, { - "tier": 2, + "level": 2, "name": "Good Friend", "requiredPoints": 5000, "requiredNights": 0, @@ -39,7 +39,7 @@ { "title": "15% on food on weekends", "value": "15% on food", - "explaination": "on weekends", + "explanation": "on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" } @@ -47,7 +47,7 @@ "icon": "/_static/icons/loyaltyLevels/good-friend.svg" }, { - "tier": 3, + "level": 3, "name": "Close Friend", "requiredPoints": 10000, "requiredNights": 0, @@ -55,14 +55,14 @@ { "title": "Late checkout - 1 hour when available", "value": "Late checkout", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "50 SEK voucher", "value": "50 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -70,7 +70,7 @@ "icon": "/_static/icons/loyaltyLevels/close-friend.svg" }, { - "tier": 4, + "level": 4, "name": "Dear Friend", "requiredPoints": 25000, "requiredNights": 0, @@ -78,21 +78,21 @@ { "title": "25% earn rate", "value": "25% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Early check-in - 1 hour when available", "value": "Early check-in", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "75 SEK voucher", "value": "75 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -100,7 +100,7 @@ "icon": "/_static/icons/loyaltyLevels/dear-friend.svg" }, { - "tier": 5, + "level": 5, "name": "Loyal Friend", "requiredPoints": 100000, "requiredNights": 0, @@ -108,21 +108,21 @@ { "title": "Free room upgrade when available", "value": "Free room upgrade", - "explaination": "when available", + "explanation": "when available", "description": "", "href": "" }, { "title": "100 SEK voucher", "value": "100 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "2-for-1 breakfast", "value": "2-for-1 breakfast", - "explaination": "", + "explanation": "", "description": "", "href": "" } @@ -130,7 +130,7 @@ "icon": "/_static/icons/loyaltyLevels/loyal-friend.svg" }, { - "tier": 6, + "level": 6, "name": "True Friend", "requiredPoints": 250000, "requiredNights": 0, @@ -138,28 +138,28 @@ { "title": "50% earn rate", "value": "50% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "150 SEK voucher", "value": "150 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "48h room guarantee", "value": "48h room guarantee", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Always free breakfast", "value": "Always free breakfast", - "explaination": "Always free breakfast", + "explanation": "Always free breakfast", "description": "", "href": "" } @@ -167,7 +167,7 @@ "icon": "/_static/icons/loyaltyLevels/true-friend.svg" }, { - "tier": 7, + "level": 7, "name": "Best Friend", "requiredPoints": 400000, "requiredNights": 100, @@ -175,21 +175,21 @@ { "title": "200 SEK voucher", "value": "200 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "Yearly exclusive gift", "value": "Yearly exclusive gift", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Kid's boost", "value": "Kid's boost", - "explaination": "", + "explanation": "", "description": "", "href": "" } diff --git a/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/DE.json b/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/DE.json index daa0c1a26..880d013a7 100644 --- a/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/DE.json +++ b/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/DE.json @@ -1,7 +1,7 @@ { "levels": [ { - "tier": 1, + "level": 1, "name": "New Friend", "requiredPoints": 0, "requiredNights": 0, @@ -9,21 +9,21 @@ { "title": "Friendly room rates", "value": "Friendly room rates", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "10% off on food on weekends", "value": "10% off", - "explaination": "on food on weekends", + "explanation": "on food on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" }, { "title": "Free kids mocktail during stay", "value": "Free kids mocktail", - "explaination": "during stay", + "explanation": "during stay", "description": "", "href": "" } @@ -31,7 +31,7 @@ "icon": "/_static/icons/loyaltyLevels/new-friend.svg" }, { - "tier": 2, + "level": 2, "name": "Good Friend", "requiredPoints": 5000, "requiredNights": 0, @@ -39,7 +39,7 @@ { "title": "15% on food on weekends", "value": "15% on food", - "explaination": "on weekends", + "explanation": "on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" } @@ -47,7 +47,7 @@ "icon": "/_static/icons/loyaltyLevels/good-friend.svg" }, { - "tier": 3, + "level": 3, "name": "Close Friend", "requiredPoints": 10000, "requiredNights": 0, @@ -55,14 +55,14 @@ { "title": "Late checkout - 1 hour when available", "value": "Late checkout", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "50 SEK voucher", "value": "50 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -70,7 +70,7 @@ "icon": "/_static/icons/loyaltyLevels/close-friend.svg" }, { - "tier": 4, + "level": 4, "name": "Dear Friend", "requiredPoints": 25000, "requiredNights": 0, @@ -78,21 +78,21 @@ { "title": "25% earn rate", "value": "25% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Early check-in - 1 hour when available", "value": "Early check-in", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "75 SEK voucher", "value": "75 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -100,7 +100,7 @@ "icon": "/_static/icons/loyaltyLevels/dear-friend.svg" }, { - "tier": 5, + "level": 5, "name": "Loyal Friend", "requiredPoints": 100000, "requiredNights": 0, @@ -108,21 +108,21 @@ { "title": "Free room upgrade when available", "value": "Free room upgrade", - "explaination": "when available", + "explanation": "when available", "description": "", "href": "" }, { "title": "100 SEK voucher", "value": "100 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "2-for-1 breakfast", "value": "2-for-1 breakfast", - "explaination": "", + "explanation": "", "description": "", "href": "" } @@ -130,7 +130,7 @@ "icon": "/_static/icons/loyaltyLevels/loyal-friend.svg" }, { - "tier": 6, + "level": 6, "name": "True Friend", "requiredPoints": 250000, "requiredNights": 0, @@ -138,28 +138,28 @@ { "title": "50% earn rate", "value": "50% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "150 SEK voucher", "value": "150 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "48h room guarantee", "value": "48h room guarantee", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Always free breakfast", "value": "Always free breakfast", - "explaination": "Always free breakfast", + "explanation": "Always free breakfast", "description": "", "href": "" } @@ -167,7 +167,7 @@ "icon": "/_static/icons/loyaltyLevels/true-friend.svg" }, { - "tier": 7, + "level": 7, "name": "Best Friend", "requiredPoints": 400000, "requiredNights": 100, @@ -175,21 +175,21 @@ { "title": "200 SEK voucher", "value": "200 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "Yearly exclusive gift", "value": "Yearly exclusive gift", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Kid's boost", "value": "Kid's boost", - "explaination": "", + "explanation": "", "description": "", "href": "" } diff --git a/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/EN.json b/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/EN.json index daa0c1a26..880d013a7 100644 --- a/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/EN.json +++ b/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/EN.json @@ -1,7 +1,7 @@ { "levels": [ { - "tier": 1, + "level": 1, "name": "New Friend", "requiredPoints": 0, "requiredNights": 0, @@ -9,21 +9,21 @@ { "title": "Friendly room rates", "value": "Friendly room rates", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "10% off on food on weekends", "value": "10% off", - "explaination": "on food on weekends", + "explanation": "on food on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" }, { "title": "Free kids mocktail during stay", "value": "Free kids mocktail", - "explaination": "during stay", + "explanation": "during stay", "description": "", "href": "" } @@ -31,7 +31,7 @@ "icon": "/_static/icons/loyaltyLevels/new-friend.svg" }, { - "tier": 2, + "level": 2, "name": "Good Friend", "requiredPoints": 5000, "requiredNights": 0, @@ -39,7 +39,7 @@ { "title": "15% on food on weekends", "value": "15% on food", - "explaination": "on weekends", + "explanation": "on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" } @@ -47,7 +47,7 @@ "icon": "/_static/icons/loyaltyLevels/good-friend.svg" }, { - "tier": 3, + "level": 3, "name": "Close Friend", "requiredPoints": 10000, "requiredNights": 0, @@ -55,14 +55,14 @@ { "title": "Late checkout - 1 hour when available", "value": "Late checkout", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "50 SEK voucher", "value": "50 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -70,7 +70,7 @@ "icon": "/_static/icons/loyaltyLevels/close-friend.svg" }, { - "tier": 4, + "level": 4, "name": "Dear Friend", "requiredPoints": 25000, "requiredNights": 0, @@ -78,21 +78,21 @@ { "title": "25% earn rate", "value": "25% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Early check-in - 1 hour when available", "value": "Early check-in", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "75 SEK voucher", "value": "75 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -100,7 +100,7 @@ "icon": "/_static/icons/loyaltyLevels/dear-friend.svg" }, { - "tier": 5, + "level": 5, "name": "Loyal Friend", "requiredPoints": 100000, "requiredNights": 0, @@ -108,21 +108,21 @@ { "title": "Free room upgrade when available", "value": "Free room upgrade", - "explaination": "when available", + "explanation": "when available", "description": "", "href": "" }, { "title": "100 SEK voucher", "value": "100 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "2-for-1 breakfast", "value": "2-for-1 breakfast", - "explaination": "", + "explanation": "", "description": "", "href": "" } @@ -130,7 +130,7 @@ "icon": "/_static/icons/loyaltyLevels/loyal-friend.svg" }, { - "tier": 6, + "level": 6, "name": "True Friend", "requiredPoints": 250000, "requiredNights": 0, @@ -138,28 +138,28 @@ { "title": "50% earn rate", "value": "50% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "150 SEK voucher", "value": "150 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "48h room guarantee", "value": "48h room guarantee", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Always free breakfast", "value": "Always free breakfast", - "explaination": "Always free breakfast", + "explanation": "Always free breakfast", "description": "", "href": "" } @@ -167,7 +167,7 @@ "icon": "/_static/icons/loyaltyLevels/true-friend.svg" }, { - "tier": 7, + "level": 7, "name": "Best Friend", "requiredPoints": 400000, "requiredNights": 100, @@ -175,21 +175,21 @@ { "title": "200 SEK voucher", "value": "200 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "Yearly exclusive gift", "value": "Yearly exclusive gift", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Kid's boost", "value": "Kid's boost", - "explaination": "", + "explanation": "", "description": "", "href": "" } diff --git a/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/FI.json b/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/FI.json index daa0c1a26..880d013a7 100644 --- a/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/FI.json +++ b/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/FI.json @@ -1,7 +1,7 @@ { "levels": [ { - "tier": 1, + "level": 1, "name": "New Friend", "requiredPoints": 0, "requiredNights": 0, @@ -9,21 +9,21 @@ { "title": "Friendly room rates", "value": "Friendly room rates", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "10% off on food on weekends", "value": "10% off", - "explaination": "on food on weekends", + "explanation": "on food on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" }, { "title": "Free kids mocktail during stay", "value": "Free kids mocktail", - "explaination": "during stay", + "explanation": "during stay", "description": "", "href": "" } @@ -31,7 +31,7 @@ "icon": "/_static/icons/loyaltyLevels/new-friend.svg" }, { - "tier": 2, + "level": 2, "name": "Good Friend", "requiredPoints": 5000, "requiredNights": 0, @@ -39,7 +39,7 @@ { "title": "15% on food on weekends", "value": "15% on food", - "explaination": "on weekends", + "explanation": "on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" } @@ -47,7 +47,7 @@ "icon": "/_static/icons/loyaltyLevels/good-friend.svg" }, { - "tier": 3, + "level": 3, "name": "Close Friend", "requiredPoints": 10000, "requiredNights": 0, @@ -55,14 +55,14 @@ { "title": "Late checkout - 1 hour when available", "value": "Late checkout", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "50 SEK voucher", "value": "50 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -70,7 +70,7 @@ "icon": "/_static/icons/loyaltyLevels/close-friend.svg" }, { - "tier": 4, + "level": 4, "name": "Dear Friend", "requiredPoints": 25000, "requiredNights": 0, @@ -78,21 +78,21 @@ { "title": "25% earn rate", "value": "25% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Early check-in - 1 hour when available", "value": "Early check-in", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "75 SEK voucher", "value": "75 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -100,7 +100,7 @@ "icon": "/_static/icons/loyaltyLevels/dear-friend.svg" }, { - "tier": 5, + "level": 5, "name": "Loyal Friend", "requiredPoints": 100000, "requiredNights": 0, @@ -108,21 +108,21 @@ { "title": "Free room upgrade when available", "value": "Free room upgrade", - "explaination": "when available", + "explanation": "when available", "description": "", "href": "" }, { "title": "100 SEK voucher", "value": "100 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "2-for-1 breakfast", "value": "2-for-1 breakfast", - "explaination": "", + "explanation": "", "description": "", "href": "" } @@ -130,7 +130,7 @@ "icon": "/_static/icons/loyaltyLevels/loyal-friend.svg" }, { - "tier": 6, + "level": 6, "name": "True Friend", "requiredPoints": 250000, "requiredNights": 0, @@ -138,28 +138,28 @@ { "title": "50% earn rate", "value": "50% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "150 SEK voucher", "value": "150 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "48h room guarantee", "value": "48h room guarantee", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Always free breakfast", "value": "Always free breakfast", - "explaination": "Always free breakfast", + "explanation": "Always free breakfast", "description": "", "href": "" } @@ -167,7 +167,7 @@ "icon": "/_static/icons/loyaltyLevels/true-friend.svg" }, { - "tier": 7, + "level": 7, "name": "Best Friend", "requiredPoints": 400000, "requiredNights": 100, @@ -175,21 +175,21 @@ { "title": "200 SEK voucher", "value": "200 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "Yearly exclusive gift", "value": "Yearly exclusive gift", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Kid's boost", "value": "Kid's boost", - "explaination": "", + "explanation": "", "description": "", "href": "" } diff --git a/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/NO.json b/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/NO.json index 74a836b42..cc9187f49 100644 --- a/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/NO.json +++ b/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/NO.json @@ -1,7 +1,7 @@ { "levels": [ { - "tier": 1, + "level": 1, "name": "New Friend", "requiredPoints": 0, "requiredNights": 0, @@ -9,21 +9,21 @@ { "title": "Friendly room rates", "value": "Friendly room rates", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "10% off on food on weekends", "value": "10% off", - "explaination": "on food on weekends", + "explanation": "on food on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" }, { "title": "Free kids mocktail during stay", "value": "Free kids mocktail", - "explaination": "during stay", + "explanation": "during stay", "description": "", "href": "" } @@ -31,7 +31,7 @@ "icon": "/_static/icons/loyaltylevels/new-friend.svg" }, { - "tier": 2, + "level": 2, "name": "Good Friend", "requiredPoints": 5000, "requiredNights": 0, @@ -39,7 +39,7 @@ { "title": "15% on food on weekends", "value": "15% on food", - "explaination": "on weekends", + "explanation": "on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" } @@ -47,7 +47,7 @@ "icon": "/_static/icons/loyaltylevels/good-friend.svg" }, { - "tier": 3, + "level": 3, "name": "Close Friend", "requiredPoints": 10000, "requiredNights": 0, @@ -55,14 +55,14 @@ { "title": "Late checkout - 1 hour when available", "value": "Late checkout", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "50 SEK voucher", "value": "50 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -70,7 +70,7 @@ "icon": "/_static/icons/loyaltylevels/close-friend.svg" }, { - "tier": 4, + "level": 4, "name": "Dear Friend", "requiredPoints": 25000, "requiredNights": 0, @@ -78,21 +78,21 @@ { "title": "25% earn rate", "value": "25% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Early check-in - 1 hour when available", "value": "Early check-in", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "75 SEK voucher", "value": "75 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -100,7 +100,7 @@ "icon": "/_static/icons/loyaltylevels/dear-friend.svg" }, { - "tier": 5, + "level": 5, "name": "Loyal Friend", "requiredPoints": 100000, "requiredNights": 0, @@ -108,21 +108,21 @@ { "title": "Free room upgrade when available", "value": "Free room upgrade", - "explaination": "when available", + "explanation": "when available", "description": "", "href": "" }, { "title": "100 SEK voucher", "value": "100 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "2-for-1 breakfast", "value": "2-for-1 breakfast", - "explaination": "", + "explanation": "", "description": "", "href": "" } @@ -130,7 +130,7 @@ "icon": "/_static/icons/loyaltylevels/loyal-friend.svg" }, { - "tier": 6, + "level": 6, "name": "True Friend", "requiredPoints": 250000, "requiredNights": 0, @@ -138,28 +138,28 @@ { "title": "50% earn rate", "value": "50% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "150 SEK voucher", "value": "150 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "48h room guarantee", "value": "48h room guarantee", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Always free breakfast", "value": "Always free breakfast", - "explaination": "Always free breakfast", + "explanation": "Always free breakfast", "description": "", "href": "" } @@ -167,7 +167,7 @@ "icon": "/_static/icons/loyaltylevels/true-friend.svg" }, { - "tier": 7, + "level": 7, "name": "Best Friend", "requiredPoints": 400000, "requiredNights": 100, @@ -175,21 +175,21 @@ { "title": "200 SEK voucher", "value": "200 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "Yearly exclusive gift", "value": "Yearly exclusive gift", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Kid's boost", "value": "Kid's boost", - "explaination": "", + "explanation": "", "description": "", "href": "" } diff --git a/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/SV.json b/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/SV.json index 74a836b42..cc9187f49 100644 --- a/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/SV.json +++ b/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data/SV.json @@ -1,7 +1,7 @@ { "levels": [ { - "tier": 1, + "level": 1, "name": "New Friend", "requiredPoints": 0, "requiredNights": 0, @@ -9,21 +9,21 @@ { "title": "Friendly room rates", "value": "Friendly room rates", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "10% off on food on weekends", "value": "10% off", - "explaination": "on food on weekends", + "explanation": "on food on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" }, { "title": "Free kids mocktail during stay", "value": "Free kids mocktail", - "explaination": "during stay", + "explanation": "during stay", "description": "", "href": "" } @@ -31,7 +31,7 @@ "icon": "/_static/icons/loyaltylevels/new-friend.svg" }, { - "tier": 2, + "level": 2, "name": "Good Friend", "requiredPoints": 5000, "requiredNights": 0, @@ -39,7 +39,7 @@ { "title": "15% on food on weekends", "value": "15% on food", - "explaination": "on weekends", + "explanation": "on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" } @@ -47,7 +47,7 @@ "icon": "/_static/icons/loyaltylevels/good-friend.svg" }, { - "tier": 3, + "level": 3, "name": "Close Friend", "requiredPoints": 10000, "requiredNights": 0, @@ -55,14 +55,14 @@ { "title": "Late checkout - 1 hour when available", "value": "Late checkout", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "50 SEK voucher", "value": "50 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -70,7 +70,7 @@ "icon": "/_static/icons/loyaltylevels/close-friend.svg" }, { - "tier": 4, + "level": 4, "name": "Dear Friend", "requiredPoints": 25000, "requiredNights": 0, @@ -78,21 +78,21 @@ { "title": "25% earn rate", "value": "25% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Early check-in - 1 hour when available", "value": "Early check-in", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "75 SEK voucher", "value": "75 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -100,7 +100,7 @@ "icon": "/_static/icons/loyaltylevels/dear-friend.svg" }, { - "tier": 5, + "level": 5, "name": "Loyal Friend", "requiredPoints": 100000, "requiredNights": 0, @@ -108,21 +108,21 @@ { "title": "Free room upgrade when available", "value": "Free room upgrade", - "explaination": "when available", + "explanation": "when available", "description": "", "href": "" }, { "title": "100 SEK voucher", "value": "100 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "2-for-1 breakfast", "value": "2-for-1 breakfast", - "explaination": "", + "explanation": "", "description": "", "href": "" } @@ -130,7 +130,7 @@ "icon": "/_static/icons/loyaltylevels/loyal-friend.svg" }, { - "tier": 6, + "level": 6, "name": "True Friend", "requiredPoints": 250000, "requiredNights": 0, @@ -138,28 +138,28 @@ { "title": "50% earn rate", "value": "50% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "150 SEK voucher", "value": "150 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "48h room guarantee", "value": "48h room guarantee", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Always free breakfast", "value": "Always free breakfast", - "explaination": "Always free breakfast", + "explanation": "Always free breakfast", "description": "", "href": "" } @@ -167,7 +167,7 @@ "icon": "/_static/icons/loyaltylevels/true-friend.svg" }, { - "tier": 7, + "level": 7, "name": "Best Friend", "requiredPoints": 400000, "requiredNights": 100, @@ -175,21 +175,21 @@ { "title": "200 SEK voucher", "value": "200 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "Yearly exclusive gift", "value": "Yearly exclusive gift", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Kid's boost", "value": "Kid's boost", - "explaination": "", + "explanation": "", "description": "", "href": "" } diff --git a/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/index.tsx b/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/index.tsx index dde3685b1..4d4292bb6 100644 --- a/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/index.tsx +++ b/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/index.tsx @@ -37,7 +37,7 @@ export default function LoyaltyLevels() {
{levels.map((level: Level) => ( - {level.tier} + {level.level} {Level ? : null}
diff --git a/components/MyPages/Blocks/Benefits/CurrentLevel/index.tsx b/components/MyPages/Blocks/Benefits/CurrentLevel/index.tsx index 80744a90e..818b2be30 100644 --- a/components/MyPages/Blocks/Benefits/CurrentLevel/index.tsx +++ b/components/MyPages/Blocks/Benefits/CurrentLevel/index.tsx @@ -1,3 +1,4 @@ +import { MembershipLevelEnum } from "@/constants/membershipLevels" import { serverClient } from "@/lib/trpc/server" import Header from "@/components/SectionHeader" @@ -6,43 +7,58 @@ import Link from "@/components/TempDesignSystem/Link" import BiroScript from "@/components/TempDesignSystem/Text/BiroScript" import Title from "@/components/TempDesignSystem/Text/Title" import { getIntl } from "@/i18n" +import { getMembershipLevelObject } from "@/utils/membershipLevel" +import { getMembership } from "@/utils/user" import styles from "./current.module.css" -import { AccountPageComponentProps } from "@/types/components/myPages/myPage/accountPage" +import type { AccountPageComponentProps } from "@/types/components/myPages/myPage/accountPage" +import type { LangParams } from "@/types/params" export default async function CurrentBenefitsBlock({ title, subtitle, link, -}: AccountPageComponentProps) { + lang, +}: AccountPageComponentProps & LangParams) { const user = await serverClient().user.get() const { formatMessage } = await getIntl() - // TODO: level should be fetched from the `user` object once available // TAKE NOTE: we need clarification on how benefits stack from different levels // in order to determine if a benefit is specific to a level or if it is a cumulative benefit // we might have to add a new boolean property "exclusive" or similar - const userLevel = 1 + if (!user) { + return null + } + const membership = getMembership(user.memberships) + if (!membership) { + // TODO: handle this case? + return null + } - const currentLevel = Array.of(...Array(3).keys()) + const currentLevel = getMembershipLevelObject( + user.memberships[0].membershipLevel as MembershipLevelEnum, + lang + ) + if (!currentLevel) { + // TODO: handle this case? + return null + } return (
- {currentLevel.map((benefit) => ( - + {currentLevel.benefits.map((benefit, idx) => ( + - {formatMessage({ id: "As our Close Friend" })} + {formatMessage({ id: "As our" })} {currentLevel.name} - {formatMessage({ - id: "Free soft drink voucher for the kids when staying", - })} + {benefit.title} ))} diff --git a/components/MyPages/Blocks/Benefits/data/DA.json b/components/MyPages/Blocks/Benefits/data/DA.json index 74a836b42..cc9187f49 100644 --- a/components/MyPages/Blocks/Benefits/data/DA.json +++ b/components/MyPages/Blocks/Benefits/data/DA.json @@ -1,7 +1,7 @@ { "levels": [ { - "tier": 1, + "level": 1, "name": "New Friend", "requiredPoints": 0, "requiredNights": 0, @@ -9,21 +9,21 @@ { "title": "Friendly room rates", "value": "Friendly room rates", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "10% off on food on weekends", "value": "10% off", - "explaination": "on food on weekends", + "explanation": "on food on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" }, { "title": "Free kids mocktail during stay", "value": "Free kids mocktail", - "explaination": "during stay", + "explanation": "during stay", "description": "", "href": "" } @@ -31,7 +31,7 @@ "icon": "/_static/icons/loyaltylevels/new-friend.svg" }, { - "tier": 2, + "level": 2, "name": "Good Friend", "requiredPoints": 5000, "requiredNights": 0, @@ -39,7 +39,7 @@ { "title": "15% on food on weekends", "value": "15% on food", - "explaination": "on weekends", + "explanation": "on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" } @@ -47,7 +47,7 @@ "icon": "/_static/icons/loyaltylevels/good-friend.svg" }, { - "tier": 3, + "level": 3, "name": "Close Friend", "requiredPoints": 10000, "requiredNights": 0, @@ -55,14 +55,14 @@ { "title": "Late checkout - 1 hour when available", "value": "Late checkout", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "50 SEK voucher", "value": "50 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -70,7 +70,7 @@ "icon": "/_static/icons/loyaltylevels/close-friend.svg" }, { - "tier": 4, + "level": 4, "name": "Dear Friend", "requiredPoints": 25000, "requiredNights": 0, @@ -78,21 +78,21 @@ { "title": "25% earn rate", "value": "25% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Early check-in - 1 hour when available", "value": "Early check-in", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "75 SEK voucher", "value": "75 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -100,7 +100,7 @@ "icon": "/_static/icons/loyaltylevels/dear-friend.svg" }, { - "tier": 5, + "level": 5, "name": "Loyal Friend", "requiredPoints": 100000, "requiredNights": 0, @@ -108,21 +108,21 @@ { "title": "Free room upgrade when available", "value": "Free room upgrade", - "explaination": "when available", + "explanation": "when available", "description": "", "href": "" }, { "title": "100 SEK voucher", "value": "100 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "2-for-1 breakfast", "value": "2-for-1 breakfast", - "explaination": "", + "explanation": "", "description": "", "href": "" } @@ -130,7 +130,7 @@ "icon": "/_static/icons/loyaltylevels/loyal-friend.svg" }, { - "tier": 6, + "level": 6, "name": "True Friend", "requiredPoints": 250000, "requiredNights": 0, @@ -138,28 +138,28 @@ { "title": "50% earn rate", "value": "50% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "150 SEK voucher", "value": "150 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "48h room guarantee", "value": "48h room guarantee", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Always free breakfast", "value": "Always free breakfast", - "explaination": "Always free breakfast", + "explanation": "Always free breakfast", "description": "", "href": "" } @@ -167,7 +167,7 @@ "icon": "/_static/icons/loyaltylevels/true-friend.svg" }, { - "tier": 7, + "level": 7, "name": "Best Friend", "requiredPoints": 400000, "requiredNights": 100, @@ -175,21 +175,21 @@ { "title": "200 SEK voucher", "value": "200 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "Yearly exclusive gift", "value": "Yearly exclusive gift", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Kid's boost", "value": "Kid's boost", - "explaination": "", + "explanation": "", "description": "", "href": "" } diff --git a/components/MyPages/Blocks/Benefits/data/DE.json b/components/MyPages/Blocks/Benefits/data/DE.json index 74a836b42..cc9187f49 100644 --- a/components/MyPages/Blocks/Benefits/data/DE.json +++ b/components/MyPages/Blocks/Benefits/data/DE.json @@ -1,7 +1,7 @@ { "levels": [ { - "tier": 1, + "level": 1, "name": "New Friend", "requiredPoints": 0, "requiredNights": 0, @@ -9,21 +9,21 @@ { "title": "Friendly room rates", "value": "Friendly room rates", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "10% off on food on weekends", "value": "10% off", - "explaination": "on food on weekends", + "explanation": "on food on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" }, { "title": "Free kids mocktail during stay", "value": "Free kids mocktail", - "explaination": "during stay", + "explanation": "during stay", "description": "", "href": "" } @@ -31,7 +31,7 @@ "icon": "/_static/icons/loyaltylevels/new-friend.svg" }, { - "tier": 2, + "level": 2, "name": "Good Friend", "requiredPoints": 5000, "requiredNights": 0, @@ -39,7 +39,7 @@ { "title": "15% on food on weekends", "value": "15% on food", - "explaination": "on weekends", + "explanation": "on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" } @@ -47,7 +47,7 @@ "icon": "/_static/icons/loyaltylevels/good-friend.svg" }, { - "tier": 3, + "level": 3, "name": "Close Friend", "requiredPoints": 10000, "requiredNights": 0, @@ -55,14 +55,14 @@ { "title": "Late checkout - 1 hour when available", "value": "Late checkout", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "50 SEK voucher", "value": "50 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -70,7 +70,7 @@ "icon": "/_static/icons/loyaltylevels/close-friend.svg" }, { - "tier": 4, + "level": 4, "name": "Dear Friend", "requiredPoints": 25000, "requiredNights": 0, @@ -78,21 +78,21 @@ { "title": "25% earn rate", "value": "25% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Early check-in - 1 hour when available", "value": "Early check-in", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "75 SEK voucher", "value": "75 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -100,7 +100,7 @@ "icon": "/_static/icons/loyaltylevels/dear-friend.svg" }, { - "tier": 5, + "level": 5, "name": "Loyal Friend", "requiredPoints": 100000, "requiredNights": 0, @@ -108,21 +108,21 @@ { "title": "Free room upgrade when available", "value": "Free room upgrade", - "explaination": "when available", + "explanation": "when available", "description": "", "href": "" }, { "title": "100 SEK voucher", "value": "100 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "2-for-1 breakfast", "value": "2-for-1 breakfast", - "explaination": "", + "explanation": "", "description": "", "href": "" } @@ -130,7 +130,7 @@ "icon": "/_static/icons/loyaltylevels/loyal-friend.svg" }, { - "tier": 6, + "level": 6, "name": "True Friend", "requiredPoints": 250000, "requiredNights": 0, @@ -138,28 +138,28 @@ { "title": "50% earn rate", "value": "50% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "150 SEK voucher", "value": "150 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "48h room guarantee", "value": "48h room guarantee", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Always free breakfast", "value": "Always free breakfast", - "explaination": "Always free breakfast", + "explanation": "Always free breakfast", "description": "", "href": "" } @@ -167,7 +167,7 @@ "icon": "/_static/icons/loyaltylevels/true-friend.svg" }, { - "tier": 7, + "level": 7, "name": "Best Friend", "requiredPoints": 400000, "requiredNights": 100, @@ -175,21 +175,21 @@ { "title": "200 SEK voucher", "value": "200 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "Yearly exclusive gift", "value": "Yearly exclusive gift", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Kid's boost", "value": "Kid's boost", - "explaination": "", + "explanation": "", "description": "", "href": "" } diff --git a/components/MyPages/Blocks/Benefits/data/EN.json b/components/MyPages/Blocks/Benefits/data/EN.json index 74a836b42..cc9187f49 100644 --- a/components/MyPages/Blocks/Benefits/data/EN.json +++ b/components/MyPages/Blocks/Benefits/data/EN.json @@ -1,7 +1,7 @@ { "levels": [ { - "tier": 1, + "level": 1, "name": "New Friend", "requiredPoints": 0, "requiredNights": 0, @@ -9,21 +9,21 @@ { "title": "Friendly room rates", "value": "Friendly room rates", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "10% off on food on weekends", "value": "10% off", - "explaination": "on food on weekends", + "explanation": "on food on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" }, { "title": "Free kids mocktail during stay", "value": "Free kids mocktail", - "explaination": "during stay", + "explanation": "during stay", "description": "", "href": "" } @@ -31,7 +31,7 @@ "icon": "/_static/icons/loyaltylevels/new-friend.svg" }, { - "tier": 2, + "level": 2, "name": "Good Friend", "requiredPoints": 5000, "requiredNights": 0, @@ -39,7 +39,7 @@ { "title": "15% on food on weekends", "value": "15% on food", - "explaination": "on weekends", + "explanation": "on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" } @@ -47,7 +47,7 @@ "icon": "/_static/icons/loyaltylevels/good-friend.svg" }, { - "tier": 3, + "level": 3, "name": "Close Friend", "requiredPoints": 10000, "requiredNights": 0, @@ -55,14 +55,14 @@ { "title": "Late checkout - 1 hour when available", "value": "Late checkout", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "50 SEK voucher", "value": "50 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -70,7 +70,7 @@ "icon": "/_static/icons/loyaltylevels/close-friend.svg" }, { - "tier": 4, + "level": 4, "name": "Dear Friend", "requiredPoints": 25000, "requiredNights": 0, @@ -78,21 +78,21 @@ { "title": "25% earn rate", "value": "25% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Early check-in - 1 hour when available", "value": "Early check-in", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "75 SEK voucher", "value": "75 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -100,7 +100,7 @@ "icon": "/_static/icons/loyaltylevels/dear-friend.svg" }, { - "tier": 5, + "level": 5, "name": "Loyal Friend", "requiredPoints": 100000, "requiredNights": 0, @@ -108,21 +108,21 @@ { "title": "Free room upgrade when available", "value": "Free room upgrade", - "explaination": "when available", + "explanation": "when available", "description": "", "href": "" }, { "title": "100 SEK voucher", "value": "100 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "2-for-1 breakfast", "value": "2-for-1 breakfast", - "explaination": "", + "explanation": "", "description": "", "href": "" } @@ -130,7 +130,7 @@ "icon": "/_static/icons/loyaltylevels/loyal-friend.svg" }, { - "tier": 6, + "level": 6, "name": "True Friend", "requiredPoints": 250000, "requiredNights": 0, @@ -138,28 +138,28 @@ { "title": "50% earn rate", "value": "50% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "150 SEK voucher", "value": "150 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "48h room guarantee", "value": "48h room guarantee", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Always free breakfast", "value": "Always free breakfast", - "explaination": "Always free breakfast", + "explanation": "Always free breakfast", "description": "", "href": "" } @@ -167,7 +167,7 @@ "icon": "/_static/icons/loyaltylevels/true-friend.svg" }, { - "tier": 7, + "level": 7, "name": "Best Friend", "requiredPoints": 400000, "requiredNights": 100, @@ -175,21 +175,21 @@ { "title": "200 SEK voucher", "value": "200 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "Yearly exclusive gift", "value": "Yearly exclusive gift", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Kid's boost", "value": "Kid's boost", - "explaination": "", + "explanation": "", "description": "", "href": "" } diff --git a/components/MyPages/Blocks/Benefits/data/FI.json b/components/MyPages/Blocks/Benefits/data/FI.json index 74a836b42..cc9187f49 100644 --- a/components/MyPages/Blocks/Benefits/data/FI.json +++ b/components/MyPages/Blocks/Benefits/data/FI.json @@ -1,7 +1,7 @@ { "levels": [ { - "tier": 1, + "level": 1, "name": "New Friend", "requiredPoints": 0, "requiredNights": 0, @@ -9,21 +9,21 @@ { "title": "Friendly room rates", "value": "Friendly room rates", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "10% off on food on weekends", "value": "10% off", - "explaination": "on food on weekends", + "explanation": "on food on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" }, { "title": "Free kids mocktail during stay", "value": "Free kids mocktail", - "explaination": "during stay", + "explanation": "during stay", "description": "", "href": "" } @@ -31,7 +31,7 @@ "icon": "/_static/icons/loyaltylevels/new-friend.svg" }, { - "tier": 2, + "level": 2, "name": "Good Friend", "requiredPoints": 5000, "requiredNights": 0, @@ -39,7 +39,7 @@ { "title": "15% on food on weekends", "value": "15% on food", - "explaination": "on weekends", + "explanation": "on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" } @@ -47,7 +47,7 @@ "icon": "/_static/icons/loyaltylevels/good-friend.svg" }, { - "tier": 3, + "level": 3, "name": "Close Friend", "requiredPoints": 10000, "requiredNights": 0, @@ -55,14 +55,14 @@ { "title": "Late checkout - 1 hour when available", "value": "Late checkout", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "50 SEK voucher", "value": "50 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -70,7 +70,7 @@ "icon": "/_static/icons/loyaltylevels/close-friend.svg" }, { - "tier": 4, + "level": 4, "name": "Dear Friend", "requiredPoints": 25000, "requiredNights": 0, @@ -78,21 +78,21 @@ { "title": "25% earn rate", "value": "25% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Early check-in - 1 hour when available", "value": "Early check-in", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "75 SEK voucher", "value": "75 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -100,7 +100,7 @@ "icon": "/_static/icons/loyaltylevels/dear-friend.svg" }, { - "tier": 5, + "level": 5, "name": "Loyal Friend", "requiredPoints": 100000, "requiredNights": 0, @@ -108,21 +108,21 @@ { "title": "Free room upgrade when available", "value": "Free room upgrade", - "explaination": "when available", + "explanation": "when available", "description": "", "href": "" }, { "title": "100 SEK voucher", "value": "100 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "2-for-1 breakfast", "value": "2-for-1 breakfast", - "explaination": "", + "explanation": "", "description": "", "href": "" } @@ -130,7 +130,7 @@ "icon": "/_static/icons/loyaltylevels/loyal-friend.svg" }, { - "tier": 6, + "level": 6, "name": "True Friend", "requiredPoints": 250000, "requiredNights": 0, @@ -138,28 +138,28 @@ { "title": "50% earn rate", "value": "50% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "150 SEK voucher", "value": "150 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "48h room guarantee", "value": "48h room guarantee", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Always free breakfast", "value": "Always free breakfast", - "explaination": "Always free breakfast", + "explanation": "Always free breakfast", "description": "", "href": "" } @@ -167,7 +167,7 @@ "icon": "/_static/icons/loyaltylevels/true-friend.svg" }, { - "tier": 7, + "level": 7, "name": "Best Friend", "requiredPoints": 400000, "requiredNights": 100, @@ -175,21 +175,21 @@ { "title": "200 SEK voucher", "value": "200 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "Yearly exclusive gift", "value": "Yearly exclusive gift", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Kid's boost", "value": "Kid's boost", - "explaination": "", + "explanation": "", "description": "", "href": "" } diff --git a/components/MyPages/Blocks/Benefits/data/NO.json b/components/MyPages/Blocks/Benefits/data/NO.json index 74a836b42..cc9187f49 100644 --- a/components/MyPages/Blocks/Benefits/data/NO.json +++ b/components/MyPages/Blocks/Benefits/data/NO.json @@ -1,7 +1,7 @@ { "levels": [ { - "tier": 1, + "level": 1, "name": "New Friend", "requiredPoints": 0, "requiredNights": 0, @@ -9,21 +9,21 @@ { "title": "Friendly room rates", "value": "Friendly room rates", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "10% off on food on weekends", "value": "10% off", - "explaination": "on food on weekends", + "explanation": "on food on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" }, { "title": "Free kids mocktail during stay", "value": "Free kids mocktail", - "explaination": "during stay", + "explanation": "during stay", "description": "", "href": "" } @@ -31,7 +31,7 @@ "icon": "/_static/icons/loyaltylevels/new-friend.svg" }, { - "tier": 2, + "level": 2, "name": "Good Friend", "requiredPoints": 5000, "requiredNights": 0, @@ -39,7 +39,7 @@ { "title": "15% on food on weekends", "value": "15% on food", - "explaination": "on weekends", + "explanation": "on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" } @@ -47,7 +47,7 @@ "icon": "/_static/icons/loyaltylevels/good-friend.svg" }, { - "tier": 3, + "level": 3, "name": "Close Friend", "requiredPoints": 10000, "requiredNights": 0, @@ -55,14 +55,14 @@ { "title": "Late checkout - 1 hour when available", "value": "Late checkout", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "50 SEK voucher", "value": "50 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -70,7 +70,7 @@ "icon": "/_static/icons/loyaltylevels/close-friend.svg" }, { - "tier": 4, + "level": 4, "name": "Dear Friend", "requiredPoints": 25000, "requiredNights": 0, @@ -78,21 +78,21 @@ { "title": "25% earn rate", "value": "25% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Early check-in - 1 hour when available", "value": "Early check-in", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "75 SEK voucher", "value": "75 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -100,7 +100,7 @@ "icon": "/_static/icons/loyaltylevels/dear-friend.svg" }, { - "tier": 5, + "level": 5, "name": "Loyal Friend", "requiredPoints": 100000, "requiredNights": 0, @@ -108,21 +108,21 @@ { "title": "Free room upgrade when available", "value": "Free room upgrade", - "explaination": "when available", + "explanation": "when available", "description": "", "href": "" }, { "title": "100 SEK voucher", "value": "100 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "2-for-1 breakfast", "value": "2-for-1 breakfast", - "explaination": "", + "explanation": "", "description": "", "href": "" } @@ -130,7 +130,7 @@ "icon": "/_static/icons/loyaltylevels/loyal-friend.svg" }, { - "tier": 6, + "level": 6, "name": "True Friend", "requiredPoints": 250000, "requiredNights": 0, @@ -138,28 +138,28 @@ { "title": "50% earn rate", "value": "50% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "150 SEK voucher", "value": "150 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "48h room guarantee", "value": "48h room guarantee", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Always free breakfast", "value": "Always free breakfast", - "explaination": "Always free breakfast", + "explanation": "Always free breakfast", "description": "", "href": "" } @@ -167,7 +167,7 @@ "icon": "/_static/icons/loyaltylevels/true-friend.svg" }, { - "tier": 7, + "level": 7, "name": "Best Friend", "requiredPoints": 400000, "requiredNights": 100, @@ -175,21 +175,21 @@ { "title": "200 SEK voucher", "value": "200 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "Yearly exclusive gift", "value": "Yearly exclusive gift", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Kid's boost", "value": "Kid's boost", - "explaination": "", + "explanation": "", "description": "", "href": "" } diff --git a/components/MyPages/Blocks/Benefits/data/SV.json b/components/MyPages/Blocks/Benefits/data/SV.json index 74a836b42..cc9187f49 100644 --- a/components/MyPages/Blocks/Benefits/data/SV.json +++ b/components/MyPages/Blocks/Benefits/data/SV.json @@ -1,7 +1,7 @@ { "levels": [ { - "tier": 1, + "level": 1, "name": "New Friend", "requiredPoints": 0, "requiredNights": 0, @@ -9,21 +9,21 @@ { "title": "Friendly room rates", "value": "Friendly room rates", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "10% off on food on weekends", "value": "10% off", - "explaination": "on food on weekends", + "explanation": "on food on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" }, { "title": "Free kids mocktail during stay", "value": "Free kids mocktail", - "explaination": "during stay", + "explanation": "during stay", "description": "", "href": "" } @@ -31,7 +31,7 @@ "icon": "/_static/icons/loyaltylevels/new-friend.svg" }, { - "tier": 2, + "level": 2, "name": "Good Friend", "requiredPoints": 5000, "requiredNights": 0, @@ -39,7 +39,7 @@ { "title": "15% on food on weekends", "value": "15% on food", - "explaination": "on weekends", + "explanation": "on weekends", "description": "Go ahead – use your friendly discount to grab a bite during weekends.", "href": "" } @@ -47,7 +47,7 @@ "icon": "/_static/icons/loyaltylevels/good-friend.svg" }, { - "tier": 3, + "level": 3, "name": "Close Friend", "requiredPoints": 10000, "requiredNights": 0, @@ -55,14 +55,14 @@ { "title": "Late checkout - 1 hour when available", "value": "Late checkout", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "50 SEK voucher", "value": "50 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -70,7 +70,7 @@ "icon": "/_static/icons/loyaltylevels/close-friend.svg" }, { - "tier": 4, + "level": 4, "name": "Dear Friend", "requiredPoints": 25000, "requiredNights": 0, @@ -78,21 +78,21 @@ { "title": "25% earn rate", "value": "25% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Early check-in - 1 hour when available", "value": "Early check-in", - "explaination": "- 1 hour when available", + "explanation": "- 1 hour when available", "description": "", "href": "" }, { "title": "75 SEK voucher", "value": "75 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" } @@ -100,7 +100,7 @@ "icon": "/_static/icons/loyaltylevels/dear-friend.svg" }, { - "tier": 5, + "level": 5, "name": "Loyal Friend", "requiredPoints": 100000, "requiredNights": 0, @@ -108,21 +108,21 @@ { "title": "Free room upgrade when available", "value": "Free room upgrade", - "explaination": "when available", + "explanation": "when available", "description": "", "href": "" }, { "title": "100 SEK voucher", "value": "100 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "2-for-1 breakfast", "value": "2-for-1 breakfast", - "explaination": "", + "explanation": "", "description": "", "href": "" } @@ -130,7 +130,7 @@ "icon": "/_static/icons/loyaltylevels/loyal-friend.svg" }, { - "tier": 6, + "level": 6, "name": "True Friend", "requiredPoints": 250000, "requiredNights": 0, @@ -138,28 +138,28 @@ { "title": "50% earn rate", "value": "50% earn rate", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "150 SEK voucher", "value": "150 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "48h room guarantee", "value": "48h room guarantee", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Always free breakfast", "value": "Always free breakfast", - "explaination": "Always free breakfast", + "explanation": "Always free breakfast", "description": "", "href": "" } @@ -167,7 +167,7 @@ "icon": "/_static/icons/loyaltylevels/true-friend.svg" }, { - "tier": 7, + "level": 7, "name": "Best Friend", "requiredPoints": 400000, "requiredNights": 100, @@ -175,21 +175,21 @@ { "title": "200 SEK voucher", "value": "200 SEK voucher", - "explaination": "", + "explanation": "", "description": "Yeah, that’s right: for each friendship point-boosting night, you get a voucher to redeem when you dine or drink at our restaurants and bars.", "href": "" }, { "title": "Yearly exclusive gift", "value": "Yearly exclusive gift", - "explaination": "", + "explanation": "", "description": "", "href": "" }, { "title": "Kid's boost", "value": "Kid's boost", - "explaination": "", + "explanation": "", "description": "", "href": "" } diff --git a/components/MyPages/Blocks/Overview/Friend/MemberShipLevel/index.tsx b/components/MyPages/Blocks/Overview/Friend/MemberShipLevel/index.tsx new file mode 100644 index 000000000..38fe367e0 --- /dev/null +++ b/components/MyPages/Blocks/Overview/Friend/MemberShipLevel/index.tsx @@ -0,0 +1,36 @@ +import { membershipLevels } from "@/constants/membershipLevels" + +import { + BestFriend, + CloseFriend, + DearFriend, + GoodFriend, + LoyalFriend, + NewFriend, + TrueFriend, +} from "@/components/Levels" + +import styles from "./membershipLevel.module.css" + +import type { MembershipLevelProps } from "@/types/components/myPages/membershipLevel" + +export default function MembershipLevel({ level }: MembershipLevelProps) { + switch (level) { + case membershipLevels.L1: + return + case membershipLevels.L2: + return + case membershipLevels.L3: + return + case membershipLevels.L4: + return + case membershipLevels.L5: + return + case membershipLevels.L6: + return + case membershipLevels.L7: + return + default: + return null + } +} diff --git a/components/MyPages/Blocks/Overview/Friend/MemberShipLevel/membershipLevel.module.css b/components/MyPages/Blocks/Overview/Friend/MemberShipLevel/membershipLevel.module.css new file mode 100644 index 000000000..25b922864 --- /dev/null +++ b/components/MyPages/Blocks/Overview/Friend/MemberShipLevel/membershipLevel.module.css @@ -0,0 +1,4 @@ +.level { + height: 105px; + width: 219px; +} diff --git a/components/MyPages/Blocks/Overview/Friend/friend.module.css b/components/MyPages/Blocks/Overview/Friend/friend.module.css index afc864491..4e777a262 100644 --- a/components/MyPages/Blocks/Overview/Friend/friend.module.css +++ b/components/MyPages/Blocks/Overview/Friend/friend.module.css @@ -16,11 +16,6 @@ transform: rotate(-13deg) translate(0px, -15px); } -.level { - height: 105px; - width: 219px; -} - .name { text-align: center; } diff --git a/components/MyPages/Blocks/Overview/Friend/index.tsx b/components/MyPages/Blocks/Overview/Friend/index.tsx index 901da620d..68892b4eb 100644 --- a/components/MyPages/Blocks/Overview/Friend/index.tsx +++ b/components/MyPages/Blocks/Overview/Friend/index.tsx @@ -1,9 +1,12 @@ -import { GoodFriend } from "@/components/Levels" +import { membershipLevels } from "@/constants/membershipLevels" + import BiroScript from "@/components/TempDesignSystem/Text/BiroScript" import Title from "@/components/TempDesignSystem/Text/Title" import { getIntl } from "@/i18n" import { getMembership } from "@/utils/user" +import MembershipLevel from "./MemberShipLevel" + import styles from "./friend.module.css" import type { UserProps } from "@/types/components/myPages/user" @@ -11,13 +14,21 @@ import type { UserProps } from "@/types/components/myPages/user" export default async function Friend({ user }: UserProps) { const { formatMessage } = await getIntl() const membership = getMembership(user.memberships) + if (!membership?.membershipLevel) { + return null + } + return (
{formatMessage({ id: "Current level" })}: - + {membership ? ( + + ) : null}
diff --git a/components/MyPages/Blocks/Overview/Stats/NextLevel/index.tsx b/components/MyPages/Blocks/Overview/Stats/NextLevel/index.tsx index 3639fec99..2e0e40def 100644 --- a/components/MyPages/Blocks/Overview/Stats/NextLevel/index.tsx +++ b/components/MyPages/Blocks/Overview/Stats/NextLevel/index.tsx @@ -2,18 +2,40 @@ import BiroScript from "@/components/TempDesignSystem/Text/BiroScript" import Body from "@/components/TempDesignSystem/Text/Body" import Title from "@/components/TempDesignSystem/Text/Title" import { getIntl } from "@/i18n" +import { getMembershipLevelObject } from "@/utils/membershipLevel" +import { getMembership } from "@/utils/user" import styles from "./nextLevel.module.css" import type { UserProps } from "@/types/components/myPages/user" +import type { LangParams } from "@/types/params" -export default async function NextLevel({}: UserProps) { +export default async function NextLevel({ + user, + lang, +}: UserProps & LangParams) { const { formatMessage } = await getIntl() + const membership = getMembership(user.memberships) + + if (!membership?.membershipLevel) { + // TODO: handle this case? + return null + } + + const nextLevel = getMembershipLevelObject( + membership.membershipLevel, + lang, + "nextLevel" + ) + if (!nextLevel) { + // TODO: already at top level, no next level exists + return null + } return ( <section> <Body color="pale">{formatMessage({ id: "Next level" })}:</Body> <Title className={styles.nextLevel} color="pale" level="h3"> - N/A + {nextLevel?.name || "N/A"} <BiroScript>{formatMessage({ id: "Coming up" })}!</BiroScript>
diff --git a/components/MyPages/Blocks/Overview/Stats/Points/index.tsx b/components/MyPages/Blocks/Overview/Stats/Points/index.tsx index 1661247c2..b0a4996be 100644 --- a/components/MyPages/Blocks/Overview/Stats/Points/index.tsx +++ b/components/MyPages/Blocks/Overview/Stats/Points/index.tsx @@ -14,15 +14,16 @@ export default async function Points({ user }: UserProps) {
{formatMessage({ id: "Total Points" })} - + <Title color="pale" level="h2"> {membership ? membership.currentPoints : "N/A"}
{formatMessage({ id: "Points until next level" })} + {/* TODO */} - + <Title color="pale" level="h2"> {membership ? membership.currentPoints : "N/A"}
diff --git a/components/MyPages/Blocks/Overview/Stats/index.tsx b/components/MyPages/Blocks/Overview/Stats/index.tsx index 1392cfd4f..a9f0308e4 100644 --- a/components/MyPages/Blocks/Overview/Stats/index.tsx +++ b/components/MyPages/Blocks/Overview/Stats/index.tsx @@ -6,13 +6,14 @@ import Points from "./Points" import styles from "./stats.module.css" import type { UserProps } from "@/types/components/myPages/user" +import type { LangParams } from "@/types/params" -export default function Stats({ user }: UserProps) { +export default function Stats({ user, lang }: UserProps & LangParams) { return (
- +
) } diff --git a/components/MyPages/Blocks/Overview/index.tsx b/components/MyPages/Blocks/Overview/index.tsx index 385edcdf7..814061fad 100644 --- a/components/MyPages/Blocks/Overview/index.tsx +++ b/components/MyPages/Blocks/Overview/index.tsx @@ -9,12 +9,14 @@ import Stats from "./Stats" import styles from "./overview.module.css" import type { AccountPageComponentProps } from "@/types/components/myPages/myPage/accountPage" +import type { LangParams } from "@/types/params" export default async function Overview({ link, subtitle, title, -}: AccountPageComponentProps) { + lang, +}: AccountPageComponentProps & LangParams) { const user = await serverClient().user.get() if (!user) { return null @@ -25,7 +27,7 @@ export default async function Overview({
- +
) diff --git a/components/MyPages/Blocks/Points/CurrentPointsBalance/index.tsx b/components/MyPages/Blocks/Points/CurrentPointsBalance/index.tsx index 7627b3435..71549390d 100644 --- a/components/MyPages/Blocks/Points/CurrentPointsBalance/index.tsx +++ b/components/MyPages/Blocks/Points/CurrentPointsBalance/index.tsx @@ -12,7 +12,6 @@ async function CurrentPointsBalance({ title, subtitle, link, - lang, }: AccountPageComponentProps) { const user = await serverClient().user.get() const { formatMessage } = await getIntl() @@ -23,11 +22,10 @@ async function CurrentPointsBalance({ return (
-

{`${formatMessage({ id: "Total Points" })}*`}

- {`${formatMessage({ id: "Points" })}: ${membership?.currentPoints || "N/A"}`} + {`${formatMessage({ id: "Points" })}: ${membership ? membership.currentPoints : "N/A"}`}

{`*${formatMessage({ id: "Points may take up to 10 days to be displayed." })}`} diff --git a/components/TempDesignSystem/Text/Subtitle/index.tsx b/components/TempDesignSystem/Text/Subtitle/index.tsx index d72d75c66..a2d383f27 100644 --- a/components/TempDesignSystem/Text/Subtitle/index.tsx +++ b/components/TempDesignSystem/Text/Subtitle/index.tsx @@ -9,12 +9,11 @@ export default function Subtitle({ asChild = false, className = "", color, - hideEmpty = true, textAlign, textTransform, ...props }: SubtitleProps) { - if (hideEmpty && Children.count(props.children) === 0) { + if (Children.toArray(props.children).length === 0) { return null } const Comp = asChild ? Slot : "p" diff --git a/components/TempDesignSystem/Text/Subtitle/subtitle.ts b/components/TempDesignSystem/Text/Subtitle/subtitle.ts index c3f018ffb..61938c750 100644 --- a/components/TempDesignSystem/Text/Subtitle/subtitle.ts +++ b/components/TempDesignSystem/Text/Subtitle/subtitle.ts @@ -6,5 +6,4 @@ export interface SubtitleProps extends Omit, "color">, VariantProps { asChild?: boolean - hideEmpty?: boolean } diff --git a/components/TempDesignSystem/Text/Title/index.tsx b/components/TempDesignSystem/Text/Title/index.tsx index b082eb304..8dfd0945b 100644 --- a/components/TempDesignSystem/Text/Title/index.tsx +++ b/components/TempDesignSystem/Text/Title/index.tsx @@ -9,12 +9,11 @@ export default function Title({ children, className = "", color, - hideEmpty = true, level = "h1", textAlign, textTransform, }: HeadingProps) { - if (hideEmpty && Children.count(children) === 0) { + if (Children.toArray(children).length === 0) { return null } const Hx = level diff --git a/components/TempDesignSystem/Text/Title/title.ts b/components/TempDesignSystem/Text/Title/title.ts index 77e8b08d2..ce7789263 100644 --- a/components/TempDesignSystem/Text/Title/title.ts +++ b/components/TempDesignSystem/Text/Title/title.ts @@ -8,6 +8,5 @@ export interface HeadingProps extends Omit, "color">, VariantProps { as?: HeadingLevel - hideEmpty?: boolean level?: HeadingLevel } diff --git a/constants/membershipLevels.ts b/constants/membershipLevels.ts index 10ea4337b..2dda9d05c 100644 --- a/constants/membershipLevels.ts +++ b/constants/membershipLevels.ts @@ -7,3 +7,13 @@ export enum membershipLevels { L6 = 6, L7 = 7, } + +export enum MembershipLevelEnum { + L1 = "L1", + L2 = "L2", + L3 = "L3", + L4 = "L4", + L5 = "L5", + L6 = "L6", + L7 = "L7", +} diff --git a/server/routers/user/output.ts b/server/routers/user/output.ts index 3e0a758ea..535dec547 100644 --- a/server/routers/user/output.ts +++ b/server/routers/user/output.ts @@ -1,13 +1,13 @@ import { z } from "zod" -import { membershipLevels } from "@/constants/membershipLevels" +import { MembershipLevelEnum } from "@/constants/membershipLevels" import { countriesMap } from "@/components/TempDesignSystem/Form/Country/countries" export const getUserSchema = z.object({ address: z.object({ city: z.string().optional(), - country: z.nativeEnum(countriesMap).optional(), + countryCode: z.nativeEnum(countriesMap).optional(), streetAddress: z.string().optional(), zipCode: z.string(), }), @@ -21,9 +21,7 @@ export const getUserSchema = z.object({ currentPoints: z.number(), expirationDate: z.string(), membershipNumber: z.string(), - membershipLevel: z - .enum(["L1", "L2", "L3", "L4", "L5", "L6", "L7"]) - .optional(), + membershipLevel: z.nativeEnum(MembershipLevelEnum).optional(), memberSince: z.string(), membershipType: z.string(), }) diff --git a/types/components/loyalty/blocks.ts b/types/components/loyalty/blocks.ts index 5d24852f6..e0ddc7862 100644 --- a/types/components/loyalty/blocks.ts +++ b/types/components/loyalty/blocks.ts @@ -40,7 +40,7 @@ export type OverviewTableTitleProps = { texts: OverviewTableTitleTranslation[] } export type OverviewTableProps = { user: User | null } export type Level = { - tier: membershipLevels + level: membershipLevels name: string requiredPoints: number requiredNights?: number diff --git a/types/components/myPages/membershipLevel.ts b/types/components/myPages/membershipLevel.ts new file mode 100644 index 000000000..ae458ba79 --- /dev/null +++ b/types/components/myPages/membershipLevel.ts @@ -0,0 +1,5 @@ +import { membershipLevels } from "@/constants/membershipLevels" + +export type MembershipLevelProps = { + level: membershipLevels +} diff --git a/utils/membershipLevel.ts b/utils/membershipLevel.ts new file mode 100644 index 000000000..aa7d54135 --- /dev/null +++ b/utils/membershipLevel.ts @@ -0,0 +1,20 @@ +import { Lang } from "@/constants/languages" +import { + MembershipLevelEnum, + membershipLevels, +} from "@/constants/membershipLevels" + +import levelsData from "@/components/Loyalty/Blocks/DynamicContent/LoyaltyLevels/data" + +export function getMembershipLevelObject( + membershipLevel: MembershipLevelEnum, + lang: Lang, + level: "currentLevel" | "nextLevel" = "currentLevel" +) { + let levelNumber = membershipLevels[membershipLevel] + if (level === "nextLevel") { + levelNumber += 1 + } + + return levelsData[lang].levels.find((level) => level.level === levelNumber) +} diff --git a/utils/user.ts b/utils/user.ts index 104d8e9f2..c2ff7b8e2 100644 --- a/utils/user.ts +++ b/utils/user.ts @@ -2,6 +2,7 @@ import { User } from "@/types/user" export function getMembership(memberships: User["memberships"]) { return memberships?.find( - (membership) => membership.membershipType.toLowerCase() === "guestpr" + (membership) => + membership.membershipType.toLowerCase() === "guestpr" || "scandicfriend's" ) }