@lookiero/checkout 12.26.0 → 12.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/dist/src/ExpoRoot.js +1 -0
  2. package/dist/src/infrastructure/ui/views/checkout/Checkout.js +2 -2
  3. package/dist/src/infrastructure/ui/views/item/components/productVariantSlider/ProductVariantSlider.js +0 -1
  4. package/dist/src/infrastructure/ui/views/summary/Summary.js +3 -3
  5. package/dist/src/infrastructure/ui/views/summary/components/collapsiblePricing/CollapsiblePricing.d.ts +3 -0
  6. package/dist/src/infrastructure/ui/views/summary/components/collapsiblePricing/CollapsiblePricing.js +2 -2
  7. package/dist/src/infrastructure/ui/views/summary/components/pricing/Pricing.d.ts +3 -0
  8. package/dist/src/infrastructure/ui/views/summary/components/pricing/Pricing.js +3 -2
  9. package/dist/src/projection/customer/customer.d.ts +1 -0
  10. package/dist/src/version.d.ts +2 -2
  11. package/dist/src/version.js +2 -2
  12. package/package.json +1 -1
  13. package/src/ExpoRoot.tsx +1 -0
  14. package/src/infrastructure/ui/views/checkout/Checkout.test.tsx +4 -1
  15. package/src/infrastructure/ui/views/checkout/Checkout.tsx +7 -2
  16. package/src/infrastructure/ui/views/item/components/productVariantSlider/ProductVariantSlider.tsx +0 -2
  17. package/src/infrastructure/ui/views/summary/Summary.test.tsx +4 -1
  18. package/src/infrastructure/ui/views/summary/Summary.tsx +5 -1
  19. package/src/infrastructure/ui/views/summary/components/collapsiblePricing/CollapsiblePricing.test.tsx +3 -0
  20. package/src/infrastructure/ui/views/summary/components/collapsiblePricing/CollapsiblePricing.tsx +11 -1
  21. package/src/infrastructure/ui/views/summary/components/pricing/Pricing.tsx +13 -8
  22. package/src/projection/customer/customer.ts +1 -0
@@ -33,6 +33,7 @@ const customer = {
33
33
  segment: Segment.WOMEN,
34
34
  email: "email@example.com",
35
35
  name: "Adèle Léonce Émilie",
36
+ migrated: false,
36
37
  };
37
38
  const sentryConfig = {
38
39
  publicKey: "66cadf9444db4ea5945670f12ec08ae7",
@@ -26,7 +26,7 @@ import { style as checkoutStyle } from "./Checkout.style";
26
26
  import { DeliveryBanner } from "./components/deliveryBanner/DeliveryBanner";
27
27
  import { PaymentInstrument } from "./components/paymentInstrument/PaymentInstrument";
28
28
  const Checkout = ({ layout: Layout, order, subscription, getAuthToken, useRedirect, onCheckoutFlowSuccess, }) => {
29
- const { customer: { customerId, country, segment }, basePath, tradename, } = useStaticInfo();
29
+ const { customer: { customerId, country, segment, migrated }, basePath, tradename, } = useStaticInfo();
30
30
  const screenSize = useScreenSize();
31
31
  const isDektopScreen = screenSize === "L";
32
32
  const style = useMemo(() => checkoutStyle(), []);
@@ -100,7 +100,7 @@ const Checkout = ({ layout: Layout, order, subscription, getAuthToken, useRedire
100
100
  country !== Country.NL && (React.createElement(View, { style: style.paymentSelector },
101
101
  React.createElement(PaymentInstrument, { useRedirect: useRedirect }))))),
102
102
  React.createElement(Box, { size: { L: "1/3" }, style: [style.resume, isDektopScreen && style.desktopResume] }, pricing ? (React.createElement(View, { style: [style.princingWrapper, !isDektopScreen && style.princingWrapperSmall] },
103
- React.createElement(Pricing, { pricing: pricing, totalCheckoutItemsKept: checkoutItemsKept?.length || 0 }),
103
+ React.createElement(Pricing, { migrated: migrated, pricing: pricing, totalCheckoutItemsKept: checkoutItemsKept?.length || 0, tradename: tradename }),
104
104
  isDektopScreen && React.createElement(PaymentButton, null))) : null))),
