@lookiero/checkout 8.14.0-beta.101 → 8.14.0-beta.2
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.
- package/dist/src/infrastructure/ui/Root.d.ts +2 -0
- package/dist/src/infrastructure/ui/Root.js +2 -2
- package/dist/src/infrastructure/ui/components/organisms/returnQuestions/ReturnQuestion.d.ts +5 -0
- package/dist/src/infrastructure/ui/components/organisms/returnQuestions/ReturnQuestion.js +3 -3
- package/dist/src/infrastructure/ui/components/organisms/returnQuestions/ReturnQuestions.d.ts +5 -0
- package/dist/src/infrastructure/ui/components/organisms/returnQuestions/ReturnQuestions.js +1 -1
- package/dist/src/infrastructure/ui/components/organisms/returnQuestions/components/ReturnQuestionItem.d.ts +5 -0
- package/dist/src/infrastructure/ui/components/organisms/returnQuestions/components/hostSelectReturnQuestionItem/HostSelectReturnQuestionItem.js +2 -2
- package/dist/src/infrastructure/ui/components/organisms/returnQuestions/components/hostSelectReturnQuestionItem/HostSelectReturnQuestionItem.style.d.ts +1 -1
- package/dist/src/infrastructure/ui/components/organisms/returnQuestions/components/hostSelectReturnQuestionItem/HostSelectReturnQuestionItem.style.js +1 -1
- package/dist/src/infrastructure/ui/components/organisms/returnQuestions/components/hostStackReturnQuestionItem/form/HostStackReturnQuestionItem.js +1 -1
- package/dist/src/infrastructure/ui/components/organisms/returnQuestions/components/hostStackReturnQuestionItem/modal/HostStackReturnQuestionItem.js +2 -2
- package/dist/src/infrastructure/ui/components/organisms/returnQuestions/components/modalOptionReturnQuestionItems/ModalOptionReturnQuestionItems.d.ts +3 -1
- package/dist/src/infrastructure/ui/components/organisms/returnQuestions/components/modalOptionReturnQuestionItems/ModalOptionReturnQuestionItems.js +3 -3
- package/dist/src/infrastructure/ui/components/organisms/returnQuestions/components/radioReturnQuestionItem/RadioReturnQuestionItem.js +4 -4
- package/dist/src/infrastructure/ui/routing/Routing.d.ts +7 -0
- package/dist/src/infrastructure/ui/routing/Routing.js +5 -5
- package/dist/src/infrastructure/ui/views/App.d.ts +8 -0
- package/dist/src/infrastructure/ui/views/App.js +8 -6
- package/dist/src/infrastructure/ui/views/item/Item.d.ts +5 -0
- package/dist/src/infrastructure/ui/views/item/Item.js +3 -3
- package/dist/src/infrastructure/ui/views/item/components/getOutOfCheckoutModal/GetOutOfCheckoutModal.d.ts +2 -0
- package/dist/src/infrastructure/ui/views/item/components/getOutOfCheckoutModal/GetOutOfCheckoutModal.js +2 -2
- package/dist/src/infrastructure/ui/views/item/components/getOutOfCheckoutModal/GetOutOfCheckoutModal.style.d.ts +1 -1
- package/dist/src/infrastructure/ui/views/item/components/getOutOfCheckoutModal/GetOutOfCheckoutModal.style.js +1 -1
- package/dist/src/infrastructure/ui/views/item/components/itemActions/ItemActions.d.ts +5 -1
- package/dist/src/infrastructure/ui/views/item/components/itemActions/ItemActions.js +2 -2
- package/dist/src/infrastructure/ui/views/item/components/returnQuestionsFeedback/ReturnQuestionsFeedback.d.ts +5 -0
- package/dist/src/infrastructure/ui/views/item/components/returnQuestionsFeedback/ReturnQuestionsFeedback.js +2 -2
- package/dist/src/infrastructure/ui/views/item/components/selectModal/SelectModal.d.ts +3 -3
- package/dist/src/infrastructure/ui/views/item/components/selectModal/SelectModal.js +2 -2
- package/dist/src/infrastructure/ui/views/item/components/selectModal/SelectModal.style.d.ts +1 -1
- package/dist/src/infrastructure/ui/views/item/components/selectModal/SelectModal.style.js +1 -1
- package/dist/src/infrastructure/ui/views/item/components/sizeWithoutStockModal/SizeWithoutStockModal.d.ts +2 -0
- package/dist/src/infrastructure/ui/views/item/components/sizeWithoutStockModal/SizeWithoutStockModal.js +2 -2
- package/dist/src/infrastructure/ui/views/item/views/itemWithCustomerDecission/ItemWithCustomerDecission.d.ts +5 -0
- package/dist/src/infrastructure/ui/views/item/views/itemWithCustomerDecission/ItemWithCustomerDecission.js +2 -2
- package/dist/src/infrastructure/ui/views/item/views/itemWithoutCustomerDecission/ItemWithoutCustomerDecission.d.ts +5 -0
- package/dist/src/infrastructure/ui/views/item/views/itemWithoutCustomerDecission/ItemWithoutCustomerDecission.js +2 -2
- package/dist/src/infrastructure/ui/views/return/Return.d.ts +5 -0
- package/dist/src/infrastructure/ui/views/return/Return.js +2 -2
- package/dist/src/infrastructure/ui/views/return/components/returnQuestionsForm/ReturnQuestionsForm.d.ts +5 -0
- package/dist/src/infrastructure/ui/views/return/components/returnQuestionsForm/ReturnQuestionsForm.js +12 -14
- package/dist/src/infrastructure/ui/views/return/components/returnQuestionsForm/ReturnQuestionsForm.style.d.ts +2 -6
- package/dist/src/infrastructure/ui/views/return/components/returnQuestionsForm/ReturnQuestionsForm.style.js +2 -6
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/package.json +4 -3
- package/pact.config.ts +31 -0
- package/pact.publish.js +32 -0
- package/src/infrastructure/projection/bookedProductsVariants/httpBookedProductsVariantsForCheckoutItemView.pact.ts +62 -0
- package/src/infrastructure/projection/checkout/httpCheckoutByIdView.pact.ts +128 -0
- package/src/infrastructure/projection/checkout/httpFirstAvailableCheckoutByCustomerIdView.pact.ts +63 -0
- package/src/infrastructure/projection/checkout/httpFiveItemsDiscountByCustomerIdView.pact.ts +57 -0
- package/src/infrastructure/projection/checkout/httpIsCheckoutEnabledByCustomerIdView.pact.ts +57 -0
- package/src/infrastructure/projection/checkout/httpIsSizeChangeEnabledByCheckoutIdView.pact.ts +57 -0
- package/src/infrastructure/projection/checkoutBooking/httpCheckoutBookingByIdView.pact.ts +63 -0
- package/src/infrastructure/projection/checkoutItem/httpCheckoutItemByIdView.pact.ts +64 -0
- package/src/infrastructure/projection/checkoutQuestion/httpCheckoutQuestionsByCheckoutIdView.pact.ts +62 -0
- package/src/infrastructure/projection/payment/httpPaymentFlowPayloadByCheckoutIdView.pact.ts +136 -0
- package/src/infrastructure/projection/pricing/httpPricingByCheckoutIdView.pact.ts +62 -0
- package/src/infrastructure/projection/returnQuestion/httpReturnQuestionsByCheckoutItemIdView.pact.ts +62 -0
- package/src/infrastructure/ui/Root.tsx +4 -1
- package/src/infrastructure/ui/components/organisms/returnQuestions/ReturnQuestion.tsx +14 -1
- package/src/infrastructure/ui/components/organisms/returnQuestions/ReturnQuestions.tsx +8 -1
- package/src/infrastructure/ui/components/organisms/returnQuestions/components/ReturnQuestionItem.ts +6 -0
- package/src/infrastructure/ui/components/organisms/returnQuestions/components/hostSelectReturnQuestionItem/HostSelectReturnQuestionItem.style.ts +1 -1
- package/src/infrastructure/ui/components/organisms/returnQuestions/components/hostSelectReturnQuestionItem/HostSelectReturnQuestionItem.tsx +2 -1
- package/src/infrastructure/ui/components/organisms/returnQuestions/components/hostStackReturnQuestionItem/form/HostStackReturnQuestionItem.tsx +2 -0
- package/src/infrastructure/ui/components/organisms/returnQuestions/components/hostStackReturnQuestionItem/modal/HostStackReturnQuestionItem.tsx +2 -0
- package/src/infrastructure/ui/components/organisms/returnQuestions/components/modalOptionReturnQuestionItems/ModalOptionReturnQuestionItems.tsx +5 -2
- package/src/infrastructure/ui/components/organisms/returnQuestions/components/radioReturnQuestionItem/RadioReturnQuestionItem.tsx +3 -2
- package/src/infrastructure/ui/routing/Routing.tsx +13 -5
- package/src/infrastructure/ui/views/App.style.ts +9 -0
- package/src/infrastructure/ui/views/App.tsx +21 -11
- package/src/infrastructure/ui/views/item/Item.tsx +8 -2
- package/src/infrastructure/ui/views/item/components/getOutOfCheckoutModal/GetOutOfCheckoutModal.style.ts +1 -1
- package/src/infrastructure/ui/views/item/components/getOutOfCheckoutModal/GetOutOfCheckoutModal.tsx +9 -3
- package/src/infrastructure/ui/views/item/components/itemActions/ItemActions.tsx +8 -1
- package/src/infrastructure/ui/views/item/components/returnQuestionsFeedback/ReturnQuestionsFeedback.tsx +12 -3
- package/src/infrastructure/ui/views/item/components/selectModal/SelectModal.style.ts +1 -1
- package/src/infrastructure/ui/views/item/components/selectModal/SelectModal.tsx +6 -6
- package/src/infrastructure/ui/views/item/components/sizeWithoutStockModal/SizeWithoutStockModal.tsx +4 -3
- package/src/infrastructure/ui/views/item/views/itemWithCustomerDecission/ItemWithCustomerDecission.tsx +12 -2
- package/src/infrastructure/ui/views/item/views/itemWithoutCustomerDecission/ItemWithoutCustomerDecission.tsx +14 -4
- package/src/infrastructure/ui/views/return/Return.tsx +8 -1
- package/src/infrastructure/ui/views/return/components/returnQuestionsForm/ReturnQuestionsForm.style.ts +2 -6
- package/src/infrastructure/ui/views/return/components/returnQuestionsForm/ReturnQuestionsForm.tsx +33 -38
|
@@ -9,6 +9,7 @@ import { Customer } from "../../projection/customer/customer";
|
|
|
9
9
|
import { Order } from "../../projection/order/order";
|
|
10
10
|
import { Subscription } from "../../projection/subscription/subscription";
|
|
11
11
|
import { KameleoonEnvironment } from "../ab-testing/kameleoonEnvironment";
|
|
12
|
+
import { RoutingStyle } from "./routing/Routing";
|
|
12
13
|
interface RootFunctionArgs {
|
|
13
14
|
readonly Messaging: MessagingRoot;
|
|
14
15
|
readonly I18n: I18n;
|
|
@@ -27,6 +28,7 @@ interface RootProps {
|
|
|
27
28
|
readonly order: Order | undefined;
|
|
28
29
|
readonly subscription: Subscription | undefined;
|
|
29
30
|
readonly layout: Layout;
|
|
31
|
+
readonly style?: Partial<RoutingStyle>;
|
|
30
32
|
readonly onNotAccessible: () => void;
|
|
31
33
|
readonly onCheckoutSubmitted?: () => void;
|
|
32
34
|
readonly useRedirect: () => Record<string, string>;
|
|
@@ -9,10 +9,10 @@ const root = ({ Messaging, I18n, getAuthToken, development, sentry, kameleoon: k
|
|
|
9
9
|
const logger = sentryLogger(sentry);
|
|
10
10
|
const kameleoon = kameleoonConfig();
|
|
11
11
|
// eslint-disable-next-line react/display-name, react/prop-types
|
|
12
|
-
const Root = ({ basePath, locale = Locale.en_GB, customer, order, subscription, layout, onNotAccessible, onCheckoutSubmitted, useRedirect, useRoutes = reactRouterUseRoutes, }) => {
|
|
12
|
+
const Root = ({ basePath, locale = Locale.en_GB, customer, order, subscription, layout, style: customStyle, onNotAccessible, onCheckoutSubmitted, useRedirect, useRoutes = reactRouterUseRoutes, }) => {
|
|
13
13
|
const handleOnI18nError = useCallback((error) => logger.captureException(error), []);
|
|
14
14
|
return (React.createElement(Messaging, { includeReactQueryDevTools: Platform.OS === "web" },
|
|
15
|
-
React.createElement(Routing, { I18n: I18n, basePath: basePath, customer: customer, getAuthToken: getAuthToken, kameleoon: kameleoon, layout: layout, locale: locale, order: order, subscription: subscription, useRedirect: useRedirect, useRoutes: useRoutes, onCheckoutSubmitted: onCheckoutSubmitted, onI18nError: development ? undefined : handleOnI18nError, onNotAccessible: onNotAccessible })));
|
|
15
|
+
React.createElement(Routing, { I18n: I18n, basePath: basePath, customer: customer, getAuthToken: getAuthToken, kameleoon: kameleoon, layout: layout, locale: locale, order: order, style: customStyle, subscription: subscription, useRedirect: useRedirect, useRoutes: useRoutes, onCheckoutSubmitted: onCheckoutSubmitted, onI18nError: development ? undefined : handleOnI18nError, onNotAccessible: onNotAccessible })));
|
|
16
16
|
};
|
|
17
17
|
const hoc = sentryLoggerHOC({ logger });
|
|
18
18
|
/**
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { StyleProp, ViewStyle } from "react-native";
|
|
2
3
|
import { ReturnQuestionProjection } from "../../../../../projection/returnQuestion/returnQuestion";
|
|
4
|
+
interface ReturnQuestionStyle {
|
|
5
|
+
readonly modal: StyleProp<ViewStyle>;
|
|
6
|
+
}
|
|
3
7
|
interface ReturnQuestionProps {
|
|
4
8
|
readonly returnQuestionParent: ReturnQuestionProjection;
|
|
5
9
|
readonly returnQuestion: ReturnQuestionProjection;
|
|
6
10
|
readonly portalHostName?: string;
|
|
11
|
+
readonly style?: Partial<ReturnQuestionStyle>;
|
|
7
12
|
}
|
|
8
13
|
declare const _default: React.NamedExoticComponent<ReturnQuestionProps>;
|
|
9
14
|
export default _default;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React, { memo } from "react";
|
|
2
2
|
import { useReturnQuestionItem } from "./behaviors/useReturnQuestionItem";
|
|
3
|
-
const ReturnQuestion = ({ returnQuestionParent, returnQuestion, portalHostName }) => {
|
|
3
|
+
const ReturnQuestion = ({ returnQuestionParent, returnQuestion, portalHostName, style: customStyle, }) => {
|
|
4
4
|
const Item = useReturnQuestionItem({ type: returnQuestion.type });
|
|
5
|
-
return (React.createElement(Item, { portalHostName: portalHostName, returnQuestion: returnQuestion, returnQuestionParent: returnQuestionParent, testID: returnQuestion.id },
|
|
6
|
-
React.createElement(React.Fragment, null, returnQuestion.children?.map((childReturnQuestion) => (React.createElement(ReturnQuestion, { key: childReturnQuestion.id, portalHostName: portalHostName, returnQuestion: childReturnQuestion, returnQuestionParent: returnQuestion }))))));
|
|
5
|
+
return (React.createElement(Item, { portalHostName: portalHostName, returnQuestion: returnQuestion, returnQuestionParent: returnQuestionParent, style: customStyle, testID: returnQuestion.id },
|
|
6
|
+
React.createElement(React.Fragment, null, returnQuestion.children?.map((childReturnQuestion) => (React.createElement(ReturnQuestion, { key: childReturnQuestion.id, portalHostName: portalHostName, returnQuestion: childReturnQuestion, returnQuestionParent: returnQuestion, style: customStyle }))))));
|
|
7
7
|
};
|
|
8
8
|
export default memo(ReturnQuestion);
|
package/dist/src/infrastructure/ui/components/organisms/returnQuestions/ReturnQuestions.d.ts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import { FC } from "react";
|
|
2
|
+
import { StyleProp, ViewStyle } from "react-native";
|
|
2
3
|
import { ReturnQuestionProjection } from "../../../../../projection/returnQuestion/returnQuestion";
|
|
4
|
+
interface ReturnQuestionsStyle {
|
|
5
|
+
readonly modal: StyleProp<ViewStyle>;
|
|
6
|
+
}
|
|
3
7
|
interface ReturnQuestionsProps {
|
|
4
8
|
readonly returnQuestions: ReturnQuestionProjection[];
|
|
5
9
|
readonly portalHostName?: string;
|
|
10
|
+
readonly style?: Partial<ReturnQuestionsStyle>;
|
|
6
11
|
}
|
|
7
12
|
declare const ReturnQuestions: FC<ReturnQuestionsProps>;
|
|
8
13
|
export { ReturnQuestions };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import ReturnQuestion from "./ReturnQuestion";
|
|
3
|
-
const ReturnQuestions = ({ returnQuestions, portalHostName }) => (React.createElement(React.Fragment, null, returnQuestions.map((returnQuestion) => (React.createElement(ReturnQuestion, { key: returnQuestion.id, portalHostName: portalHostName, returnQuestion: returnQuestion, returnQuestionParent: {} })))));
|
|
3
|
+
const ReturnQuestions = ({ returnQuestions, portalHostName, style: customStyle }) => (React.createElement(React.Fragment, null, returnQuestions.map((returnQuestion) => (React.createElement(ReturnQuestion, { key: returnQuestion.id, portalHostName: portalHostName, returnQuestion: returnQuestion, returnQuestionParent: {}, style: customStyle })))));
|
|
4
4
|
export { ReturnQuestions };
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { FC, ReactNode } from "react";
|
|
2
|
+
import { StyleProp, ViewStyle } from "react-native";
|
|
2
3
|
import { ReturnQuestionProjection } from "../../../../../../projection/returnQuestion/returnQuestion";
|
|
4
|
+
interface ReturnQuestionItemStyle {
|
|
5
|
+
readonly modal: StyleProp<ViewStyle>;
|
|
6
|
+
}
|
|
3
7
|
interface ReturnQuestionItemProps {
|
|
4
8
|
readonly returnQuestionParent: ReturnQuestionProjection;
|
|
5
9
|
readonly returnQuestion: ReturnQuestionProjection;
|
|
6
10
|
readonly children?: ReactNode;
|
|
7
11
|
readonly portalHostName?: string;
|
|
8
12
|
readonly testID?: string;
|
|
13
|
+
readonly style?: Partial<ReturnQuestionItemStyle>;
|
|
9
14
|
}
|
|
10
15
|
type ReturnQuestionItem = FC<ReturnQuestionItemProps>;
|
|
11
16
|
export type { ReturnQuestionItem, ReturnQuestionItemProps };
|
|
@@ -7,7 +7,7 @@ import { InputField } from "../../../../../../../shared/ui/components/molecules/
|
|
|
7
7
|
import { useReturnQuestionFeedback, useReturnQuestionFeedbackForReturnQuestion, } from "../../behaviors/useReturnQuestionFeedback";
|
|
8
8
|
import { deepestReturnQuestionWithFeedbackForReturnQuestion, feedbackForReturnQuestion, } from "../../util/returnQuestionFeedback";
|
|
9
9
|
import { style, containerUnderlayColor } from "./HostSelectReturnQuestionItem.style";
|
|
10
|
-
const HostSelectReturnQuestionItem = ({ returnQuestion, children, portalHostName, testID, }) => {
|
|
10
|
+
const HostSelectReturnQuestionItem = ({ returnQuestion, children, portalHostName, testID, style: customStyle, }) => {
|
|
11
11
|
const { formatMessage } = useIntl();
|
|
12
12
|
const placeholderText = useMemo(() => (returnQuestion.placeholder ? formatMessage({ id: returnQuestion.placeholder }) : ""), [formatMessage, returnQuestion.placeholder]);
|
|
13
13
|
const [modalVisible, setModalVisible] = useState(false);
|
|
@@ -35,6 +35,6 @@ const HostSelectReturnQuestionItem = ({ returnQuestion, children, portalHostName
|
|
|
35
35
|
React.createElement(View, { pointerEvents: "none" },
|
|
36
36
|
React.createElement(InputField, { editable: false, icon: "arrow_down", label: placeholderText, value: inputValue }))),
|
|
37
37
|
React.createElement(Modal, { portalHostName: portalHostName, style: deepestReturnQuestionWithFeedback && { header: style.header }, visible: modalVisible, header: deepestReturnQuestionWithFeedback && (React.createElement(ButtonIcon, { name: "arrow_left", style: style.backButton, testID: "modal-back-button", onPress: handleOnBackButtonPress })), scroll: true, showCloseButton: true, onClose: handleOnModalClose },
|
|
38
|
-
React.createElement(View, { style: style.
|
|
38
|
+
React.createElement(View, { style: [style.modal, customStyle?.modal] }, children))));
|
|
39
39
|
};
|
|
40
40
|
export { HostSelectReturnQuestionItem };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import ReturnQuestion from "../../../ReturnQuestion";
|
|
3
|
-
const HostStackReturnQuestionItem = ({ returnQuestion, portalHostName, }) => (React.createElement(React.Fragment, null, returnQuestion.children?.map((childReturnQuestion) => (React.createElement(ReturnQuestion, { key: childReturnQuestion.id, portalHostName: portalHostName, returnQuestion: childReturnQuestion, returnQuestionParent: returnQuestion })))));
|
|
3
|
+
const HostStackReturnQuestionItem = ({ returnQuestion, portalHostName, style: customStyle, }) => (React.createElement(React.Fragment, null, returnQuestion.children?.map((childReturnQuestion) => (React.createElement(ReturnQuestion, { key: childReturnQuestion.id, portalHostName: portalHostName, returnQuestion: childReturnQuestion, returnQuestionParent: returnQuestion, style: customStyle })))));
|
|
4
4
|
export { HostStackReturnQuestionItem };
|
|
@@ -6,7 +6,7 @@ import { useIntl } from "@lookiero/i18n-react";
|
|
|
6
6
|
import ReturnQuestion from "../../../ReturnQuestion";
|
|
7
7
|
import { useReturnQuestionFeedbackForReturnQuestion } from "../../../behaviors/useReturnQuestionFeedback";
|
|
8
8
|
import { style } from "./HostStackReturnQuestionItem.style";
|
|
9
|
-
const HostStackReturnQuestionItem = ({ returnQuestion, children, portalHostName, }) => {
|
|
9
|
+
const HostStackReturnQuestionItem = ({ returnQuestion, children, portalHostName, style: customStyle, }) => {
|
|
10
10
|
const { formatMessage } = useIntl();
|
|
11
11
|
const { feedback } = useReturnQuestionFeedbackForReturnQuestion({ returnQuestion });
|
|
12
12
|
const feedbackReturnQuestion = feedback
|
|
@@ -22,6 +22,6 @@ const HostStackReturnQuestionItem = ({ returnQuestion, children, portalHostName,
|
|
|
22
22
|
titleText && (React.createElement(Text, { level: 3, style: style.title, heading: true }, titleText)),
|
|
23
23
|
feedbackReturnQuestion ? (React.createElement(React.Fragment, null,
|
|
24
24
|
React.createElement(Text, { color: COLOR.TEXT_MEDIUM, level: 3 }, feedbackText),
|
|
25
|
-
feedbackReturnQuestion.children?.map((childReturnQuestion) => (React.createElement(ReturnQuestion, { key: childReturnQuestion.id, portalHostName: portalHostName, returnQuestion: childReturnQuestion, returnQuestionParent: feedbackReturnQuestion }))))) : (children))));
|
|
25
|
+
feedbackReturnQuestion.children?.map((childReturnQuestion) => (React.createElement(ReturnQuestion, { key: childReturnQuestion.id, portalHostName: portalHostName, returnQuestion: childReturnQuestion, returnQuestionParent: feedbackReturnQuestion, style: customStyle }))))) : (children))));
|
|
26
26
|
};
|
|
27
27
|
export { HostStackReturnQuestionItem };
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { StyleProp, ViewStyle } from "react-native";
|
|
2
3
|
import { ReturnQuestionProjection } from "../../../../../../../projection/returnQuestion/returnQuestion";
|
|
3
4
|
interface ModalOptionReturnQuestionItemsProps {
|
|
4
5
|
readonly portalHostName?: string;
|
|
5
6
|
readonly returnQuestion: ReturnQuestionProjection;
|
|
6
7
|
readonly returnQuestionParent: ReturnQuestionProjection;
|
|
7
8
|
readonly visible: boolean;
|
|
9
|
+
readonly style?: StyleProp<ViewStyle>;
|
|
8
10
|
readonly onClose: () => void;
|
|
9
11
|
}
|
|
10
|
-
declare const ModalOptionReturnQuestionItems: ({ portalHostName, returnQuestion, visible, onClose, }: ModalOptionReturnQuestionItemsProps) => React.JSX.Element;
|
|
12
|
+
declare const ModalOptionReturnQuestionItems: ({ portalHostName, returnQuestion, visible, style: customStyle, onClose, }: ModalOptionReturnQuestionItemsProps) => React.JSX.Element;
|
|
11
13
|
export { ModalOptionReturnQuestionItems };
|
|
@@ -5,12 +5,12 @@ import { useIntl } from "@lookiero/i18n-react";
|
|
|
5
5
|
import { Modal } from "@lookiero/sty-psp-ui";
|
|
6
6
|
import ReturnQuestion from "../../ReturnQuestion";
|
|
7
7
|
import { style } from "./ModalOptionReturnQuestionItems.style";
|
|
8
|
-
const ModalOptionReturnQuestionItems = ({ portalHostName, returnQuestion, visible, onClose, }) => {
|
|
8
|
+
const ModalOptionReturnQuestionItems = ({ portalHostName, returnQuestion, visible, style: customStyle, onClose, }) => {
|
|
9
9
|
const { formatMessage } = useIntl();
|
|
10
10
|
const title = formatMessage({ id: returnQuestion.name });
|
|
11
11
|
return (React.createElement(Modal, { portalHostName: portalHostName, visible: visible, scroll: true, showCloseButton: true, onClose: onClose },
|
|
12
|
-
React.createElement(View, { style: style.modalContent },
|
|
12
|
+
React.createElement(View, { style: [style.modalContent, customStyle] },
|
|
13
13
|
React.createElement(Text, { color: COLOR.TEXT_MEDIUM, level: 2, style: style.optionText }, title),
|
|
14
|
-
React.createElement(React.Fragment, null, returnQuestion.children?.map((childReturnQuestion) => (React.createElement(ReturnQuestion, { key: childReturnQuestion.id, portalHostName: "", returnQuestion: childReturnQuestion, returnQuestionParent: returnQuestion })))))));
|
|
14
|
+
React.createElement(React.Fragment, null, returnQuestion.children?.map((childReturnQuestion) => (React.createElement(ReturnQuestion, { key: childReturnQuestion.id, portalHostName: "", returnQuestion: childReturnQuestion, returnQuestionParent: returnQuestion, style: { modal: customStyle } })))))));
|
|
15
15
|
};
|
|
16
16
|
export { ModalOptionReturnQuestionItems };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useState } from "react";
|
|
2
|
-
import { View, Option, OPTION_VARIANT
|
|
2
|
+
import { View, Option, OPTION_VARIANT } from "@lookiero/aurora";
|
|
3
3
|
import { useIntl } from "@lookiero/i18n-react";
|
|
4
4
|
import { useReturnQuestionFeedback, useReturnQuestionFeedbackForReturnQuestion, } from "../../behaviors/useReturnQuestionFeedback";
|
|
5
5
|
import { deepestReturnQuestionWithFeedbackForReturnQuestion, feedbackForReturnQuestion, } from "../../util/returnQuestionFeedback";
|
|
6
6
|
import { ModalOptionReturnQuestionItems } from "../modalOptionReturnQuestionItems/ModalOptionReturnQuestionItems";
|
|
7
7
|
import { style } from "./RadioReturnQuestionItem.style";
|
|
8
|
-
const RadioReturnQuestionItem = ({ returnQuestion, returnQuestionParent, testID, portalHostName, }) => {
|
|
8
|
+
const RadioReturnQuestionItem = ({ returnQuestion, returnQuestionParent, testID, portalHostName, style: customStyle, }) => {
|
|
9
9
|
const intl = useIntl();
|
|
10
10
|
const [modalVisible, setModalVisible] = useState(false);
|
|
11
11
|
const { feedback: feedbackId, onChange, clear, } = useReturnQuestionFeedbackForReturnQuestion({ returnQuestion: returnQuestionParent });
|
|
@@ -43,7 +43,7 @@ const RadioReturnQuestionItem = ({ returnQuestion, returnQuestionParent, testID,
|
|
|
43
43
|
*/
|
|
44
44
|
return (React.createElement(React.Fragment, null,
|
|
45
45
|
React.createElement(View, { style: style.wrapper, testID: testID },
|
|
46
|
-
React.createElement(Option, { checked: returnQuestion.id === feedbackId,
|
|
47
|
-
hasChildren ? (React.createElement(ModalOptionReturnQuestionItems, { portalHostName: portalHostName, returnQuestion: returnQuestion, returnQuestionParent: returnQuestion, visible: modalVisible, onClose: handleOnModalClose })) : null));
|
|
46
|
+
React.createElement(Option, { checked: returnQuestion.id === feedbackId, name: returnQuestion.id, title: inputValue ? `${optionText} / ${inputValue}` : `${optionText}`, value: returnQuestion.id, variant: OPTION_VARIANT.BUTTON, onChange: handleOnPress })),
|
|
47
|
+
hasChildren ? (React.createElement(ModalOptionReturnQuestionItems, { portalHostName: portalHostName, returnQuestion: returnQuestion, returnQuestionParent: returnQuestion, style: customStyle?.modal, visible: modalVisible, onClose: handleOnModalClose })) : null));
|
|
48
48
|
};
|
|
49
49
|
export { RadioReturnQuestionItem };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { StyleProp, ViewStyle } from "react-native";
|
|
2
3
|
import { useRoutes as reactRouterUseRoutes } from "react-router-native";
|
|
3
4
|
import { I18n } from "@lookiero/i18n-react";
|
|
4
5
|
import { Locale } from "@lookiero/sty-psp-locale";
|
|
@@ -7,6 +8,10 @@ import { Customer } from "../../../projection/customer/customer";
|
|
|
7
8
|
import { Order } from "../../../projection/order/order";
|
|
8
9
|
import { Subscription } from "../../../projection/subscription/subscription";
|
|
9
10
|
import { KameleoonEnvironment } from "../../ab-testing/kameleoonEnvironment";
|
|
11
|
+
import { AppStyle } from "../views/App";
|
|
12
|
+
interface RoutingStyle extends AppStyle {
|
|
13
|
+
readonly modal: StyleProp<ViewStyle>;
|
|
14
|
+
}
|
|
10
15
|
interface RoutingProps {
|
|
11
16
|
readonly basePath?: string;
|
|
12
17
|
readonly customer: Customer;
|
|
@@ -16,6 +21,7 @@ interface RoutingProps {
|
|
|
16
21
|
readonly I18n: I18n;
|
|
17
22
|
readonly kameleoon: KameleoonEnvironment;
|
|
18
23
|
readonly layout: Layout;
|
|
24
|
+
readonly style?: Partial<RoutingStyle>;
|
|
19
25
|
readonly getAuthToken: () => Promise<string>;
|
|
20
26
|
readonly onNotAccessible: () => void;
|
|
21
27
|
readonly onCheckoutSubmitted?: () => void;
|
|
@@ -31,3 +37,4 @@ interface RoutingProps {
|
|
|
31
37
|
*/
|
|
32
38
|
declare const MemoizedRouting: React.NamedExoticComponent<RoutingProps>;
|
|
33
39
|
export { MemoizedRouting as Routing };
|
|
40
|
+
export type { RoutingStyle };
|
|
@@ -14,7 +14,7 @@ import { SummaryTabs } from "../views/summaryTabs/SummaryTabs";
|
|
|
14
14
|
import { CheckoutMiddleware } from "./CheckoutMiddleware";
|
|
15
15
|
import { Routes } from "./routes";
|
|
16
16
|
import { BasePathProvider } from "./useBasePath";
|
|
17
|
-
const Routing = ({ basePath = "", customer, order, subscription, locale, I18n, kameleoon, layout, getAuthToken, onI18nError, onNotAccessible, onCheckoutSubmitted, useRedirect, useRoutes = reactRouterUseRoutes, }) => {
|
|
17
|
+
const Routing = ({ basePath = "", customer, order, subscription, locale, I18n, kameleoon, layout, style: customStyle, getAuthToken, onI18nError, onNotAccessible, onCheckoutSubmitted, useRedirect, useRoutes = reactRouterUseRoutes, }) => {
|
|
18
18
|
return useRoutes([
|
|
19
19
|
{
|
|
20
20
|
path: "",
|
|
@@ -23,18 +23,18 @@ const Routing = ({ basePath = "", customer, order, subscription, locale, I18n, k
|
|
|
23
23
|
React.createElement(I18n, { loader: React.createElement(Spinner, null), locale: locale, onError: onI18nError },
|
|
24
24
|
React.createElement(Kameleoon, { loader: React.createElement(Spinner, null), siteCode: kameleoon.siteCode },
|
|
25
25
|
React.createElement(CheckoutMiddleware, { customerId: customer?.customerId, onNotAccessible: onNotAccessible },
|
|
26
|
-
React.createElement(App,
|
|
26
|
+
React.createElement(App, { style: { container: customStyle?.container, notifications: customStyle?.notifications } },
|
|
27
27
|
React.createElement(Outlet, null)))))))),
|
|
28
28
|
children: [
|
|
29
29
|
{
|
|
30
30
|
path: Routes.ITEM,
|
|
31
31
|
element: (React.createElement(Suspense, { fallback: React.createElement(Spinner, null) },
|
|
32
|
-
React.createElement(Item, { layout: layout }))),
|
|
32
|
+
React.createElement(Item, { layout: layout, style: { modal: customStyle?.modal } }))),
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
35
|
path: Routes.ITEM_DETAIL,
|
|
36
36
|
element: (React.createElement(Suspense, { fallback: React.createElement(Spinner, null) },
|
|
37
|
-
React.createElement(Item, { layout: layout }))),
|
|
37
|
+
React.createElement(Item, { layout: layout, style: { modal: customStyle?.modal } }))),
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
40
|
path: Routes.SUMMARY,
|
|
@@ -69,7 +69,7 @@ const Routing = ({ basePath = "", customer, order, subscription, locale, I18n, k
|
|
|
69
69
|
{
|
|
70
70
|
path: Routes.RETURN,
|
|
71
71
|
element: (React.createElement(Suspense, { fallback: React.createElement(Spinner, null) },
|
|
72
|
-
React.createElement(Return, { layout: layout }))),
|
|
72
|
+
React.createElement(Return, { layout: layout, style: { modal: customStyle?.modal } }))),
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
75
|
path: "*",
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { FC } from "react";
|
|
2
|
+
import { StyleProp, ViewStyle } from "react-native";
|
|
3
|
+
import { NotificationsStyle } from "@lookiero/sty-psp-notifications";
|
|
4
|
+
interface AppStyle {
|
|
5
|
+
readonly container: StyleProp<ViewStyle>;
|
|
6
|
+
readonly notifications: Partial<NotificationsStyle>;
|
|
7
|
+
}
|
|
2
8
|
interface AppProps {
|
|
3
9
|
readonly children: JSX.Element;
|
|
10
|
+
readonly style?: Partial<AppStyle>;
|
|
4
11
|
}
|
|
5
12
|
declare const App: FC<AppProps>;
|
|
13
|
+
export type { AppStyle };
|
|
6
14
|
export { App };
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { PortalProvider } from "@gorhom/portal";
|
|
2
2
|
import React from "react";
|
|
3
|
-
import { StatusBar } from "react-native";
|
|
3
|
+
import { StatusBar, View } from "react-native";
|
|
4
4
|
import { SafeAreaProvider } from "react-native-safe-area-context";
|
|
5
5
|
import { PortalProvider as AuroraPortalProvider } from "@lookiero/aurora";
|
|
6
6
|
import { Notifications } from "@lookiero/sty-psp-notifications";
|
|
7
7
|
import { theme } from "@lookiero/sty-psp-ui";
|
|
8
8
|
import { MESSAGING_CONTEXT_ID } from "../../delivery/baseBootstrap";
|
|
9
|
+
import { style } from "./App.style";
|
|
9
10
|
const { colorBgBase } = theme();
|
|
10
|
-
const App = ({ children }) => (React.createElement(
|
|
11
|
-
React.createElement(
|
|
12
|
-
React.createElement(
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
const App = ({ children, style: customStyle }) => (React.createElement(View, { style: [style.container, customStyle?.container] },
|
|
12
|
+
React.createElement(SafeAreaProvider, null,
|
|
13
|
+
React.createElement(PortalProvider, null,
|
|
14
|
+
React.createElement(StatusBar, { backgroundColor: colorBgBase, barStyle: "dark-content", translucent: true }),
|
|
15
|
+
React.createElement(Notifications, { contextId: MESSAGING_CONTEXT_ID, style: customStyle?.notifications }),
|
|
16
|
+
React.createElement(AuroraPortalProvider, null, children)))));
|
|
15
17
|
export { App };
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { FC } from "react";
|
|
2
|
+
import { StyleProp, ViewStyle } from "react-native";
|
|
2
3
|
import { Layout } from "@lookiero/sty-psp-ui";
|
|
4
|
+
interface ItemStyle {
|
|
5
|
+
readonly modal: StyleProp<ViewStyle>;
|
|
6
|
+
}
|
|
3
7
|
interface ItemProps {
|
|
4
8
|
readonly layout: Layout;
|
|
9
|
+
readonly style?: Partial<ItemStyle>;
|
|
5
10
|
}
|
|
6
11
|
declare const Item: FC<ItemProps>;
|
|
7
12
|
export { Item };
|
|
@@ -26,7 +26,7 @@ import { useBasePath } from "../../routing/useBasePath";
|
|
|
26
26
|
import { style } from "./Item.style";
|
|
27
27
|
import { ItemWithCustomerDecission, } from "./views/itemWithCustomerDecission/ItemWithCustomerDecission";
|
|
28
28
|
import { ItemWithoutCustomerDecission, } from "./views/itemWithoutCustomerDecission/ItemWithoutCustomerDecission";
|
|
29
|
-
const Item = ({ layout: Layout }) => {
|
|
29
|
+
const Item = ({ layout: Layout, style: customStyle }) => {
|
|
30
30
|
const logger = useLogger();
|
|
31
31
|
const screenSize = useScreenSize();
|
|
32
32
|
const navigate = useNavigate();
|
|
@@ -141,10 +141,10 @@ const Item = ({ layout: Layout }) => {
|
|
|
141
141
|
return React.createElement(Spinner, { testID: "spinner" });
|
|
142
142
|
}
|
|
143
143
|
return (React.createElement(ReturnQuestionFeedbackProvider, { key: checkoutItem.id, feedback: checkoutItem.feedbacks || {} },
|
|
144
|
-
React.createElement(Layout, {
|
|
144
|
+
React.createElement(Layout, { header: header, scrollEnabled: !itemWithoutCustomerDecission, style: {
|
|
145
145
|
header: fiveItemsDiscount !== 0 ? style.headerWithDoubleHeight : style.header,
|
|
146
146
|
scrollView: { height: itemWithoutCustomerDecission ? "100%" : "auto" },
|
|
147
147
|
safeAreaView: isDesktopScreen ? style.safeAreaView : null,
|
|
148
|
-
} }, itemWithoutCustomerDecission ? (React.createElement(ItemWithoutCustomerDecission, { bookedProductsVariants: bookedProductsVariants, checkoutId: checkout.id, checkoutItem: checkoutItem, currentProductVariant: currentProductVariant, onReturn: goToReturnPage })) : (React.createElement(ItemWithCustomerDecission, { checkoutId: checkout.id, checkoutItem: checkoutItem, currentProductVariant: currentProductVariant, returnQuestions: returnQuestions, onEditFeedback: goToReturnPage })))));
|
|
148
|
+
} }, itemWithoutCustomerDecission ? (React.createElement(ItemWithoutCustomerDecission, { bookedProductsVariants: bookedProductsVariants, checkoutId: checkout.id, checkoutItem: checkoutItem, currentProductVariant: currentProductVariant, style: customStyle, onReturn: goToReturnPage })) : (React.createElement(ItemWithCustomerDecission, { checkoutId: checkout.id, checkoutItem: checkoutItem, currentProductVariant: currentProductVariant, returnQuestions: returnQuestions, onEditFeedback: goToReturnPage })))));
|
|
149
149
|
};
|
|
150
150
|
export { Item };
|
|
@@ -5,13 +5,13 @@ import { useI18nMessage } from "@lookiero/i18n-react";
|
|
|
5
5
|
import { Modal } from "@lookiero/sty-psp-ui";
|
|
6
6
|
import { I18nMessages } from "../../../../i18n/i18n";
|
|
7
7
|
import { style } from "./GetOutOfCheckoutModal.style";
|
|
8
|
-
const GetOutOfCheckoutModal = ({ visible, onDismiss, onConfirm }) => {
|
|
8
|
+
const GetOutOfCheckoutModal = ({ visible, style: customStyle, onDismiss, onConfirm, }) => {
|
|
9
9
|
const titleText = useI18nMessage({ id: I18nMessages.GET_OUT_OF_CHECKOUT_MODAL_TITLE });
|
|
10
10
|
const descriptionText = useI18nMessage({ id: I18nMessages.GET_OUT_OF_CHECKOUT_MODAL_DESCRIPTION });
|
|
11
11
|
const dismissButtonText = useI18nMessage({ id: I18nMessages.GET_OUT_OF_CHECKOUT_MODAL_DISMISS_BUTTON });
|
|
12
12
|
const confirmButtonText = useI18nMessage({ id: I18nMessages.GET_OUT_OF_CHECKOUT_MODAL_CONFIRM_BUTTON });
|
|
13
13
|
return (React.createElement(Modal, { visible: visible, onClose: onDismiss },
|
|
14
|
-
React.createElement(View, { style: style.
|
|
14
|
+
React.createElement(View, { style: [style.modal, customStyle] },
|
|
15
15
|
React.createElement(Text, { align: ALIGN.CENTER, level: 1, style: style.title }, titleText),
|
|
16
16
|
React.createElement(Text, { level: 3, style: style.description }, descriptionText),
|
|
17
17
|
React.createElement(Button, { style: style.button, onPress: onDismiss },
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { FC } from "react";
|
|
2
|
-
import { LayoutRectangle } from "react-native";
|
|
2
|
+
import { LayoutRectangle, StyleProp, ViewStyle } from "react-native";
|
|
3
3
|
import { Country } from "@lookiero/sty-psp-locale";
|
|
4
4
|
import { ProductVariantProjection } from "../../../../../../projection/bookedProductsVariants/bookedProductsVariants";
|
|
5
|
+
interface ItemActionsStyle {
|
|
6
|
+
readonly modal: StyleProp<ViewStyle>;
|
|
7
|
+
}
|
|
5
8
|
interface ItemActionsProps {
|
|
6
9
|
readonly productVariants?: ProductVariantProjection[];
|
|
7
10
|
readonly currentProductVariant: ProductVariantProjection;
|
|
8
11
|
readonly country: Country;
|
|
12
|
+
readonly style?: Partial<ItemActionsStyle>;
|
|
9
13
|
readonly onShowSizeWithoutStockModal?: () => void;
|
|
10
14
|
readonly onKeep: () => void;
|
|
11
15
|
readonly onReturn: () => void;
|
|
@@ -8,7 +8,7 @@ import { Body } from "../../../../components/layouts/body/Body";
|
|
|
8
8
|
import { I18nMessages } from "../../../../i18n/i18n";
|
|
9
9
|
import { SelectModal } from "../selectModal/SelectModal";
|
|
10
10
|
import { style } from "./ItemActions.style";
|
|
11
|
-
const ItemActions = ({ productVariants, currentProductVariant, country, onShowSizeWithoutStockModal = () => void 0, onKeep, onReplace, onReturn, onLayout, }) => {
|
|
11
|
+
const ItemActions = ({ productVariants, currentProductVariant, country, style: customStyle, onShowSizeWithoutStockModal = () => void 0, onKeep, onReplace, onReturn, onLayout, }) => {
|
|
12
12
|
const [modalVisible, setModalVisible] = useState(false);
|
|
13
13
|
const changeSizeButtonText = useI18nMessage({ id: I18nMessages.ITEM_CHANGE_SIZE_BUTTON });
|
|
14
14
|
const keepButtonText = useI18nMessage({ id: I18nMessages.ITEM_KEEP_BUTTON });
|
|
@@ -34,6 +34,6 @@ const ItemActions = ({ productVariants, currentProductVariant, country, onShowSi
|
|
|
34
34
|
!currentProductVariant.size.unique && productVariants ? (React.createElement(Button, { style: style.sizeSelector, testID: "size-selector", variant: BUTTON_VARIANT.SECONDARY, small: true, onPress: handleOnPressSelectField }, changeSizeButtonText)) : null,
|
|
35
35
|
React.createElement(Button, { style: style.returnButton, testID: "return-button", variant: BUTTON_VARIANT.SECONDARY, small: true, onPress: onReturn }, returnButtonText)),
|
|
36
36
|
React.createElement(Button, { testID: "keep-button", small: true, onPress: onKeep }, keepButtonText)),
|
|
37
|
-
React.createElement(SelectModal, { modalVisible: modalVisible, options: sizeSelectorOptions, testID: "select-field-modal", title: changeSizeButtonText, value: currentProductVariant.id, onChange: onReplace, onClose: handleOnModalClose })));
|
|
37
|
+
React.createElement(SelectModal, { modalVisible: modalVisible, options: sizeSelectorOptions, style: { modal: customStyle?.modal }, testID: "select-field-modal", title: changeSizeButtonText, value: currentProductVariant.id, onChange: onReplace, onClose: handleOnModalClose })));
|
|
38
38
|
};
|
|
39
39
|
export { ItemActions };
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { FC } from "react";
|
|
2
|
+
import { StyleProp, ViewStyle } from "react-native";
|
|
2
3
|
import { ReturnQuestionProjection } from "../../../../../../projection/returnQuestion/returnQuestion";
|
|
4
|
+
interface ReturnQuestionsFeedbackStyle {
|
|
5
|
+
readonly modal: StyleProp<ViewStyle>;
|
|
6
|
+
}
|
|
3
7
|
interface ReturnQuestionsFeedbackProps {
|
|
4
8
|
readonly returnQuestions: ReturnQuestionProjection[];
|
|
9
|
+
readonly style?: Partial<ReturnQuestionsFeedbackStyle>;
|
|
5
10
|
readonly onEditFeedback: () => void;
|
|
6
11
|
}
|
|
7
12
|
declare const ReturnQuestionsFeedback: FC<ReturnQuestionsFeedbackProps>;
|
|
@@ -17,13 +17,13 @@ const returnQuestionItems = {
|
|
|
17
17
|
[ReturnQuestionType.TEXTAREA]: ReturnQuestionFeedbackItem,
|
|
18
18
|
[ReturnQuestionType.OPTION]: ReturnQuestionFeedbackItem,
|
|
19
19
|
};
|
|
20
|
-
const ReturnQuestionsFeedback = ({ returnQuestions, onEditFeedback }) => {
|
|
20
|
+
const ReturnQuestionsFeedback = ({ returnQuestions, style: customStyle, onEditFeedback, }) => {
|
|
21
21
|
const titleText = useI18nMessage({ id: I18nMessages.FEEDBACK_TITLE });
|
|
22
22
|
return (React.createElement(View, null,
|
|
23
23
|
React.createElement(View, { style: style.titleContainer },
|
|
24
24
|
React.createElement(Text, { level: 2 }, titleText),
|
|
25
25
|
React.createElement(ButtonIcon, { name: "pencil", testID: "edit-feedback", onPress: onEditFeedback })),
|
|
26
26
|
React.createElement(ReturnQuestionItemProvider, { returnQuestionItems: returnQuestionItems },
|
|
27
|
-
React.createElement(ReturnQuestions, { returnQuestions: returnQuestions }))));
|
|
27
|
+
React.createElement(ReturnQuestions, { returnQuestions: returnQuestions, style: customStyle }))));
|
|
28
28
|
};
|
|
29
29
|
export { ReturnQuestionsFeedback };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FC } from "react";
|
|
2
2
|
import { StyleProp, TextStyle, ViewStyle } from "react-native";
|
|
3
3
|
interface SelectModalStyle {
|
|
4
|
-
readonly
|
|
4
|
+
readonly modal: StyleProp<ViewStyle>;
|
|
5
5
|
readonly option: StyleProp<ViewStyle>;
|
|
6
6
|
readonly optionText: StyleProp<TextStyle>;
|
|
7
7
|
}
|
|
@@ -14,10 +14,10 @@ interface SelectModalProps {
|
|
|
14
14
|
readonly value: string | undefined;
|
|
15
15
|
readonly options: Option[];
|
|
16
16
|
readonly style?: Partial<SelectModalStyle>;
|
|
17
|
-
readonly onChange?: (value: string) => void;
|
|
18
|
-
readonly onClose?: () => void;
|
|
19
17
|
readonly modalVisible: boolean;
|
|
20
18
|
readonly testID?: string;
|
|
19
|
+
readonly onChange?: (value: string) => void;
|
|
20
|
+
readonly onClose?: () => void;
|
|
21
21
|
}
|
|
22
22
|
declare const SelectModal: FC<SelectModalProps>;
|
|
23
23
|
export type { Option };
|
|
@@ -4,13 +4,13 @@ import { COLOR, Text } from "@lookiero/aurora";
|
|
|
4
4
|
import { Modal, theme } from "@lookiero/sty-psp-ui";
|
|
5
5
|
import { style } from "./SelectModal.style";
|
|
6
6
|
const { colorBgPrimaryLight } = theme();
|
|
7
|
-
const SelectModal = ({ modalVisible, onChange = () => void 0, onClose = () => void 0,
|
|
7
|
+
const SelectModal = ({ modalVisible, options, style: customStyle, testID, title, value, onChange = () => void 0, onClose = () => void 0, }) => {
|
|
8
8
|
const handleOnPressOption = useCallback((value) => {
|
|
9
9
|
onChange(value);
|
|
10
10
|
onClose();
|
|
11
11
|
}, [onClose, onChange]);
|
|
12
12
|
return (React.createElement(Modal, { testID: testID, visible: modalVisible, scroll: true, showCloseButton: true, onClose: onClose },
|
|
13
|
-
React.createElement(View, { style: [style.
|
|
13
|
+
React.createElement(View, { style: [style.modal, customStyle?.modal] },
|
|
14
14
|
title && (React.createElement(Text, { level: 3, style: style.modalTitle, heading: true }, title)),
|
|
15
15
|
options.map(({ label, value: optionValue }) => (React.createElement(TouchableHighlight, { key: optionValue, accessibilityLabel: optionValue, disabled: value === optionValue, style: [style.option, customStyle?.option], testID: optionValue, underlayColor: colorBgPrimaryLight, accessible: true, onPress: value !== optionValue ? () => handleOnPressOption(optionValue) : undefined },
|
|
16
16
|
React.createElement(Text, { color: value === optionValue ? COLOR.TEXT_MEDIUM : COLOR.TEXT, level: 3, style: [style.optionText, customStyle?.optionText] }, label)))))));
|
|
@@ -2,7 +2,7 @@ import { StyleSheet } from "react-native";
|
|
|
2
2
|
import { theme } from "@lookiero/sty-psp-ui";
|
|
3
3
|
const { borderWidth1, colorBorderInteractive, space1, space5, space6 } = theme();
|
|
4
4
|
const style = StyleSheet.create({
|
|
5
|
-
|
|
5
|
+
modal: {
|
|
6
6
|
paddingBottom: space6,
|
|
7
7
|
paddingHorizontal: space6,
|
|
8
8
|
},
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { FC } from "react";
|
|
2
|
+
import { StyleProp, ViewStyle } from "react-native";
|
|
2
3
|
interface SizeWithoutStockModalProps {
|
|
3
4
|
readonly visible: boolean;
|
|
5
|
+
readonly style?: StyleProp<ViewStyle>;
|
|
4
6
|
readonly onDismiss: () => void;
|
|
5
7
|
}
|
|
6
8
|
declare const SizeWithoutStockModal: FC<SizeWithoutStockModalProps>;
|
|
@@ -5,12 +5,12 @@ import { useI18nMessage } from "@lookiero/i18n-react";
|
|
|
5
5
|
import { Modal } from "@lookiero/sty-psp-ui";
|
|
6
6
|
import { I18nMessages } from "../../../../i18n/i18n";
|
|
7
7
|
import { style } from "./SizeWithoutStockModal.style";
|
|
8
|
-
const SizeWithoutStockModal = ({ visible, onDismiss }) => {
|
|
8
|
+
const SizeWithoutStockModal = ({ visible, style: customStyle, onDismiss }) => {
|
|
9
9
|
const titleText = useI18nMessage({ id: I18nMessages.SIZE_WITHOUT_STOCK_MODAL_TITLE });
|
|
10
10
|
const descriptionText = useI18nMessage({ id: I18nMessages.SIZE_WITHOUT_STOCK_MODAL_DESCRIPTION });
|
|
11
11
|
const buttonText = useI18nMessage({ id: I18nMessages.SIZE_WITHOUT_STOCK_MODAL_BUTTON });
|
|
12
12
|
return (React.createElement(Modal, { visible: visible, showCloseButton: true, onClose: onDismiss },
|
|
13
|
-
React.createElement(View, { style: style.modalContent },
|
|
13
|
+
React.createElement(View, { style: [style.modalContent, customStyle] },
|
|
14
14
|
React.createElement(Text, { level: 3, style: style.title, heading: true }, titleText),
|
|
15
15
|
React.createElement(Text, { level: 3, style: style.description }, descriptionText),
|
|
16
16
|
React.createElement(Button, { onPress: onDismiss }, buttonText))));
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { FC } from "react";
|
|
2
|
+
import { StyleProp, ViewStyle } from "react-native";
|
|
2
3
|
import { CheckoutItemStatus } from "../../../../../../domain/checkoutItem/model/checkoutItem";
|
|
3
4
|
import { ProductVariantProjection } from "../../../../../../projection/bookedProductsVariants/bookedProductsVariants";
|
|
4
5
|
import { CheckoutItemProjection } from "../../../../../../projection/checkoutItem/checkoutItem";
|
|
5
6
|
import { ReturnQuestionProjection } from "../../../../../../projection/returnQuestion/returnQuestion";
|
|
7
|
+
interface ItemWithCustomerDecissionStyle {
|
|
8
|
+
readonly modal: StyleProp<ViewStyle>;
|
|
9
|
+
}
|
|
6
10
|
interface CheckoutItemWithCustomerDecission extends CheckoutItemProjection {
|
|
7
11
|
readonly status: Exclude<CheckoutItemStatus, CheckoutItemStatus.INITIAL>;
|
|
8
12
|
}
|
|
@@ -11,6 +15,7 @@ interface ItemWithCustomerDecissionProps {
|
|
|
11
15
|
readonly checkoutItem: CheckoutItemWithCustomerDecission;
|
|
12
16
|
readonly returnQuestions: ReturnQuestionProjection[];
|
|
13
17
|
readonly currentProductVariant: ProductVariantProjection;
|
|
18
|
+
readonly style?: Partial<ItemWithCustomerDecissionStyle>;
|
|
14
19
|
readonly onEditFeedback: () => void;
|
|
15
20
|
}
|
|
16
21
|
declare const ItemWithCustomerDecission: FC<ItemWithCustomerDecissionProps>;
|