import type { Meta, StoryObj } from "@storybook/nextjs-vite" import PointsRateCard from "." import { CurrencyEnum } from "@scandic-hotels/common/constants/currency" import { PointType } from "@scandic-hotels/common/constants/pointType" const meta: Meta = { title: "Product Components/RateCard/Points", component: PointsRateCard, decorators: [ (Story) => (
), ], argTypes: { rateTitle: { control: "text" }, paymentTerm: { control: "text" }, bannerText: { control: "text" }, rates: { control: "object" }, selectedRate: { control: "text" }, onRateSelect: { action: "onRateSelect" }, isNotEnoughPoints: { control: "boolean" }, notEnoughPointsText: { control: "text" }, rateTermDetails: { control: "object" }, }, } export default meta type Story = StoryObj export const Default: Story = { args: { rateTitle: "FREE CANCELLATION", paymentTerm: "PAY LATER", bannerText: "Reward night ∙ Breakfast included", rates: [ { points: 20000, currency: CurrencyEnum.POINTS, rateCode: "REDNIGHT7", }, { points: 15000, currency: CurrencyEnum.POINTS, additionalPrice: { price: "250", currency: CurrencyEnum.EUR, }, rateCode: "REDNIGHT7A", }, { points: 10000, currency: CurrencyEnum.POINTS, additionalPrice: { price: "500", currency: CurrencyEnum.EUR, }, rateCode: "REDNIGHT7B", }, ], selectedRate: undefined, onRateSelect: (value) => console.log(value), rateTermDetails: [ { title: "Rate definition 1", terms: ["term 1", "term 2", "term 3"], }, ], }, } export const WithDisabledRates: Story = { args: { rateTitle: "FREE CANCELLATION", paymentTerm: "PAY LATER", bannerText: "Reward night ∙ Breakfast included", rates: [ { points: 20000, currency: CurrencyEnum.POINTS, isDisabled: true, rateCode: "REDNIGHT7", }, { points: 15000, currency: CurrencyEnum.POINTS, isDisabled: true, additionalPrice: { price: "250", currency: CurrencyEnum.EUR, }, rateCode: "REDNIGHT7A", }, { points: 10000, currency: CurrencyEnum.POINTS, additionalPrice: { price: "500", currency: CurrencyEnum.EUR, }, rateCode: "REDNIGHT7B", }, ], selectedRate: "2", onRateSelect: (value) => console.log(value), rateTermDetails: [ { title: "Rate definition 1", terms: ["term 1", "term 2", "term 3"], }, ], }, } export const NotEnoughPoints: Story = { args: { rateTitle: "FREE CANCELLATION", paymentTerm: "PAY LATER", bannerText: "Reward night ∙ Breakfast included", rates: [ { points: 20000, currency: CurrencyEnum.POINTS, rateCode: "REDNIGHT7", }, { points: 15000, currency: CurrencyEnum.POINTS, additionalPrice: { price: "250", currency: CurrencyEnum.EUR, }, rateCode: "REDNIGHT7A", }, { points: 10000, currency: CurrencyEnum.POINTS, additionalPrice: { price: "500", currency: CurrencyEnum.EUR, }, rateCode: "REDNIGHT7B", }, ], selectedRate: undefined, isNotEnoughPoints: true, notEnoughPointsText: "Not enough points", onRateSelect: (value) => console.log(value), rateTermDetails: [ { title: "Rate definition 1", terms: ["term 1", "term 2", "term 3"], }, ], }, } export const WithEuroBonusPoints: Story = { args: { rateTitle: "FREE CANCELLATION", paymentTerm: "PAY LATER", bannerText: "Reward night ∙ Breakfast included", rates: [ { points: 20000, currency: CurrencyEnum.POINTS, rateCode: "REDNIGHT7", pointsType: PointType.EUROBONUS, }, { points: 15000, currency: CurrencyEnum.POINTS, additionalPrice: { price: "250", currency: CurrencyEnum.EUR, }, rateCode: "REDNIGHT7A", pointsType: PointType.EUROBONUS, }, { points: 10000, currency: CurrencyEnum.POINTS, additionalPrice: { price: "500", currency: CurrencyEnum.EUR, }, rateCode: "REDNIGHT7B", pointsType: PointType.EUROBONUS, }, ], selectedRate: undefined, onRateSelect: (value) => console.log(value), rateTermDetails: [ { title: "Rate definition 1", terms: ["term 1", "term 2", "term 3"], }, ], }, }