105
105
  pricing && !isDektopScreen ? (React.createElement(Sticky, { style: style.sticky, onLayout: Platform.OS !== "web" ? handleOnPricingLayout : undefined },
106
106
  React.createElement(Body, null,
@@ -35,7 +35,6 @@ const ProductVariantSlider = ({ producVariantMedia, onChanged, availableHeight }
35
35
  style.largeImage,
36
36
  ]);
37
37
  const renderBullets = useCallback(({ activeIndex, count, onChange }) => React.createElement(Bullets, { activeIndex: activeIndex, count: count, onChange: onChange }), []);
38
- console.log({ producVariantMedia });
39
38
  return (React.createElement(Carousel, { activeIndex: activeIndex, bullets: renderBullets, data: producVariantMedia, onActiveIndexChanged: handleOnActiveChanged }, renderItem));
40
39
  };
41
40
  export { ProductVariantSlider };
@@ -21,7 +21,7 @@ import { Routes } from "../../routing/routes";
21
21
  import { style as summaryStyle } from "./Summary.style";
22
22
  import { CollapsiblePricing } from "./components/collapsiblePricing/CollapsiblePricing";
23
23
  const Summary = ({ layout: Layout, children }) => {
24
- const { customer: { customerId, country, segment }, basePath, tradename, } = useStaticInfo();
24
+ const { customer: { customerId, country, segment, migrated }, basePath, tradename, } = useStaticInfo();
25
25
  const screenSize = useScreenSize();
26
26
  const isDesktopScreen = screenSize === "L";
27
27
  const style = useMemo(() => summaryStyle(), []);
@@ -97,9 +97,9 @@ const Summary = ({ layout: Layout, children }) => {
97
97
  children)),
98
98
  pricing && isDesktopScreen ? (React.createElement(Box, { size: { L: "1/3" }, style: [style.resume, isDesktopScreen ? style.desktopResume : style.mobileResume] },
99
99
  React.createElement(View, { style: style.princingWrapper },
100
- React.createElement(CollapsiblePricing, { collapsed: false, collapsible: false, pricing: pricing, submitButtonText: submitButtonText, totalCheckoutItemsKept: totalCheckoutItemsKept, onSubmit: handleOnSubmit })))) : null)),
100
+ React.createElement(CollapsiblePricing, { collapsed: false, collapsible: false, migrated: migrated, pricing: pricing, submitButtonText: submitButtonText, totalCheckoutItemsKept: totalCheckoutItemsKept, tradename: tradename, onSubmit: handleOnSubmit })))) : null)),
101
101
  pricing && !isDesktopScreen ? (React.createElement(Sticky, { style: style.sticky, onLayout: Platform.OS !== "web" ? handleOnPricingLayout : undefined },
102
102
  React.createElement(Body, null,
103
- React.createElement(CollapsiblePricing, { collapsed: pricingCollapsed, pricing: pricing, submitButtonText: submitButtonText, totalCheckoutItemsKept: totalCheckoutItemsKept, onPress: handleOnPressPricing, onSubmit: handleOnSubmit })))) : null));
103
+ React.createElement(CollapsiblePricing, { collapsed: pricingCollapsed, migrated: migrated, pricing: pricing, submitButtonText: submitButtonText, totalCheckoutItemsKept: totalCheckoutItemsKept, tradename: tradename, onPress: handleOnPressPricing, onSubmit: handleOnSubmit })))) : null));
104
104
  };
105
105
  export { Summary };
@@ -1,6 +1,9 @@
1
1
  import { FC } from "react";
2
+ import { Tradename } from "@lookiero/sty-sp-tradename";
2
3
  import { PricingProjection } from "../../../../../../projection/pricing/pricing";
