Emma Zettervall f443bae46e Merged in feat/LOY-400-create-spend-points-modal (pull request #3131)
Feat/LOY-400 create spend points modal

* feat(LOY-400): Added custom button to my pages overview and skeleton file to custom modal for my points.

* feat(LOY-400): Added custom button to my pages overview and components for custom modal for my points.

* feat(LOY-400): Changed some style and infogridcardover

* feat(LOY-400):Removed custom card components and changed in infoCard: Added imagePosition top, added optional height prop. In Card: Changed Text-wrap styling, added min-width styling to buttons, added optional Icon prop, added optional height prop

* feat(LOY-400):Added linkList, LinkListItem component and messageBanner component. Added granola illustration.

* feat(LOY-400): Removed background in several illustrations. Added component for illustration. Fixed LinkedList and styling for UsePointsButton.

* feat(LOY-400): Added modal to PointsToSpendCard and fixed UsePointsButton.

* fix(LOY-400):added some styling

* feat(LOY-400): Linked Modal to contentstack and fetch the data in cards with UsePointsModal for now

* feat(LOY-400): changed link to aria-component, cleaned up a bit

* feat(LOY-400): Changed height for larger modals in mobile, fixed zod schema for no illustration input, cleaned up

* fix(LOY-400): fixed graphql after rebase

* fix(LOY-400): mini fix

* fix(LOY-400): fixed pr-comments

* fix(LOY-400): fixed some PR-comments

* fix(LOY-400): fixed a PR-comment

* feat(LOY-400): added size prop to ilustration in LinkListItem to be able to use illustrations in IllustrationByIconName

* fix(LOY-400): fixed pr-comments

* Merged in feat/LOY-402-pre-ticked-book-reward-night-in-booking-flow (pull request #3210)

Feat/LOY-402 pre ticked book reward night in booking flow

* feat(LOY-402): Changed UsePointsModal structure to handle button actions in card.

* feat(LOY-402): added functionality for book now button

* feat(LOY-400): pr comment fix

* feat(LOY-402): transformed the contentstack data

* fix(LOY-402): fixed pr comments

Approved-by: Chuma Mcphoy (We Ahead)
Approved-by: Anton Gunnarsson
Approved-by: Matilda Landström

* Merged in feat/LOY-404-add-tracking-for-spend-points-modal (pull request #3229)

Feat/LOY-404 add tracking for spend points modal

* feat(LOY-402): Changed UsePointsModal structure to handle button actions in card.

* feat(LOY-402): added functionality for book now button

* feat(LOY-400): pr comment fix

* feat(LOY-402): transformed the contentstack data

* feat(LOY-404): added tracking

* fix(LOY-404): fix for session storage removal of bookNowFromPointsModal

* feat(LOY-404): added consts

* fix(LOY-404): moved foxusWidget const

* fix(LOY-404): moved BOOKING_WIDGET_STATE const

* fix(LOY-404):fix


Approved-by: Matilda Landström

* fix(LOY-400): some fixes

* feat(LOY-400): created linkList storybook


Approved-by: Chuma Mcphoy (We Ahead)
Approved-by: Matilda Landström
2025-11-28 15:08:06 +00:00

Scandic Monorepo

This is the monorepo for Scandic Hotels' web projects. It includes multiple apps and packages that together make up the Scandic Hotels web ecosystem.

What's inside?

Apps

Inside the /apps directory, you'll find our standalone sites and APIs:

  • scandic-web: Next.js app for our public website scandichotels.com.
  • scandic-redirect: Netlify Functions that handle redirects for scandic-web.
  • partner-sas: Next.js app for our partner site sas.scandichotels.com. (⚠️ Work in progress ⚠️)
  • redis-api: API wrapping Redis that we use for caching.

Packages

Inside the /packages directory, you'll find our shared libraries and utilities:

  • design-system: A shared library of styles and components used by our React apps.
  • booking-flow: This is our booking flow that is used by both scandic-web and partner-sas. It's built to be used by a Next.js app.
  • trpc: A tRPC data layer that connects our apps and packages to the backend APIs.
  • common: A collection of shared utilities, helpers and types used across both our apps and our packages.
  • typescript-config: Shared TypeScript configs for all apps and packages.

A note about dependencies between our apps and packages: In general all apps are allowed to depend on any package, but packages have a few caveats:

design-system should never import from booking-flow or trpc. common should never import from anything except typescript-config.

Getting Started

To get started, clone this repository and run yarn install in the root directory. We use Turbo to handle our monorepo tasks.

See package.json for all available scripts, but here's the most commonly used:

  • yarn dev:web: Start the development server for the scandic-web app.
  • yarn dev:sas: Start the development server for the partner-sas app.
  • yarn dev:ds: Start the development server for the design-system package.
  • yarn lint: Run ESLint and type checking across all apps and packages.
  • yarn test: Run tests for the codebase.

If this is the first time you are running one of our apps you can run yarn env:web or yarn env:sas to see what environment variables you need for those apps.

For more details see the respective apps and packages' README files.

More documentation

Description
No description provided
Readme 80 MiB
Languages
TypeScript 90.3%
CSS 7.6%
JavaScript 1.9%