Merged in feature/sas-login (pull request #1256)

First steps towards the SAS partnership

* otp flow now pretends to do the linking

* Update LinkAccountForm header

* Update redirect times

* Clean up comments

* Set maxAge on sas cookies

* make all SAS routes protected

* Merge remote-tracking branch 'refs/remotes/origin/feature/sas-login' into feature/sas-login

* Require auth for sas link flow

* Fix resend otp

* Add error support to OneTimePasswordForm

* Add Sentry to SAS error boundary

* Move SAS_REQUEST_OTP_STATE_STORAGE_COOKIE_NAME

* Add missing translations

* Merge branch 'master' of bitbucket.org:scandic-swap/web into feature/sas-login

* Merge branch 'feature/sas-login' of bitbucket.org:scandic-swap/web into feature/sas-login

* Add TooManyCodesError component

* Refactor GenericError to support new errors

* Add FailedAttemptsError

* remove removed component <VWOScript/>

* Merge branch 'feature/sas-login' of bitbucket.org:scandic-swap/web into feature/sas-login

* remove local cookie-bot reference

* Fix sas campaign logo scaling

* feature toggle the SAS stuff

* Merge branch 'feature/sas-login' of bitbucket.org:scandic-swap/web into feature/sas-login

* fix: use env vars for SAS endpoints


Approved-by: Linus Flood
This commit is contained in:
Joakim Jäderberg
2025-02-05 14:43:14 +00:00
parent e3b1bfc414
commit 46ebbbba8f
62 changed files with 2606 additions and 89 deletions

View File

@@ -1,4 +1,5 @@
{
"+46 8 517 517 00": "+46 8 517 517 00",
"<b>Included</b> (based on availability)": "<b>Included</b> (based on availability)",
"<b>Total price</b> (incl VAT)": "<b>Total price</b> (incl VAT)",
"<strikethrough>{amount}</strikethrough> <free>0 {currency}</free>/night per adult": "<strikethrough>{amount}</strikethrough> <free>0 {currency}</free>/night per adult",
@@ -14,6 +15,7 @@
"Accessibility": "Accessibility",
"Accessibility at {hotel}": "Accessibility at {hotel}",
"Accessible Room": "Accessibility room",
"Accounts are already linked": "Accounts are already linked",
"Active": "Active",
"Activities": "Activities",
"Add code": "Add code",
@@ -49,6 +51,7 @@
"Attractions": "Attractions",
"Average price per night": "Average price per night",
"Away from elevator": "Away from elevator",
"Back": "Back",
"Back to scandichotels.com": "Back to scandichotels.com",
"Back to top": "Back to top",
"Bar": "Bar",
@@ -58,6 +61,7 @@
"Bed type": "Bed type",
"Bike friendly": "Bike friendly",
"Birth date": "Birth date",
"Birth date is required": "Birth date is required",
"Book": "Book",
"Book a table online": "Book a table online",
"Book another stay": "Book another stay",
@@ -82,6 +86,7 @@
"Bus terminal": "Bus terminal",
"Business": "Business",
"By accepting the <termsAndConditionsLink>Terms and Conditions for Scandic Friends</termsAndConditionsLink> I understand that my personal data will be processed in accordance with <privacyPolicy>Scandic's Privacy Policy</privacyPolicy>.": "By accepting the <termsAndConditionsLink>Terms and Conditions for Scandic Friends</termsAndConditionsLink> I understand that my personal data will be processed in accordance with <privacyPolicy>Scandic's Privacy Policy</privacyPolicy>.",
"By linking your accounts you accept the <sasScandicTermsAndConditionsLink>Scandic Friends & SAS Terms and Conditions</sasScandicTermsAndConditionsLink>. You will be connected throughout the duration of your employment or until further notice, and you can opt out at any time.": "By linking your accounts you accept the <sasScandicTermsAndConditionsLink>Scandic Friends & SAS Terms and Conditions</sasScandicTermsAndConditionsLink>. You will be connected throughout the duration of your employment or until further notice, and you can opt out at any time.",
"By paying with any of the payment methods available, I accept the terms for this booking and the general <termsAndConditionsLink>Terms & Conditions</termsAndConditionsLink>, and understand that Scandic will process my personal data for this booking in accordance with <privacyPolicyLink>Scandic's Privacy policy</privacyPolicyLink>. I also accept that Scandic require a valid credit card during my visit in case anything is left unpaid.": "By paying with any of the payment methods available, I accept the terms for this booking and the general <termsAndConditionsLink>Terms & Conditions</termsAndConditionsLink>, and understand that Scandic will process my personal data for this booking in accordance with <privacyPolicyLink>Scandic's Privacy policy</privacyPolicyLink>. I also accept that Scandic require a valid credit card during my visit in case anything is left unpaid.",
"By signing up you accept the Scandic Friends <termsAndConditionsLink>Terms and Conditions</termsAndConditionsLink>. Your membership is valid until further notice, and you can terminate your membership at any time by sending an email to Scandic's customer service": "By signing up you accept the Scandic Friends <termsAndConditionsLink>Terms and Conditions</termsAndConditionsLink>. Your membership is valid until further notice, and you can terminate your membership at any time by sending an email to Scandic's customer service",
"Campaign": "Campaign",
@@ -123,6 +128,7 @@
"Complete booking & go to payment": "Complete booking & go to payment",
"Complete the booking": "Complete the booking",
"Contact information": "Contact information",
"Contact our memberservice": "Contact our memberservice",
"Contact us": "Contact us",
"Continue": "Continue",
"Copied to clipboard": "Copied to clipboard",
@@ -139,12 +145,14 @@
"Current password": "Current password",
"Customer service": "Customer service",
"Date of Birth": "Date of Birth",
"Date of birth not matching": "Date of birth not matching",
"Day": "Day",
"Description": "Description",
"Destination": "Destination",
"Destinations & hotels": "Destinations & hotels",
"Details": "Details",
"Dialog": "Dialog",
"Didn't receive a code? <resendOtpLink>Resend code</resendOtpLink>": "Didn't receive a code? <resendOtpLink>Resend code</resendOtpLink>",
"Discard changes": "Discard changes",
"Discard unsaved changes?": "Discard unsaved changes?",
"Discover": "Discover",
@@ -200,6 +208,7 @@
"Free until": "Free until",
"Friday": "Friday",
"Friend no. {value}": "Friend no. {value}",
"Friends with Benefits": "Friends with Benefits",
"From": "From",
"Garage": "Garage",
"Get inspired": "Get inspired",
@@ -233,9 +242,11 @@
"I accept": "I accept",
"I accept the terms and conditions": "I accept the terms and conditions",
"I would like to get my booking confirmation via sms": "I would like to get my booking confirmation via sms",
"If you are not redirected automatically, please <loginLink>click here</loginLink>.": "If you are not redirected automatically, please <loginLink>click here</loginLink>.",
"In adults bed": "In adults bed",
"In crib": "In crib",
"In extra bed": "In extra bed",
"In order to verify your account linking we will ask you to sign in to your SAS EuroBonus account.": "In order to verify your account linking we will ask you to sign in to your SAS EuroBonus account.",
"Included": "Included",
"IndoorPool": "Indoor pool",
"Is there anything else you would like us to know before your arrival?": "Is there anything else you would like us to know before your arrival?",
@@ -263,6 +274,8 @@
"Level 7": "Level 7",
"Level up to unlock": "Level up to unlock",
"Level {level}": "Level {level}",
"Link my accounts": "Link my accounts",
"Link your accounts": "Link your accounts",
"Location": "Location",
"Locations": "Locations",
"Log in": "Log in",
@@ -377,6 +390,7 @@
"Phone is required": "Phone is required",
"Phone number": "Phone number",
"Please enter a valid phone number": "Please enter a valid phone number",
"Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.": "Please enter the code sent to <maskedContactInfo></maskedContactInfo> in order to confirm your account linking.",
"Please note that this is mandatory, and that your card will only be charged in the event of a no-show.": "Please note that this is mandatory, and that your card will only be charged in the event of a no-show.",
"Please try and change your search for this destination or see alternative hotels.": "Please try and change your search for this destination or see alternative hotels.",
"Points": "Points",
@@ -415,6 +429,8 @@
"Rebooking": "Rebooking",
"Redeem benefit": "Redeem benefit",
"Redeemed & valid through:": "Redeemed & valid through:",
"Redirecting you to SAS": "Redirecting you to SAS",
"Redirecting you to my pages.": "Redirecting you to my pages.",
"Reference #{bookingNr}": "Reference #{bookingNr}",
"Relax": "Relax",
"Remove card from member profile": "Remove card from member profile",
@@ -499,6 +515,7 @@
"Terms and conditions": "Terms and conditions",
"Thank you": "Thank you",
"Thank you for booking with us! We look forward to welcoming you and hope you have a pleasant stay. If you have any questions or need to make changes to your reservation, please <emailLink>contact us.</emailLink>": "Thank you for booking with us! We look forward to welcoming you and hope you have a pleasant stay. If you have any questions or need to make changes to your reservation, please <emailLink>contact us.</emailLink>",
"The code youve entered is incorrect.": "The code youve entered is incorrect.",
"The new price is": "The new price is",
"The price has increased": "The price has increased",
"The price has increased since you selected your room.": "The price has increased since you selected your room.",
@@ -508,6 +525,7 @@
"Things nearby {hotelName}": "Things nearby {hotelName}",
"This room is equipped with": "This room is equipped with",
"This room is not available": "This room is not available",
"This verifcation is needed for additional security.": "This verifcation is needed for additional security.",
"Thursday": "Thursday",
"Times": "Times",
"To get the member price <span>{price}</span>, log in or join when completing the booking.": "To get the member price <span>{price}</span>, log in or join when completing the booking.",
@@ -531,19 +549,25 @@
"VAT amount": "VAT amount",
"VAT {vat}%": "VAT {vat}%",
"Valid through {expirationDate}": "Valid through {expirationDate}",
"Verification code": "Verification code",
"View and buy add-ons": "View and buy add-ons",
"View as list": "View as list",
"View as map": "View as map",
"View room details": "View room details",
"View terms": "View terms",
"View your account": "View your account",
"View your booking": "View your booking",
"Visiting address": "Visiting address",
"Voucher": "Voucher",
"We could not add a card right now, please try again later.": "We could not add a card right now, please try again later.",
"We could not connect your accounts": "We could not connect your accounts",
"We could not connect your accounts to give you access. Please contact us and well help you resolve this issue.": "We could not connect your accounts to give you access. Please contact us and well help you resolve this issue.",
"We couldn't find a matching location for your search.": "We couldn't find a matching location for your search.",
"We had an issue processing your booking. Please try again. No charges have been made.": "We had an issue processing your booking. Please try again. No charges have been made.",
"We have a special gift waiting for you!": "We have a special gift waiting for you!",
"We look forward to your visit!": "We look forward to your visit!",
"We require this additional information in order to match your Scandic account with your EuroBonus account.": "We require this additional information in order to match your Scandic account with your EuroBonus account.",
"We successfully connected your accounts!": "We successfully connected your accounts!",
"We're sorry": "We're sorry",
"Wednesday": "Wednesday",
"Weekday": "Weekday",
@@ -573,8 +597,10 @@
"You have no previous stays.": "You have no previous stays.",
"You have no upcoming stays.": "You have no upcoming stays.",
"You have now cancelled your payment.": "You have now cancelled your payment.",
"You must accept the terms and conditions": "You must accept the terms and conditions",
"You'll find all your gifts in 'My benefits'": "You'll find all your gifts in 'My benefits'",
"Your Challenges Conquer & Earn!": "Your Challenges Conquer & Earn!",
"Your accounts are connected": "Your accounts are connected",
"Your booking(s) is confirmed but we could not verify your membership. If you have booked with a member discount, you'll either need to present your existing membership number upon check-in, become a member or pay the price difference at the hotel. Signing up is preferably done online before the stay.": "Your booking(s) is confirmed but we could not verify your membership. If you have booked with a member discount, you'll either need to present your existing membership number upon check-in, become a member or pay the price difference at the hotel. Signing up is preferably done online before the stay.",
"Your card was successfully removed!": "Your card was successfully removed!",
"Your card was successfully saved!": "Your card was successfully saved!",
@@ -596,6 +622,7 @@
"monday": "monday",
"next level: {nextLevel}": "next level: {nextLevel}",
"night": "night",
"or": "or",
"points": "points",
"saturday": "saturday",
"sunday": "sunday",