3
4
  interface CollapsiblePricingProps {
5
+ readonly tradename: Tradename;
6
+ readonly migrated: boolean;
4
7
  readonly pricing: PricingProjection;
5
8
  readonly totalCheckoutItemsKept: number;
6
9
  readonly collapsible?: boolean;
@@ -8,7 +8,7 @@ import { Price } from "../../../../components/atoms/price/Price";
8
8
  import { DOMAIN, I18nMessages } from "../../../../i18n/i18n";
9
9
  import { Pricing } from "../pricing/Pricing";
10
10
  import { style as collapsiblePricingStyle } from "./CollapsiblePricing.style";
11
- const CollapsiblePricing = ({ pricing, totalCheckoutItemsKept, collapsible = true, collapsed = false, submitButtonText, onPress = () => void 0, onSubmit, }) => {
11
+ const CollapsiblePricing = ({ migrated, tradename, pricing, totalCheckoutItemsKept, collapsible = true, collapsed = false, submitButtonText, onPress = () => void 0, onSubmit, }) => {
12
12
  const { pendingToPay } = pricing;
13
13
  const totalText = useI18nMessage({ domain: DOMAIN, id: I18nMessages.SUMMARY_TOTAL });
14
14
  const totalCheckoutItemsKeptText = useI18nMessage({
@@ -34,7 +34,7 @@ const CollapsiblePricing = ({ pricing, totalCheckoutItemsKept, collapsible = tru
34
34
  React.createElement(Price, { price: pendingToPay, variant: "detail" })),
35
35
  React.createElement(View, { style: style.collapsedContent },
36
36
  React.createElement(Button, { testID: "submit-checkout-collpased-button", small: true, onPress: onSubmit }, submitButtonText)))) : (React.createElement(Animated.View, { key: "not-collapsed", style: notCollapsedAnimatedStyle },
37
- React.createElement(Pricing, { pricing: pricing, totalCheckoutItemsKept: totalCheckoutItemsKept }),
37
+ React.createElement(Pricing, { migrated: migrated, pricing: pricing, totalCheckoutItemsKept: totalCheckoutItemsKept, tradename: tradename }),
38
38
  React.createElement(Button, { testID: "submit-checkout-button", onPress: onSubmit }, submitButtonText)))));
39
39
  };
40
40
  export { CollapsiblePricing };
@@ -1,8 +1,11 @@
1
1
  import { FC } from "react";
2
+ import { Tradename } from "@lookiero/sty-sp-tradename";
2
3
  import { PricingProjection } from "../../../../../../projection/pricing/pricing";
3
4
  interface PricingProps {
4
5
  readonly pricing: PricingProjection;
5
6
  readonly totalCheckoutItemsKept: number;
7
+ readonly tradename: Tradename;
8
+ readonly migrated: boolean;
6
9
  }
7
10
  declare const Pricing: FC<PricingProps>;
8
11
  export { Pricing };
@@ -2,6 +2,7 @@ import React, { useMemo } from "react";
2
2
  import { View } from "react-native";
3
3
  import { Text } from "@lookiero/aurora";
4
4
  import { useI18nMessage } from "@lookiero/i18n-react";
5
+ import { Tradename } from "@lookiero/sty-sp-tradename";
5
6
  import { Price } from "../../../../components/atoms/price/Price";
6
7
  import { DOMAIN, I18nMessages } from "../../../../i18n/i18n";
7
8
  import { style as pricingStyle } from "./Pricing.style";
@@ -11,7 +12,7 @@ const Row = ({ action = false, text, level = 3, children }) => {
11
12
  React.createElement(Text, { action: action, level: level }, text),
12
13
  children));
13
14
  };
14
- const Pricing = ({ pricing, totalCheckoutItemsKept }) => {
15
+ const Pricing = ({ pricing, totalCheckoutItemsKept, tradename, migrated }) => {
15
16
  const { pendingToPay, subtotal, balanceDiscount, discount, discountPercentage = 0, service } = pricing;
16
17
  const style = useMemo(() => pricingStyle(), []);
17
18
  const totalText = useI18nMessage({ domain: DOMAIN, id: I18nMessages.SUMMARY_TOTAL });
@@ -36,7 +37,7 @@ const Pricing = ({ pricing, totalCheckoutItemsKept }) => {
36
37
  React.createElement(Price, { price: discount, variant: "subtotal" }))),
37
38
  balanceDiscount && balanceDiscount.amount !== 0 && (React.createElement(Row, { text: creditText },
38
39
  React.createElement(Price, { price: balanceDiscount, variant: "subtotal" }))),
39
- React.createElement(Row, { text: feeText }, service.paidWithPromocode ? (React.createElement(Text, { level: 3 }, freeText)) : (React.createElement(Price, { price: service.finalPrice, variant: "subtotal" }))),
40
+ (tradename === Tradename.LOOKIERO || (tradename === Tradename.OUTFITTERY && !migrated)) && (React.createElement(Row, { text: feeText }, service.paidWithPromocode ? (React.createElement(Text, { level: 3 }, freeText)) : (React.createElement(Price, { price: service.finalPrice, variant: "subtotal" })))),
40
41
  React.createElement(View, { style: style.divider }),
41
42
  React.createElement(Row, { level: 2, text: totalText, action: true },
42
43
  React.createElement(Price, { price: pendingToPay, variant: "total" }))));
