@lookiero/checkout 0.8.17 → 0.8.19-beta.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 (137) hide show
  1. package/dist/domain/checkout/command/markCheckoutAsPaid.d.ts +13 -0
  2. package/dist/domain/checkout/command/markCheckoutAsPaid.js +4 -0
  3. package/dist/domain/checkout/event/createModalNotificationWhenCheckoutSubmitted.d.ts +7 -0
  4. package/dist/domain/checkout/event/createModalNotificationWhenCheckoutSubmitted.js +12 -0
  5. package/dist/domain/checkout/model/checkoutPaid.d.ts +13 -0
  6. package/dist/domain/checkout/model/checkoutPaid.js +4 -0
  7. package/dist/domain/checkoutBooking/event/createToastNotificationWhenCheckoutBookingExpired.d.ts +7 -0
  8. package/dist/domain/checkoutBooking/event/createToastNotificationWhenCheckoutBookingExpired.js +13 -0
  9. package/dist/domain/checkoutItem/event/createModalNotificationWhenCheckoutItemReplaced.d.ts +7 -0
  10. package/dist/domain/checkoutItem/event/createModalNotificationWhenCheckoutItemReplaced.js +12 -0
  11. package/dist/domain/checkoutItem/model/checkoutItem.js +1 -0
  12. package/dist/index.d.ts +2 -1
  13. package/dist/index.js +2 -1
  14. package/dist/infrastructure/delivery/baseBootstrap.js +8 -2
  15. package/dist/infrastructure/delivery/mock/checkoutDataSource.js +4 -1
  16. package/dist/infrastructure/domain/checkout/model/httpCheckoutsMarkAsPaid.d.ts +5 -0
  17. package/dist/infrastructure/domain/checkout/model/httpCheckoutsMarkAsPaid.js +13 -0
  18. package/dist/infrastructure/domain/checkout/react/useMarkCheckoutAsPaid.d.ts +13 -0
  19. package/dist/infrastructure/domain/checkout/react/useMarkCheckoutAsPaid.js +16 -0
  20. package/dist/infrastructure/domain/checkout/react/useSubmitCheckout.js +2 -2
  21. package/dist/infrastructure/domain/checkoutBooking/react/useBlockCheckoutBooking.js +2 -2
  22. package/dist/infrastructure/domain/checkoutBooking/react/useBookCheckouBookingForCheckoutItem.d.ts +13 -0
  23. package/dist/infrastructure/domain/checkoutBooking/react/useBookCheckouBookingForCheckoutItem.js +14 -0
  24. package/dist/infrastructure/domain/checkoutBooking/react/useBookCheckoutBookingForCheckoutItem.js +2 -2
  25. package/dist/infrastructure/domain/checkoutFeedback/react/useGiveCheckoutFeedback.js +2 -2
  26. package/dist/infrastructure/domain/checkoutItem/react/useKeepCheckoutItem.js +3 -5
  27. package/dist/infrastructure/domain/checkoutItem/react/useReplaceCheckoutItem.js +3 -6
  28. package/dist/infrastructure/domain/checkoutItem/react/useResetCheckoutItem.js +3 -5
  29. package/dist/infrastructure/domain/checkoutItem/react/useReturnCheckoutItem.js +3 -6
  30. package/dist/infrastructure/domain/uiSetting/react/useIncrementIntroShownCount.d.ts +10 -0
  31. package/dist/infrastructure/domain/uiSetting/react/useIncrementIntroShownCount.js +11 -0
  32. package/dist/infrastructure/projection/bookedProductsVariants/react/useViewBookedProductsVariantsForCheckoutItem.js +4 -1
  33. package/dist/infrastructure/projection/bookedSizeChangeProductsVariants/httpBookedSizeChangeProductsVariantsForCheckoutItemView.d.ts +12 -0
  34. package/dist/infrastructure/projection/bookedSizeChangeProductsVariants/httpBookedSizeChangeProductsVariantsForCheckoutItemView.js +9 -0
  35. package/dist/infrastructure/projection/bookedSizeChangeProductsVariants/react/useViewBookedSizeChangeProductsVariantsForCheckoutItem.d.ts +10 -0
  36. package/dist/infrastructure/projection/bookedSizeChangeProductsVariants/react/useViewBookedSizeChangeProductsVariantsForCheckoutItem.js +12 -0
  37. package/dist/infrastructure/projection/checkout/react/useViewFiveItemsDiscountByCustomerId.js +1 -1
  38. package/dist/infrastructure/projection/checkoutFeedback/httpCheckoutFeedbackByCheckoutIdView.d.ts +12 -0
  39. package/dist/infrastructure/projection/checkoutFeedback/httpCheckoutFeedbackByCheckoutIdView.js +9 -0
  40. package/dist/infrastructure/projection/checkoutQuestion/react/useListCheckoutQuestionsByCheckoutId.js +1 -1
  41. package/dist/infrastructure/projection/payment/react/useViewPaymentFlowPayloadByCheckoutId.js +6 -1
  42. package/dist/infrastructure/projection/pricing/react/useViewPricingByCheckoutId.js +6 -1
  43. package/dist/infrastructure/projection/returnQuestion/react/useListReturnQuestionsByCheckoutItemId.js +1 -1
  44. package/dist/infrastructure/projection/uiSetting/react/useShouldIntroBeShown.d.ts +6 -0
  45. package/dist/infrastructure/projection/uiSetting/react/useShouldIntroBeShown.js +7 -0
  46. package/dist/infrastructure/projection/uiSetting/react/useViewIntroShownCount.d.ts +6 -0
  47. package/dist/infrastructure/projection/uiSetting/react/useViewIntroShownCount.js +9 -0
  48. package/dist/infrastructure/ui/hooks/usePaymentInstrumentEvents.js +2 -2
  49. package/dist/infrastructure/ui/hooks/useSubmitCheckout.js +2 -2
  50. package/dist/infrastructure/ui/i18n/translationEndpoint.d.ts +10 -1
  51. package/dist/infrastructure/ui/i18n/translationEndpoint.js +19 -1
  52. package/dist/infrastructure/ui/routing/CheckoutMiddleware.js +54 -36
  53. package/dist/infrastructure/ui/routing/Routing.js +1 -7
  54. package/dist/infrastructure/ui/views/App.js +4 -4
  55. package/dist/infrastructure/ui/views/App.style.d.ts +4 -0
  56. package/dist/infrastructure/ui/views/App.style.js +16 -0
  57. package/dist/infrastructure/ui/views/checkout/components/checkoutPaymentModal/CheckoutPaymentModal.js +3 -7
  58. package/dist/infrastructure/ui/views/feedback/Feedback.js +10 -3
  59. package/dist/infrastructure/ui/views/header/Header.d.ts +15 -0
  60. package/dist/infrastructure/ui/views/header/Header.js +90 -0
  61. package/dist/infrastructure/ui/views/header/Header.style.d.ts +35 -0
  62. package/dist/infrastructure/ui/views/header/Header.style.js +38 -0
  63. package/dist/infrastructure/ui/views/header/components/Logo.d.ts +7 -0
  64. package/dist/infrastructure/ui/views/header/components/Logo.js +11 -0
  65. package/dist/infrastructure/ui/views/header/components/Logo.style.d.ts +7 -0
  66. package/dist/infrastructure/ui/views/header/components/Logo.style.js +8 -0
  67. package/dist/infrastructure/ui/views/intro/Intro.d.ts +6 -0
  68. package/dist/infrastructure/ui/views/intro/Intro.js +52 -0
  69. package/dist/infrastructure/ui/views/intro/Intro.style.d.ts +55 -0
  70. package/dist/infrastructure/ui/views/intro/Intro.style.js +58 -0
  71. package/dist/infrastructure/ui/views/item/Item.js +9 -53
  72. package/dist/infrastructure/ui/views/item/components/banner/CustomerDecissionBanner.d.ts +1 -0
  73. package/dist/infrastructure/ui/views/item/components/banner/CustomerDecissionBanner.js +10 -4
  74. package/dist/infrastructure/ui/views/item/components/banner/CustomerDecissionBanner.style.d.ts +8 -1
  75. package/dist/infrastructure/ui/views/item/components/banner/CustomerDecissionBanner.style.js +8 -1
  76. package/dist/projection/bookedSizeChangeProductsVariants/bookedSizeChangeProductsVariants.d.ts +10 -0
  77. package/dist/projection/bookedSizeChangeProductsVariants/bookedSizeChangeProductsVariants.js +1 -0
  78. package/dist/projection/bookedSizeChangeProductsVariants/viewBookedSizeChangeProductVariantsForCheckoutItem.d.ts +25 -0
  79. package/dist/projection/bookedSizeChangeProductsVariants/viewBookedSizeChangeProductVariantsForCheckoutItem.js +8 -0
  80. package/dist/projection/checkoutFeedback/viewCheckoutFeedbackByCheckoutId.d.ts +25 -0
  81. package/dist/projection/checkoutFeedback/viewCheckoutFeedbackByCheckoutId.js +8 -0
  82. package/dist/projection/shared/country.d.ts +10 -10
  83. package/dist/projection/shared/locale.d.ts +11 -0
  84. package/dist/projection/shared/locale.js +12 -0
  85. package/dist/shared/logging/location.d.ts +3 -0
  86. package/dist/shared/logging/location.js +5 -0
  87. package/dist/shared/logging/matchRoutes.d.ts +3 -0
  88. package/dist/shared/logging/matchRoutes.js +7 -0
  89. package/dist/shared/logging/reactRouterV6Instrumentation/reactRouterV6Instrumentation.native.d.ts +29 -0
  90. package/dist/shared/logging/reactRouterV6Instrumentation/reactRouterV6Instrumentation.native.js +134 -0
  91. package/dist/shared/logging/reactRouterV6Instrumentation/transactionContext.d.ts +22 -0
  92. package/dist/shared/logging/reactRouterV6Instrumentation/transactionContext.js +15 -0
  93. package/dist/shared/logging/reactRouterV6Instrumentation.native.d.ts +27 -0
  94. package/dist/shared/logging/reactRouterV6Instrumentation.native.js +115 -0
  95. package/dist/shared/notifications/domain/notification/command/createModalNotification.d.ts +18 -0
  96. package/dist/shared/notifications/domain/notification/command/createModalNotification.js +9 -0
  97. package/dist/shared/notifications/domain/notification/command/createToastNotification.d.ts +18 -0
  98. package/dist/shared/notifications/domain/notification/command/createToastNotification.js +9 -0
  99. package/dist/shared/notifications/domain/notification/command/removeNotification.tes.d.ts +1 -0
  100. package/dist/shared/notifications/domain/notification/command/removeNotification.tes.js +9 -0
  101. package/dist/shared/notifications/domain/notification/model/notification.d.ts +11 -4
  102. package/dist/shared/notifications/domain/notification/model/notification.js +20 -4
  103. package/dist/shared/notifications/index.d.ts +3 -2
  104. package/dist/shared/notifications/index.js +3 -2
  105. package/dist/shared/notifications/infrastructure/delivery/bootstrap.js +7 -4
  106. package/dist/shared/notifications/infrastructure/domain/notification/model/storageNotifications.js +3 -1
  107. package/dist/shared/notifications/infrastructure/domain/notification/model/storageNotificationsCreate.d.ts +1 -1
  108. package/dist/shared/notifications/infrastructure/domain/notification/model/storageNotificationsCreate.js +3 -1
  109. package/dist/shared/notifications/infrastructure/domain/notification/react/useCreateModalNotification.d.ts +20 -0
  110. package/dist/shared/notifications/infrastructure/domain/notification/react/useCreateModalNotification.js +22 -0
  111. package/dist/shared/notifications/infrastructure/domain/notification/react/useCreateToastNotification.d.ts +21 -0
  112. package/dist/shared/notifications/infrastructure/domain/notification/react/useCreateToastNotification.js +22 -0
  113. package/dist/shared/notifications/infrastructure/persistence/notificationDto.d.ts +3 -1
  114. package/dist/shared/notifications/infrastructure/projection/notification/notification.d.ts +2 -2
  115. package/dist/shared/notifications/infrastructure/projection/notification/notification.js +16 -6
  116. package/dist/shared/notifications/infrastructure/ui/components/modalNotifications/ModalNotificationItem.d.ts +10 -0
  117. package/dist/shared/notifications/infrastructure/ui/components/modalNotifications/ModalNotificationItem.js +26 -0
  118. package/dist/shared/notifications/infrastructure/ui/components/modalNotifications/ModalNotificationItem.style.d.ts +16 -0
  119. package/dist/shared/notifications/infrastructure/ui/components/modalNotifications/ModalNotificationItem.style.js +19 -0
  120. package/dist/shared/notifications/infrastructure/ui/components/modalNotifications/ModalNotifications.d.ts +8 -0
  121. package/dist/shared/notifications/infrastructure/ui/components/modalNotifications/ModalNotifications.js +6 -0
  122. package/dist/shared/notifications/infrastructure/ui/components/modalNotifications/ModalNotifications.style.d.ts +25 -0
  123. package/dist/shared/notifications/infrastructure/ui/components/modalNotifications/ModalNotifications.style.js +18 -0
  124. package/dist/shared/notifications/infrastructure/ui/components/toastNotifications/ToastNotificationItem.d.ts +12 -0
  125. package/dist/shared/notifications/infrastructure/ui/components/toastNotifications/ToastNotificationItem.js +24 -0
  126. package/dist/shared/notifications/infrastructure/ui/components/toastNotifications/ToastNotifications.d.ts +9 -0
  127. package/dist/shared/notifications/infrastructure/ui/components/toastNotifications/ToastNotifications.js +20 -0
  128. package/dist/shared/notifications/infrastructure/ui/components/toastNotifications/ToastNotifications.style.d.ts +36 -0
  129. package/dist/shared/notifications/infrastructure/ui/components/toastNotifications/ToastNotifications.style.js +31 -0
  130. package/dist/shared/notifications/infrastructure/ui/views/Notifications.js +9 -3
  131. package/dist/shared/notifications/projection/notification/notification.d.ts +18 -2
  132. package/dist/shared/notifications/projection/notification/notification.js +8 -1
  133. package/dist/shared/ui/components/atoms/spinner/Spinner.d.ts +6 -1
  134. package/dist/shared/ui/components/atoms/spinner/Spinner.js +2 -2
  135. package/dist/shared/ui/components/layouts/modal/Modal.d.ts +1 -0
  136. package/dist/shared/ui/components/layouts/modal/Modal.js +2 -2
  137. package/package.json +7 -5
@@ -0,0 +1,7 @@
1
+ declare const style: {
2
+ logo: {
3
+ height: number;
4
+ width: number;
5
+ };
6
+ };
7
+ export { style };
@@ -0,0 +1,8 @@
1
+ import { StyleSheet } from "react-native";
2
+ const style = StyleSheet.create({
3
+ logo: {
4
+ height: 54,
5
+ width: 217,
6
+ },
7
+ });
8
+ export { style };
@@ -0,0 +1,6 @@
1
+ import { FC } from "react";
2
+ type IntroProps = {
3
+ readonly customerId: string;
4
+ };
5
+ declare const Intro: FC<IntroProps>;
6
+ export { Intro };
@@ -0,0 +1,52 @@
1
+ import { Button } from "@lookiero/aurora-next/build/components/atoms/Button/Button";
2
+ import { Icon } from "@lookiero/aurora-next/build/components/primitives/Icon/Icon";
3
+ import { Text } from "@lookiero/aurora-next/build/components/primitives/Text/Text";
4
+ import { useI18nMessage } from "@lookiero/i18n-react";
5
+ import { CommandStatus, QueryStatus } from "@lookiero/messaging-react";
6
+ import React from "react";
7
+ import { Platform, View } from "react-native";
8
+ import { Spinner } from "../../../../shared/ui/components/atoms/spinner/Spinner";
9
+ import { useIncrementIntroShownCount } from "../../../domain/uiSetting/react/useIncrementIntroShownCount";
10
+ import { useViewFiveItemsDiscountByCustomerId } from "../../../projection/checkout/react/useViewFiveItemsDiscountByCustomerId";
11
+ import { Body } from "../../components/layouts/body/Body";
12
+ import { SafeAreaScrollView } from "../../components/templates/SafeAreaScrollView";
13
+ import { I18nMessages } from "../../i18n/i18n";
14
+ import { HEADER_HEIGHT } from "../navigation/components/header/Header.style";
15
+ import { style } from "./Intro.style";
16
+ const Bullet = ({ text }) => (React.createElement(View, { style: style.bullet },
17
+ React.createElement(Icon, { name: "rounded-tick", style: style.tickIcon }),
18
+ React.createElement(Text, { level: 2, detail: true }, text)));
19
+ const Intro = ({ customerId }) => {
20
+ const titleText = useI18nMessage({ id: I18nMessages.INTRO_TITLE });
21
+ const subTitleText = useI18nMessage({ id: I18nMessages.INTRO_SUBTITLE });
22
+ const discountText = useI18nMessage({ id: I18nMessages.INTRO_DISCOUNT });
23
+ const bulletOneText = useI18nMessage({ id: I18nMessages.INTRO_BULLET_ONE });
24
+ const bulletTwoText = useI18nMessage({ id: I18nMessages.INTRO_BULLET_TWO });
25
+ const bulletThreeText = useI18nMessage({ id: I18nMessages.INTRO_BULLET_THREE });
26
+ const buttonText = useI18nMessage({ id: I18nMessages.INTRO_BUTTON });
27
+ const [fiveItemsDiscount, fiveItemsDiscountStatus] = useViewFiveItemsDiscountByCustomerId({
28
+ customerId,
29
+ });
30
+ const [incrementIntroShownCount, incrementIntroShownCountStatus] = useIncrementIntroShownCount();
31
+ if (fiveItemsDiscountStatus === QueryStatus.LOADING)
32
+ return React.createElement(Spinner, null);
33
+ return (React.createElement(SafeAreaScrollView, { scrollerPaddingTop: Platform.OS === "web" || Platform.OS === "android" ? HEADER_HEIGHT : 0, style: { safeAreaView: style.container } },
34
+ React.createElement(Body, { style: { column: style.bodyColumn } },
35
+ React.createElement(View, { style: style.intro },
36
+ React.createElement(View, { style: style.content },
37
+ React.createElement(Text, { level: 3, style: style.title, heading: true }, titleText),
38
+ React.createElement(Text, { level: 3, style: style.subtitle, body: true }, subTitleText),
39
+ fiveItemsDiscount !== 0 && (React.createElement(View, { style: style.discountContainer },
40
+ React.createElement(View, { style: style.discount },
41
+ React.createElement(Text, { level: 2, heading: true },
42
+ "- ",
43
+ fiveItemsDiscount),
44
+ React.createElement(Text, { level: 3, style: style.percentage, heading: true }, "%")),
45
+ React.createElement(Text, { level: 3, body: true }, discountText))),
46
+ React.createElement(View, { style: style.description },
47
+ React.createElement(Bullet, { text: bulletOneText }),
48
+ React.createElement(Bullet, { text: bulletTwoText }),
49
+ React.createElement(Bullet, { text: bulletThreeText }))),
50
+ React.createElement(Button, { disabled: incrementIntroShownCountStatus === CommandStatus.LOADING, onPress: incrementIntroShownCount }, buttonText)))));
51
+ };
52
+ export { Intro };
@@ -0,0 +1,55 @@
1
+ declare const style: {
2
+ bodyColumn: {
3
+ paddingHorizontal: number;
4
+ };
5
+ bullet: {
6
+ alignItems: "center";
7
+ flexDirection: "row";
8
+ marginVertical: number;
9
+ };
10
+ container: {
11
+ flex: number;
12
+ };
13
+ content: {
14
+ alignItems: "center";
15
+ };
16
+ description: {
17
+ borderWidth: number;
18
+ marginBottom: number;
19
+ padding: number;
20
+ width: string;
21
+ };
22
+ discount: {
23
+ alignItems: "flex-end";
24
+ flexDirection: "row";
25
+ justifyContent: "center";
26
+ marginBottom: number;
27
+ };
28
+ discountContainer: {
29
+ alignItems: "center";
30
+ backgroundColor: string;
31
+ marginBottom: number;
32
+ padding: number;
33
+ textAlign: "center";
34
+ width: string;
35
+ };
36
+ intro: {
37
+ flex: number;
38
+ justifyContent: "space-between";
39
+ };
40
+ percentage: {
41
+ marginLeft: number;
42
+ };
43
+ subtitle: {
44
+ marginBottom: number;
45
+ textAlign: "center";
46
+ };
47
+ tickIcon: {
48
+ marginRight: number;
49
+ };
50
+ title: {
51
+ marginBottom: number;
52
+ textAlign: "center";
53
+ };
54
+ };
55
+ export { style };
@@ -0,0 +1,58 @@
1
+ import { StyleSheet } from "react-native";
2
+ import { theme } from "../../theme/theme";
3
+ const { borderSize, colorAccent, spaceXS, spaceS, spaceM, spaceL, spaceXL } = theme();
4
+ const style = StyleSheet.create({
5
+ bodyColumn: {
6
+ paddingHorizontal: spaceXL,
7
+ },
8
+ bullet: {
9
+ alignItems: "center",
10
+ flexDirection: "row",
11
+ marginVertical: spaceS,
12
+ },
13
+ container: {
14
+ flex: 1,
15
+ },
16
+ content: {
17
+ alignItems: "center",
18
+ },
19
+ description: {
20
+ borderWidth: borderSize,
21
+ marginBottom: spaceXL,
22
+ padding: spaceM,
23
+ width: "100%",
24
+ },
25
+ discount: {
26
+ alignItems: "flex-end",
27
+ flexDirection: "row",
28
+ justifyContent: "center",
29
+ marginBottom: spaceS,
30
+ },
31
+ discountContainer: {
32
+ alignItems: "center",
33
+ backgroundColor: colorAccent,
34
+ marginBottom: spaceL,
35
+ padding: spaceM,
36
+ textAlign: "center",
37
+ width: "100%",
38
+ },
39
+ intro: {
40
+ flex: 1,
41
+ justifyContent: "space-between",
42
+ },
43
+ percentage: {
44
+ marginLeft: spaceXS,
45
+ },
46
+ subtitle: {
47
+ marginBottom: spaceXL,
48
+ textAlign: "center",
49
+ },
50
+ tickIcon: {
51
+ marginRight: spaceS,
52
+ },
53
+ title: {
54
+ marginBottom: spaceM,
55
+ textAlign: "center",
56
+ },
57
+ });
58
+ export { style };
@@ -1,7 +1,7 @@
1
1
  import { CommandStatus, QueryStatus } from "@lookiero/messaging-react";