@@ -6,5 +6,6 @@ interface Customer {
6
6
  readonly segment: Segment;
7
7
  readonly name: string;
8
8
  readonly email: string;
9
+ readonly migrated: boolean;
9
10
  }
10
11
  export type { Customer };
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "12.26.0";
2
- export declare const RELEASE = "checkout@12.26.0";
1
+ export declare const VERSION = "12.27.0";
2
+ export declare const RELEASE = "checkout@12.27.0";
@@ -1,2 +1,2 @@
1
- export const VERSION = "12.26.0";
2
- export const RELEASE = "checkout@12.26.0";
1
+ export const VERSION = "12.27.0";
2
+ export const RELEASE = "checkout@12.27.0";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lookiero/checkout",
3
- "version": "12.26.0",
3
+ "version": "12.27.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "sideEffects": "false",
package/src/ExpoRoot.tsx CHANGED
@@ -42,6 +42,7 @@ const customer: Customer = {
42
42
  segment: Segment.WOMEN,
43
43
  email: "email@example.com",
44
44
  name: "Adèle Léonce Émilie",
45
+ migrated: false,
45
46
  };
46
47
 
47
48
  const sentryConfig: SentryEnvironment = {
@@ -5,6 +5,7 @@ import { QueryStatus } from "@lookiero/messaging-react";
5
5
  import { Country } from "@lookiero/sty-psp-locale";
6
6
  import { Segment } from "@lookiero/sty-psp-segment";
7
7
  import { DummyLayout } from "@lookiero/sty-psp-ui";
8
+ import { Tradename } from "@lookiero/sty-sp-tradename";
8
9
  import { CheckoutItemStatus } from "../../../../domain/checkoutItem/model/checkoutItem";
9
10
  import { Customer } from "../../../../projection/customer/customer";
10
11
  import { OrderProjection } from "../../../../projection/order/order";
@@ -27,6 +28,7 @@ const mockCustomer: Customer = {
27
28
  customerId,
28
29
  country,
29
30
  segment,
31
+ migrated: false,
30
32
  } as Customer;
31
33
  const mockCheckout = checkout({
32
34
  items: [
@@ -54,8 +56,9 @@ jest.mock("../../hooks/useCheckoutFlow", () => ({
54
56
  useCheckoutFlow: () => [mockCheckoutFlow, mockStatus, mockPaymentFlowComponent],
55
57
  }));
56
58
 
59
+ const mockTradename = Tradename.LOOKIERO;
57
60
  jest.mock("../../hooks/useStaticInfo", () => ({
58
- useStaticInfo: () => ({ customer: mockCustomer, basePath }),
61
+ useStaticInfo: () => ({ customer: mockCustomer, basePath, tradename: mockTradename }),
59
62
  }));
60
63
  // eslint-disable-next-line @typescript-eslint/naming-convention
61
64
  jest.mock("./components/paymentInstrument/PaymentInstrument", () => ({ PaymentInstrument: () => null }));
@@ -46,7 +46,7 @@ const Checkout: FC<CheckoutProps> = ({
46
46
  onCheckoutFlowSuccess,
47
47
  }) => {
48
48
  const {
49
- customer: { customerId, country, segment },
49
+ customer: { customerId, country, segment, migrated },
50
50
  basePath,
51
51
  tradename,
52
52
  } = useStaticInfo();
@@ -198,7 +198,12 @@ const Checkout: FC<CheckoutProps> = ({
198
198
  <Box size={{ L: "1/3" }} style={[style.resume, isDektopScreen && style.desktopResume]}>
199
199
  {pricing ? (
200
200
  <View style={[style.princingWrapper, !isDektopScreen && style.princingWrapperSmall]}>
201
- <Pricing pricing={pricing} totalCheckoutItemsKept={checkoutItemsKept?.length || 0} />
201
+ <Pricing
202
+ migrated={migrated}
203
+ pricing={pricing}
204
+ totalCheckoutItemsKept={checkoutItemsKept?.length || 0}
205
+ tradename={tradename}
206
+ />
202
207
 
203
208
  {isDektopScreen && <PaymentButton />}
204
209
  </View>
@@ -88,8 +88,6 @@ const ProductVariantSlider: FC<ProductVariantSlider> = ({ producVariantMedia, on
88
88
  [],
89
89
  );
90
90
 
91
- console.log({ producVariantMedia });
92
-
93
91
  return (
94
92
  <Carousel
95
93
  activeIndex={activeIndex}
@@ -5,6 +5,7 @@ import { QueryStatus } from "@lookiero/messaging-react";
5
5
  import { Country } from "@lookiero/sty-psp-locale";
6
6
  import { Segment } from "@lookiero/sty-psp-segment";
7
7
  import { DummyLayout } from "@lookiero/sty-psp-ui";
8
+ import { Tradename } from "@lookiero/sty-sp-tradename";
8
9
  import { CheckoutItemStatus } from "../../../../domain/checkoutItem/model/checkoutItem";
9
10
  import { Customer } from "../../../../projection/customer/customer";
10
11
  import { checkout } from "../../../projection/checkout/checkout.mock";
@@ -32,10 +33,12 @@ const mockCustomer: Customer = {
32
33
  customerId,
33
34
  country,
34
35
  segment,
36
+ migrated: false,
35
37
  } as Customer;
36
38
 
39
+ const mockTradename = Tradename.LOOKIERO;
37
40
  jest.mock("../../hooks/useStaticInfo", () => ({
38
- useStaticInfo: () => ({ customer: mockCustomer }),
41
+ useStaticInfo: () => ({ customer: mockCustomer, tradename: mockTradename }),
39
42
  }));
40
43
 
41
44
  jest.mock("../../../projection/checkout/react/useViewFirstAvailableCheckoutByCustomerId");
@@ -28,7 +28,7 @@ interface SummaryProps {
28
28
 
29
29
  const Summary: FC<SummaryProps> = ({ layout: Layout, children }) => {
30
30
  const {
31
- customer: { customerId, country, segment },
31
+ customer: { customerId, country, segment, migrated },
32
32
  basePath,
33
33
  tradename,
34
34
  } = useStaticInfo();
@@ -152,9 +152,11 @@ const Summary: FC<SummaryProps> = ({ layout: Layout, children }) => {
152
152
  <CollapsiblePricing
153
153
  collapsed={false}
154
154
  collapsible={false}
155
+ migrated={migrated}
155
156
  pricing={pricing}
156
157
  submitButtonText={submitButtonText}
157
158
  totalCheckoutItemsKept={totalCheckoutItemsKept}
159
+ tradename={tradename}
158
160
  onSubmit={handleOnSubmit}
159
161
  />
160
162
  </View>
@@ -168,9 +170,11 @@ const Summary: FC<SummaryProps> = ({ layout: Layout, children }) => {
168
170
  <Body>
169
171
  <CollapsiblePricing
170
172
  collapsed={pricingCollapsed}
173
+ migrated={migrated}
171
174
  pricing={pricing}
172
175
  submitButtonText={submitButtonText}
173
176
  totalCheckoutItemsKept={totalCheckoutItemsKept}
177
+ tradename={tradename}
174
178
  onPress={handleOnPressPricing}
175
179
  onSubmit={handleOnSubmit}
176
180
  />
@@ -1,5 +1,6 @@
1
1
  import { RenderResult, fireEvent } from "@testing-library/react-native";
2
2
  import React from "react";
3
+ import { Tradename } from "@lookiero/sty-sp-tradename";
3
4
  import { PricingProjection } from "../../../../../../projection/pricing/pricing";
4
5
  import { pricing as pricingFunction } from "../../../../../projection/pricing/pricing.mock";
5
6
  import { I18nMessages } from "../../../../i18n/i18n";
@@ -28,9 +29,11 @@ const renderPricing: RenderPricingFunction = ({
28
29
  <CollapsiblePricing
29
30
  collapsed={collapsed}
30
31
  collapsible={collapsible}
32
+ migrated={false}
31
33
  pricing={pricing}
32
34
  submitButtonText={I18nMessages.SUMMARY_SUBMIT_BUTTON}
33
35
  totalCheckoutItemsKept={3}
36
+ tradename={Tradename.LOOKIERO}
34
37
  onPress={mockOnPress}
35
38
  onSubmit={mockOnSubmit}
36
39
  />,
@@ -4,6 +4,7 @@ import Animated, { useAnimatedStyle, useSharedValue, withTiming } from "react-na
4
4
  import { Button, Text } from "@lookiero/aurora";
5
5
  import { useI18nMessage } from "@lookiero/i18n-react";
6
6
  import { Icon } from "@lookiero/sty-psp-ui";
7
+ import { Tradename } from "@lookiero/sty-sp-tradename";
7
8
  import { PricingProjection } from "../../../../../../projection/pricing/pricing";
8
9
  import { Price } from "../../../../components/atoms/price/Price";
9
10
  import { DOMAIN, I18nMessages } from "../../../../i18n/i18n";
@@ -11,6 +12,8 @@ import { Pricing } from "../pricing/Pricing";
11
12
  import { style as collapsiblePricingStyle } from "./CollapsiblePricing.style";
12
13
 
13
14
  interface CollapsiblePricingProps {
15
+ readonly tradename: Tradename;
16
+ readonly migrated: boolean;
14
17
  readonly pricing: PricingProjection;
15
18
  readonly totalCheckoutItemsKept: number;
16
19
  readonly collapsible?: boolean;
@@ -20,6 +23,8 @@ interface CollapsiblePricingProps {
20
23
  readonly onSubmit: () => void;
21
24
  }
22
25
  const CollapsiblePricing: FC<CollapsiblePricingProps> = ({
26
+ migrated,
27
+ tradename,
23
28
  pricing,
24
29
  totalCheckoutItemsKept,
25
30
  collapsible = true,
@@ -81,7 +86,12 @@ const CollapsiblePricing: FC<CollapsiblePricingProps> = ({
81
86
  </Animated.View>
82
87
  ) : (
83
88
  <Animated.View key="not-collapsed" style={notCollapsedAnimatedStyle}>
84
- <Pricing pricing={pricing} totalCheckoutItemsKept={totalCheckoutItemsKept} />
89
+ <Pricing
90
+ migrated={migrated}
91
+ pricing={pricing}
92
+ totalCheckoutItemsKept={totalCheckoutItemsKept}
93
+ tradename={tradename}
94
+ />
85
95
 
86
96
  <Button testID="submit-checkout-button" onPress={onSubmit}>
87
97
  {submitButtonText}
@@ -2,6 +2,7 @@ import React, { FC, ReactNode, useMemo } from "react";
2
2
  import { View } from "react-native";
3
3
  import { Text } from "@lookiero/aurora";
4
4
  import { useI18nMessage } from "@lookiero/i18n-react";
5
+ import { Tradename } from "@lookiero/sty-sp-tradename";
5
6
  import { PricingProjection } from "../../../../../../projection/pricing/pricing";
6
7
  import { Price } from "../../../../components/atoms/price/Price";
7
8
  import { DOMAIN, I18nMessages } from "../../../../i18n/i18n";
@@ -28,9 +29,11 @@ const Row: FC<RowProps> = ({ action = false, text, level = 3, children }) => {
28
29
  interface PricingProps {
29
30
  readonly pricing: PricingProjection;
30
31
  readonly totalCheckoutItemsKept: number;
32
+ readonly tradename: Tradename;
33
+ readonly migrated: boolean;
31
34
  }
32
35
 
33
- const Pricing: FC<PricingProps> = ({ pricing, totalCheckoutItemsKept }) => {
36
+ const Pricing: FC<PricingProps> = ({ pricing, totalCheckoutItemsKept, tradename, migrated }) => {
34
37
  const { pendingToPay, subtotal, balanceDiscount, discount, discountPercentage = 0, service } = pricing;
35
38
 
36
39
  const style = useMemo(() => pricingStyle(), []);
@@ -69,13 +72,15 @@ const Pricing: FC<PricingProps> = ({ pricing, totalCheckoutItemsKept }) => {
69
72
  </Row>
70
73
  )}
71
74
 
72
- <Row text={feeText}>
73
- {service.paidWithPromocode ? (
74
- <Text level={3}>{freeText}</Text>
75
- ) : (
76
- <Price price={service.finalPrice} variant="subtotal" />
77
- )}
78
- </Row>
75
+ {(tradename === Tradename.LOOKIERO || (tradename === Tradename.OUTFITTERY && !migrated)) && (
76
+ <Row text={feeText}>
77
+ {service.paidWithPromocode ? (
78
+ <Text level={3}>{freeText}</Text>
79
+ ) : (
80
+ <Price price={service.finalPrice} variant="subtotal" />
81
+ )}
82
+ </Row>
83
+ )}
79
84
 
80
85
  <View style={style.divider} />
81
86
 
@@ -7,6 +7,7 @@ interface Customer {
7
7
  readonly segment: Segment;
8
8
  readonly name: string;
9
9
  readonly email: string;
10
+ readonly migrated: boolean;
10
11
  }
11
12
 
12
13
  export type { Customer };