2
2
  import React, { useCallback, useEffect, useMemo, useState } from "react";
3
3
  import { Platform, View } from "react-native";
4
- import { generatePath, useMatch, useNavigate, useParams } from "react-router-native";
4
+ import { useParams } from "react-router-native";
5
5
  import { CheckoutItemStatus } from "../../../../domain/checkoutItem/model/checkoutItem";
6
6
  import "../../../../projection/checkout/viewFirstAvailableCheckoutByCustomerId";
7
7
  import { useLogger } from "../../../../shared/logging/useLogger";
@@ -19,8 +19,6 @@ import { TrackingPage } from "../../../tracking/tracking";
19
19
  import { Body } from "../../components/layouts/body/Body";
20
20
  import { ReturnQuestionFeedbackProvider } from "../../components/organisms/returnQuestions/behaviors/useReturnQuestionFeedback";
21
21
  import { SafeAreaScrollView } from "../../components/templates/SafeAreaScrollView";
22
- import { Routes } from "../../routing/routes";
23
- import { useBasePath } from "../../routing/useBasePath";
24
22
  import { theme } from "../../theme/theme";
25
23
  import { HEADER_HEIGHT } from "../navigation/components/header/Header.style";
26
24
  import { style } from "./Item.style";
@@ -30,7 +28,6 @@ import { ProductVariantDescription } from "./components/productVariantDescriptio
30
28
  import { ProductVariantSlider } from "./components/productVariantSlider/ProductVariantSlider";
31
29
  import { ReturnQuestionsFeedback } from "./components/returnQuestionsFeedback/ReturnQuestionsFeedback";
32
30
  import { ReturnQuestionsForm } from "./components/returnQuestionsForm/ReturnQuestionsForm";
33
- import { SizeChangeModal } from "./components/sizeChangeModal/SizeChangeModal";
34
31
  import { SizeWithoutStockModal } from "./components/sizeWithoutStockModal/SizeWithoutStockModal";
35
32
  const { spaceXL } = theme();
36
33
  const Item = ({ customerId, country }) => {
@@ -44,35 +41,11 @@ const Item = ({ customerId, country }) => {
44
41
  checkoutId: checkout?.id,
45
42
  checkoutItemId: checkoutItem.id,
46
43
  });
47
- const basePath = useBasePath();
48
- const itemRouteMatch = useMatch(`${basePath}/${Routes.ITEM}`);
49
- const itemDetailRouteMatch = useMatch(`${basePath}/${Routes.ITEM_DETAIL}`);
50
- const navigate = useNavigate();
51
- const navigateToNextView = useCallback(() => {
52
- if (itemRouteMatch) {
53
- const nextItemWithoutCustomerDecision = checkout?.items
54
- .filter((item) => item.id !== id)
55
- .find((item) => item.status === CheckoutItemStatus.INITIAL);
56
- if (nextItemWithoutCustomerDecision) {
57
- navigate(generatePath(`${basePath}/${Routes.ITEM}`, { id: nextItemWithoutCustomerDecision.id }));
58
- }
59
- }
60
- else if (itemDetailRouteMatch) {
61
- navigate(`${basePath}/${Routes.SUMMARY}`);
62
- }
63
- }, [itemRouteMatch, itemDetailRouteMatch, checkout?.items, id, navigate, basePath]);
64
- const [customerDecissionMade, setCustomerDecissionMade] = useState();
65
- useEffect(() => {
66
- setCustomerDecissionMade(checkoutItem.status !== CheckoutItemStatus.INITIAL);
67
- }, [checkoutItem.status, id]);
68
- const [resetCheckoutItem] = useResetCheckoutItem({
44
+ const customerDecissionMade = checkoutItem.status !== CheckoutItemStatus.INITIAL;
45
+ const [resetCheckoutItem, resetCheckoutItemStatus] = useResetCheckoutItem({
69
46
  checkoutItemId: checkoutItem.id,
70
47
  logger,
71
48
  });
72
- const handleOnBannerPress = useCallback(() => {
73
- resetCheckoutItem();
74
- setCustomerDecissionMade(false);
75
- }, [resetCheckoutItem]);
76
49
  const [keepCheckoutItem, keepCheckoutItemStatus] = useKeepCheckoutItem({ checkoutItemId: checkoutItem.id, logger });
77
50
  const [returnCheckoutItem, returnCheckoutItemStatus] = useReturnCheckoutItem({
78
51
  checkoutItemId: checkoutItem.id,
@@ -85,14 +58,6 @@ const Item = ({ customerId, country }) => {
85
58
  const [sizeWithoutStockModalVisible, setSizeWithoutStockModalVisible] = useState(false);
86
59
  const handleOnShowSizeWithoutStockModal = useCallback(() => setSizeWithoutStockModalVisible(true), []);
87
60
  const handleOnHideSizeWithoutStockModal = useCallback(() => setSizeWithoutStockModalVisible(false), []);
88
- const [sizeChangeModalVisible, setSizeChangeModalVisible] = useState(false);
89
- const handleOnShowSizeChangeModal = useCallback(() => setSizeChangeModalVisible(true), []);
90
- const handleOnHideSizeChangeModal = useCallback(() => {
91
- setSizeChangeModalVisible(false);
92
- if (replaceCheckoutItemStatus === CommandStatus.SUCCESS) {
93
- navigateToNextView();
94
- }
95
- }, [navigateToNextView, replaceCheckoutItemStatus]);
96
61
  const [bookedProductsVariants, bookedProductsVariantsStatus] = useViewBookedProductsVariantsForCheckoutItem({
97
62
  checkoutItemId: checkoutItem.id,
98
63
  });
@@ -113,19 +78,11 @@ const Item = ({ customerId, country }) => {
113
78
  const handleOnShowReturnQuestions = useCallback(() => setReturnQuestionsVisible(true), []);
114
79
  const handleOnHideReturnQuestions = useCallback(() => setReturnQuestionsVisible(false), []);
115
80
  const handleOnEditFeedback = useCallback(() => handleOnShowReturnQuestions(), [handleOnShowReturnQuestions]);
116
- const handleOnSubmit = useCallback(async (feedbacks) => {
81
+ const handleOnSubmit = useCallback((feedbacks) => {
117
82
  handleOnHideReturnQuestions();
118
- await returnCheckoutItem({ feedbacks });
119
- navigateToNextView();
120
- }, [handleOnHideReturnQuestions, navigateToNextView, returnCheckoutItem]);
121
- const handleOnKeep = useCallback(async () => {
122
- await keepCheckoutItem();
123
- navigateToNextView();
124
- }, [keepCheckoutItem, navigateToNextView]);
125
- const handleOnReplace = useCallback(async (replacedForId) => {
126
- await replaceCheckoutItem({ replacedForId });
127
- handleOnShowSizeChangeModal();
128
- }, [handleOnShowSizeChangeModal, replaceCheckoutItem]);
83
+ returnCheckoutItem({ feedbacks });
84
+ }, [handleOnHideReturnQuestions, returnCheckoutItem]);
85
+ const handleOnReplace = useCallback((replacedForId) => replaceCheckoutItem({ replacedForId }), [replaceCheckoutItem]);
129
86
  const handleOnReturn = useCallback(() => handleOnShowReturnQuestions(), [handleOnShowReturnQuestions]);
130
87
  const productVariantSelected = useMemo(() => checkoutItem.status === CheckoutItemStatus.REPLACED && checkoutItem.replacedFor
131
88
  ? { id: checkoutItem.replacedFor.id, size: checkoutItem.replacedFor.size }
@@ -142,10 +99,9 @@ const Item = ({ customerId, country }) => {
142
99
  const { media, brand, name, color } = checkoutItem.productVariant;
143
100
  return (React.createElement(ReturnQuestionFeedbackProvider, { feedback: checkoutItem.feedbacks || {} },
144
101
  React.createElement(SizeWithoutStockModal, { visible: sizeWithoutStockModalVisible, onDismiss: handleOnHideSizeWithoutStockModal }),
145
- React.createElement(SizeChangeModal, { visible: sizeChangeModalVisible, onDismiss: handleOnHideSizeChangeModal }),
146
- React.createElement(SafeAreaScrollView, { scrollerPaddingTop: Platform.OS === "web" || Platform.OS === "android" ? HEADER_HEIGHT : 0, footer: !customerDecissionMade && (React.createElement(ItemActions, { country: country, keepButtonLoading: keepCheckoutItemStatus === CommandStatus.LOADING, productVariantSelected: productVariantSelected, productVariants: bookedProductsVariants?.productVariants || [], returnButtonLoading: returnCheckoutItemStatus === CommandStatus.LOADING, sizeSelectorDisabled: replaceCheckoutItemStatus === CommandStatus.LOADING, onKeep: handleOnKeep, onLayout: handleOnStickyLayout, onReplace: handleOnReplace, onReturn: handleOnReturn, onSizeSelectorPress: handleOnShowSizeWithoutStockModal })) },
102
+ React.createElement(SafeAreaScrollView, { scrollerPaddingTop: Platform.OS === "web" || Platform.OS === "android" ? HEADER_HEIGHT : 0, footer: !customerDecissionMade && (React.createElement(ItemActions, { country: country, keepButtonLoading: keepCheckoutItemStatus === CommandStatus.LOADING, productVariantSelected: productVariantSelected, productVariants: bookedProductsVariants?.productVariants || [], returnButtonLoading: returnCheckoutItemStatus === CommandStatus.LOADING, sizeSelectorDisabled: replaceCheckoutItemStatus === CommandStatus.LOADING, onKeep: keepCheckoutItem, onLayout: handleOnStickyLayout, onReplace: handleOnReplace, onReturn: handleOnReturn, onSizeSelectorPress: handleOnShowSizeWithoutStockModal })) },
147
103
  React.createElement(Body, null,
148
- customerDecissionMade && (React.createElement(CustomerDecissionBanner, { checkoutItemStatus: checkoutItem.status, onPress: handleOnBannerPress })),
104
+ customerDecissionMade && (React.createElement(CustomerDecissionBanner, { changingDecission: resetCheckoutItemStatus === CommandStatus.LOADING, checkoutItemStatus: checkoutItem.status, onPress: resetCheckoutItem })),
149
105
  React.createElement(View, { style: [style.content, { paddingBottom: Platform.OS === "web" ? spaceXL : stickyHeight }] },
150
106
  React.createElement(View, { style: style.sliderContainer },
151
107
  React.createElement(ProductVariantSlider, { producVariantMedia: media })),
@@ -4,6 +4,7 @@ type CustomerDecissionBannerStatus = Exclude<CheckoutItemStatus, CheckoutItemSta
4
4
  interface CustomerDecissionBannerProps {
5
5
  readonly checkoutItemStatus: CustomerDecissionBannerStatus;
6
6
  readonly onPress: () => void;
7
+ readonly changingDecission: boolean;
7
8
  }
8
9
  declare const CustomerDecissionBanner: FC<CustomerDecissionBannerProps>;
9
10
  export type { CustomerDecissionBannerStatus };
@@ -1,21 +1,27 @@
1
1
  import { Text } from "@lookiero/aurora-next/build/components/primitives/Text/Text";
2
2
  import { useI18nMessage } from "@lookiero/i18n-react";
3
3
  import React from "react";
4
- import { Pressable } from "react-native";
4
+ import { Pressable, View } from "react-native";
5
5
  import { CheckoutItemStatus } from "../../../../../../domain/checkoutItem/model/checkoutItem";
6
+ import { Spinner } from "../../../../../../shared/ui/components/atoms/spinner/Spinner";
6
7
  import { Banner } from "../../../../components/layouts/banner/Banner";
7
8
  import { I18nMessages } from "../../../../i18n/i18n";
9
+ import { theme } from "../../../../theme/theme";
8
10
  import { style } from "./CustomerDecissionBanner.style";
11
+ const { colorContent } = theme();
9
12
  const i18nMessageForCheckoutItemStatus = {
10
13
  [CheckoutItemStatus.KEPT]: I18nMessages.ITEM_BANNER_CUSTOMER_KEPT_DECISSION,
11
14
  [CheckoutItemStatus.REPLACED]: I18nMessages.ITEM_BANNER_CUSTOMER_REPLACED_DECISSION,
12
15
  [CheckoutItemStatus.RETURNED]: I18nMessages.ITEM_BANNER_CUSTOMER_RETURNED_DECISSION,
13
16
  };
14
- const CustomerDecissionBanner = ({ checkoutItemStatus, onPress }) => {
17
+ const CustomerDecissionBanner = ({ checkoutItemStatus, onPress, changingDecission, }) => {
15
18
  const decissionText = useI18nMessage({ id: i18nMessageForCheckoutItemStatus[checkoutItemStatus] }) || "";
16
19
  const bannerButtonText = useI18nMessage({ id: I18nMessages.ITEM_BANNER_BUTTON });
17
20
  return (React.createElement(Banner, { text: decissionText },
18
- React.createElement(Pressable, { style: style.button, onPress: onPress },
19
- React.createElement(Text, { level: 2, style: style.buttonText, detail: true }, bannerButtonText))));
21
+ React.createElement(View, { style: style.actions },
22
+ React.createElement(View, { style: style.placeholder }),
23
+ React.createElement(Pressable, { onPress: changingDecission ? undefined : onPress },
24
+ React.createElement(Text, { level: 2, style: style.buttonText, detail: true }, bannerButtonText)),
25
+ React.createElement(View, { style: style.placeholder }, changingDecission && React.createElement(Spinner, { color: colorContent, size: 20 })))));
20
26
  };
21
27
  export { CustomerDecissionBanner };
@@ -1,9 +1,16 @@
1
1
  declare const style: {
2
- button: {
2
+ actions: {
3
+ flexDirection: "row";
4
+ justifyContent: "space-between";
3
5
  marginTop: number;
6
+ minHeight: number;
7
+ width: string;
4
8
  };
5
9
  buttonText: {
6
10
  textDecorationLine: "underline";
7
11
  };
12
+ placeholder: {
13
+ width: number;
14
+ };
8
15
  };
9
16
  export { style };
@@ -2,11 +2,18 @@ import { StyleSheet } from "react-native";
2
2
  import { theme } from "../../../../theme/theme";
3
3
  const { spaceM } = theme();
4
4
  const style = StyleSheet.create({
5
- button: {
5
+ actions: {
6
+ flexDirection: "row",
7
+ justifyContent: "space-between",
6
8
  marginTop: spaceM,
9
+ minHeight: 20,
10
+ width: "100%",
7
11
  },
8
12
  buttonText: {
9
13
  textDecorationLine: "underline",
10
14
  },
15
+ placeholder: {
16
+ width: 20,
17
+ },
11
18
  });
12
19
  export { style };
@@ -0,0 +1,10 @@
1
+ import { SizeProjection } from "../shared/size";
2
+ interface ProductVariantProjection {
3
+ readonly id: string;
4
+ readonly size: SizeProjection;
5
+ }
6
+ interface BookedSizeChangeProductsVariantsProjection {
7
+ readonly bookingId: string;
8
+ readonly productVariants: ProductVariantProjection[];
9
+ }
10
+ export type { BookedSizeChangeProductsVariantsProjection, ProductVariantProjection };
@@ -0,0 +1,25 @@
1
+ import { CancelableQueryViewArgs, Query, QueryHandlerFunction, QueryHandlerFunctionArgs } from "@lookiero/messaging";
2
+ import { BookedSizeChangeProductsVariantsProjection } from "./bookedSizeChangeProductsVariants";
3
+ declare const VIEW_BOOKED_SIZE_CHANGE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM = "view_booked_size_change_product_variants_for_checkout_item";
4
+ interface ViewBookedSizeChangeProductsVariantsForCheckoutItemPayload {
5
+ readonly checkoutItemId: string;
6
+ }
7
+ interface ViewBookedSizeChangeProductsVariantsForCheckoutItem extends Query<typeof VIEW_BOOKED_SIZE_CHANGE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM>, ViewBookedSizeChangeProductsVariantsForCheckoutItemPayload {
8
+ }
9
+ interface ViewBookedSizeChangeProductsVariantsForCheckoutItemFunction {
10
+ (payload: ViewBookedSizeChangeProductsVariantsForCheckoutItemPayload): ViewBookedSizeChangeProductsVariantsForCheckoutItem;
11
+ }
12
+ declare const viewBookedSizeChangeProductsVariantsForCheckoutItem: ViewBookedSizeChangeProductsVariantsForCheckoutItemFunction;
13
+ type ViewBookedSizeChangeProductsVariantsForCheckoutItemResult = BookedSizeChangeProductsVariantsProjection | null;
14
+ interface BookedSizeChangeProductsVariantsForCheckoutItemViewArgs extends CancelableQueryViewArgs {
15
+ readonly checkoutItemId: string;
16
+ }
17
+ interface BookedSizeChangeProductsVariantsForCheckoutItemView {
18
+ (args: BookedSizeChangeProductsVariantsForCheckoutItemViewArgs): Promise<ViewBookedSizeChangeProductsVariantsForCheckoutItemResult>;
19
+ }
20
+ interface ViewBookedSizeChangeProductsVariantsForCheckoutItemHandlerFunctionArgs extends QueryHandlerFunctionArgs {
21
+ readonly view: BookedSizeChangeProductsVariantsForCheckoutItemView;
22
+ }
23
+ declare const viewBookedSizeChangeProductsVariantsForCheckoutItemHandler: QueryHandlerFunction<ViewBookedSizeChangeProductsVariantsForCheckoutItem, ViewBookedSizeChangeProductsVariantsForCheckoutItemResult, ViewBookedSizeChangeProductsVariantsForCheckoutItemHandlerFunctionArgs>;
24
+ export type { ViewBookedSizeChangeProductsVariantsForCheckoutItem, BookedSizeChangeProductsVariantsForCheckoutItemView, ViewBookedSizeChangeProductsVariantsForCheckoutItemResult, };
25
+ export { VIEW_BOOKED_SIZE_CHANGE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM, viewBookedSizeChangeProductsVariantsForCheckoutItem, viewBookedSizeChangeProductsVariantsForCheckoutItemHandler, };
@@ -0,0 +1,8 @@
1
+ import { query, } from "@lookiero/messaging";
2
+ const VIEW_BOOKED_SIZE_CHANGE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM = "view_booked_size_change_product_variants_for_checkout_item";
3
+ const viewBookedSizeChangeProductsVariantsForCheckoutItem = (payload) => ({
4
+ ...query({ name: VIEW_BOOKED_SIZE_CHANGE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM }),
5
+ ...payload,
6
+ });
7
+ const viewBookedSizeChangeProductsVariantsForCheckoutItemHandler = ({ view, signal }) => async ({ checkoutItemId }) => view({ checkoutItemId, signal });
8
+ export { VIEW_BOOKED_SIZE_CHANGE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM, viewBookedSizeChangeProductsVariantsForCheckoutItem, viewBookedSizeChangeProductsVariantsForCheckoutItemHandler, };
@@ -0,0 +1,25 @@
1
+ import { CancelableQueryViewArgs, Query, QueryHandlerFunction, QueryHandlerFunctionArgs } from "@lookiero/messaging";
2
+ import { CheckoutFeedbackProjection } from "./checkoutFeedback";
3
+ declare const VIEW_CHECKOUT_FEEDBACK_BY_CHECKOUT_ID = "view_checkout_feedback_by_checkout_id";
4
+ interface ViewCheckoutFeedbackByCheckoutIdPayload {
5
+ readonly checkoutId: string;
6
+ }
7
+ interface ViewCheckoutFeedbackByCheckoutId extends Query<typeof VIEW_CHECKOUT_FEEDBACK_BY_CHECKOUT_ID>, ViewCheckoutFeedbackByCheckoutIdPayload {
8
+ }
9
+ interface ViewCheckoutFeedbackByCheckoutIdFunction {
10
+ (payload: ViewCheckoutFeedbackByCheckoutIdPayload): ViewCheckoutFeedbackByCheckoutId;
11
+ }
12
+ declare const viewCheckoutFeedbackByCheckoutId: ViewCheckoutFeedbackByCheckoutIdFunction;
13
+ type ViewCheckoutFeedbackByCheckoutIdResult = CheckoutFeedbackProjection | null;
14
+ interface CheckoutFeedbackByCheckoutIdViewArgs extends CancelableQueryViewArgs {
15
+ readonly checkoutId: string;
16
+ }
17
+ interface CheckoutFeedbackByCheckoutIdView {
18
+ (args: CheckoutFeedbackByCheckoutIdViewArgs): Promise<ViewCheckoutFeedbackByCheckoutIdResult>;
19
+ }
20
+ interface ViewCheckoutFeedbackByCheckoutIdHandlerFunctionArgs extends QueryHandlerFunctionArgs {
21
+ readonly view: CheckoutFeedbackByCheckoutIdView;
22
+ }
23
+ declare const viewCheckoutFeedbackByCheckoutIdHandler: QueryHandlerFunction<ViewCheckoutFeedbackByCheckoutId, ViewCheckoutFeedbackByCheckoutIdResult, ViewCheckoutFeedbackByCheckoutIdHandlerFunctionArgs>;
24
+ export type { ViewCheckoutFeedbackByCheckoutId, CheckoutFeedbackByCheckoutIdView, ViewCheckoutFeedbackByCheckoutIdResult, };
25
+ export { VIEW_CHECKOUT_FEEDBACK_BY_CHECKOUT_ID, viewCheckoutFeedbackByCheckoutId, viewCheckoutFeedbackByCheckoutIdHandler, };
@@ -0,0 +1,8 @@
1
+ import { query, } from "@lookiero/messaging";
2
+ const VIEW_CHECKOUT_FEEDBACK_BY_CHECKOUT_ID = "view_checkout_feedback_by_checkout_id";
3
+ const viewCheckoutFeedbackByCheckoutId = (payload) => ({
4
+ ...query({ name: VIEW_CHECKOUT_FEEDBACK_BY_CHECKOUT_ID }),
5
+ ...payload,
6
+ });
7
+ const viewCheckoutFeedbackByCheckoutIdHandler = ({ view, signal }) => async ({ checkoutId }) => view({ checkoutId, signal });
8
+ export { VIEW_CHECKOUT_FEEDBACK_BY_CHECKOUT_ID, viewCheckoutFeedbackByCheckoutId, viewCheckoutFeedbackByCheckoutIdHandler, };
@@ -1,13 +1,13 @@
1
1
  declare enum Country {
2
- "ES" = "ES",
3
- "FR" = "FR",
4
- "GB" = "GB",
5
- "BE" = "BE",
6
- "LU" = "LU",
7
- "IT" = "IT",
8
- "PT" = "PT",
9
- "DE" = "DE",
10
- "AT" = "AT",
11
- "NL" = "NL"
2
+ ES = "ES",
3
+ FR = "FR",
4
+ GB = "GB",
5
+ BE = "BE",
6
+ LU = "LU",
7
+ IT = "IT",
8
+ PT = "PT",
9
+ DE = "DE",
10
+ AT = "AT",
11
+ NL = "NL"
12
12
  }
13
13
  export { Country };
@@ -0,0 +1,11 @@
1
+ declare enum Locale {
2
+ ES = "es",
3
+ FR = "fr",
4
+ EN = "en",
5
+ IT = "it",
6
+ PT = "pt",
7
+ DE = "de",
8
+ AT = "at",
9
+ NL = "nl"
10
+ }
11
+ export { Locale };
@@ -0,0 +1,12 @@
1
+ var Locale;
2
+ (function (Locale) {
3
+ Locale["ES"] = "es";
4
+ Locale["FR"] = "fr";
5
+ Locale["EN"] = "en";
6
+ Locale["IT"] = "it";
7
+ Locale["PT"] = "pt";
8
+ Locale["DE"] = "de";
9
+ Locale["AT"] = "at";
10
+ Locale["NL"] = "nl";
11
+ })(Locale || (Locale = {}));
12
+ export { Locale };
@@ -0,0 +1,3 @@
1
+ import { Location } from "./types";
2
+ declare const stripFirstSlugFromLocation: (locationArg: string | Location) => Location;
3
+ export { stripFirstSlugFromLocation };
@@ -0,0 +1,5 @@
1
+ // Remove the location's first path ("/checkout"). Otherwise it won't match the proper route.
2
+ const stripFirstSlugFromLocation = (locationArg) => ({
3
+ pathname: (typeof locationArg === "string" ? locationArg : locationArg?.pathname || "").replace(/^\/\w+/, ""),
4
+ });
5
+ export { stripFirstSlugFromLocation };
@@ -0,0 +1,3 @@
1
+ import { matchRoutes as reactRouterMatchRoutes } from "@remix-run/router";
2
+ declare const matchRoutes: typeof reactRouterMatchRoutes;
3
+ export { matchRoutes };
@@ -0,0 +1,7 @@
1
+ import { matchRoutes as reactRouterMatchRoutes } from "@remix-run/router";
2
+ const matchRoutes = (routes, locationArg) => {
3
+ // Remove the location's first path ("/checkout"). Otherwise it won't match the proper route.
4
+ const location = (typeof locationArg === "string" ? locationArg : locationArg?.pathname || "").replace(/^\/\w+/, "");
5
+ return reactRouterMatchRoutes(routes, location);
6
+ };
7
+ export { matchRoutes };
@@ -0,0 +1,29 @@
1
+ import { RoutingInstrumentation } from "@sentry/react-native";
2
+ import { OnConfirmRoute, TransactionCreator } from "@sentry/react-native/dist/js/tracing/routingInstrumentation";
3
+ import { BeforeNavigate } from "@sentry/react-native/dist/js/tracing/types";
4
+ import { MatchRoutes, UseEffect, UseLocation, WrapUseRoutes } from "../types";
5
+ /**
6
+ * This instrumentation has been built taking as an example the actual
7
+ * ReactNavigationV4Instrumentation implementation as suggested in the documentation.
8
+ *
9
+ * (https://docs.sentry.io/platforms/react-native/performance/instrumentation/automatic-instrumentation/#custom-instrumentation)
10
+ * (https://github.com/getsentry/sentry-react-native/blob/211ec081b6bf8d7d29541afe9d800040f61e3c4e/src/js/tracing/reactnavigationv4.ts)
11
+ */
12
+ declare class ReactRouterV6Instrumentation extends RoutingInstrumentation {
13
+ static instrumentationName: string;
14
+ private useEffect;
15
+ private useLocation;
16
+ private matchRoutes;
17
+ private prevRoute?;
18
+ private recentRouteKeys;
19
+ private latestTransaction?;
20
+ private readonly maxRecentRouteLen;
21
+ constructor(useEffect: UseEffect, useLocation: UseLocation, matchRoutes: MatchRoutes);
22
+ registerRoutingInstrumentation(listener: TransactionCreator, beforeNavigate: BeforeNavigate, onConfirmRoute: OnConfirmRoute): void;
23
+ private onRouteChange;
24
+ private currentRouteFromLocation;
25
+ private pushRecentRouteKey;
26
+ private onBeforeNavigateNotSampled;
27
+ wrapUseRoutes: WrapUseRoutes;
28
+ }
29
+ export { ReactRouterV6Instrumentation };