@nuskin/routine-feature 2.0.0 → 2.0.1
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/lib/commonjs/RoutineDetails.js +13 -11
- package/lib/commonjs/RoutineDetails.js.map +1 -1
- package/lib/commonjs/index.js +18 -14
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/RoutineDetails.js +13 -11
- package/lib/module/RoutineDetails.js.map +1 -1
- package/lib/module/index.js +18 -14
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/index.d.ts +1 -3
- package/package.json +8 -3
- package/src/RoutineDetails.tsx +127 -110
- package/src/index.tsx +15 -6
|
@@ -8,34 +8,35 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _mobileUi = require("@ns/mobile-ui");
|
|
10
10
|
var _reactNativeLinearGradient = _interopRequireDefault(require("react-native-linear-gradient"));
|
|
11
|
+
var _Accessibility = require("./helpers/Accessibility");
|
|
11
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
12
14
|
function RoutineDetails(props) {
|
|
13
15
|
var _props$route, _item$routine_imageCo, _item$routine_imageCo2, _item$routine_imageCo3;
|
|
14
16
|
const item = (_props$route = props.route) === null || _props$route === void 0 ? void 0 : _props$route.params;
|
|
15
17
|
return /*#__PURE__*/_react.default.createElement(_reactNative.SafeAreaView, {
|
|
16
18
|
style: styles.container,
|
|
17
19
|
testID: "routineStack"
|
|
18
|
-
}, /*#__PURE__*/_react.default.createElement(_mobileUi.VeraHeader, {
|
|
20
|
+
}, /*#__PURE__*/_react.default.createElement(_mobileUi.VeraHeader, _extends({
|
|
19
21
|
left: /*#__PURE__*/_react.default.createElement(_mobileUi.Logo, {
|
|
20
22
|
accessibilityLabel: "logo"
|
|
21
23
|
}),
|
|
22
24
|
right: /*#__PURE__*/_react.default.createElement(_mobileUi.HeaderCart, {
|
|
23
25
|
accessibilityLabel: "crt-btn"
|
|
24
26
|
}),
|
|
25
|
-
title:
|
|
26
|
-
|
|
27
|
-
}), /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
|
|
27
|
+
title: item.reference
|
|
28
|
+
}, (0, _Accessibility.accessibility)(`vera-header`))), /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
|
|
28
29
|
style: styles.routinesContainer
|
|
29
|
-
}, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
30
|
+
}, item && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
30
31
|
style: {
|
|
31
32
|
position: 'relative'
|
|
32
33
|
}
|
|
33
|
-
}, /*#__PURE__*/_react.default.createElement(_reactNative.ImageBackground, {
|
|
34
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.ImageBackground, _extends({}, (0, _Accessibility.accessibility)(`image-routine-background`), {
|
|
34
35
|
source: {
|
|
35
36
|
uri: (_item$routine_imageCo = item.routine_imageConnection) === null || _item$routine_imageCo === void 0 ? void 0 : (_item$routine_imageCo2 = _item$routine_imageCo.edges[0]) === null || _item$routine_imageCo2 === void 0 ? void 0 : (_item$routine_imageCo3 = _item$routine_imageCo2.node) === null || _item$routine_imageCo3 === void 0 ? void 0 : _item$routine_imageCo3.url
|
|
36
37
|
},
|
|
37
38
|
style: styles.itemPhoto
|
|
38
|
-
}, /*#__PURE__*/_react.default.createElement(_reactNativeLinearGradient.default, {
|
|
39
|
+
}), /*#__PURE__*/_react.default.createElement(_reactNativeLinearGradient.default, {
|
|
39
40
|
colors: ['rgba(0, 0, 0, 0)', 'rgba(0, 0, 0, 0.6)'],
|
|
40
41
|
locations: [0.6, 1],
|
|
41
42
|
style: styles.imageOverlay
|
|
@@ -43,7 +44,7 @@ function RoutineDetails(props) {
|
|
|
43
44
|
style: styles.itemTitleContainer
|
|
44
45
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
45
46
|
style: styles.itemTextSpan
|
|
46
|
-
},
|
|
47
|
+
}, item.routine_subtitle), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
47
48
|
style: styles.itemTextTitle
|
|
48
49
|
}, item.routine_title)))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
49
50
|
style: styles.routineDetailsContainer
|
|
@@ -53,13 +54,15 @@ function RoutineDetails(props) {
|
|
|
53
54
|
style: styles.itemTextDescription
|
|
54
55
|
}, item.routines_description), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
55
56
|
style: styles.itemText
|
|
56
|
-
}, item.products_used_label), item.products.map(item => {
|
|
57
|
+
}, item.products_used_label), item.products.map((item, index) => {
|
|
57
58
|
var _item$product_imageCo, _item$product_imageCo2, _item$product_imageCo3;
|
|
58
59
|
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
60
|
+
key: index,
|
|
59
61
|
style: {
|
|
60
62
|
flexDirection: 'row'
|
|
61
63
|
}
|
|
62
64
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
|
|
65
|
+
key: index,
|
|
63
66
|
source: {
|
|
64
67
|
uri: (_item$product_imageCo = item.product_imageConnection) === null || _item$product_imageCo === void 0 ? void 0 : (_item$product_imageCo2 = _item$product_imageCo.edges[0]) === null || _item$product_imageCo2 === void 0 ? void 0 : (_item$product_imageCo3 = _item$product_imageCo2.node) === null || _item$product_imageCo3 === void 0 ? void 0 : _item$product_imageCo3.url
|
|
65
68
|
},
|
|
@@ -98,7 +101,7 @@ function RoutineDetails(props) {
|
|
|
98
101
|
style: styles.stepImagePhoto,
|
|
99
102
|
resizeMode: "contain"
|
|
100
103
|
}), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
101
|
-
style: styles[`${item.style}TextContainer`]
|
|
104
|
+
style: styles[`${item.style ? `${item.style}TextContainer` : 'TextContainer'}`]
|
|
102
105
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
103
106
|
style: styles.itemTextStepDescription
|
|
104
107
|
}, item.step_description), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
@@ -224,7 +227,6 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
224
227
|
height: 40,
|
|
225
228
|
borderRadius: 50,
|
|
226
229
|
borderColor: '#EDEDED',
|
|
227
|
-
borderStyle: 'solid',
|
|
228
230
|
borderWidth: 1
|
|
229
231
|
},
|
|
230
232
|
itemTextStepProduct: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["RoutineDetails","props","item","route","params","styles","container","routinesContainer","position","uri","routine_imageConnection","edges","node","url","itemPhoto","imageOverlay","itemTitleContainer","itemTextSpan","itemTextTitle","routine_title","routineDetailsContainer","routineDetails","itemTextDescription","routines_description","itemText","products_used_label","products","map","flexDirection","product_imageConnection","productPhoto","productName","itemTextProduct","product_category","product_name","steps","index","marginHorizontal","marginBottom","marginVertical","itemTextTitleIndex","itemTextStepTitle","step_title","style","imageConnection","stepImagePhoto","itemTextStepDescription","step_description","itemTextStepSubDescription","step_sub_description","textLumiSpaTreatmentContainer","textLumiSpaTreatment","image_title","stepProductContainer","stepProductPhoto","itemTextStepProduct","image_description","StyleSheet","create","flex","backgroundColor","colors","white","primaryGray","sectionHeader","textTransform","fontWeight","fontSize","marginTop","paddingHorizontal","left","right","top","height","margin","borderRadius","width","minHeight","aspectRatio","Image","ImageTextContainer","padding","LumiSpaIOTextContainer","Container","Product","LumiSpaIO","justifyContent","marginLeft","paddingTop","paddingBottom","paddingVertical","borderColor","borderStyle","borderWidth","lineHeight","bottom","color","accentB400","paddingRight","primaryBlack","letterSpacing","itemTextSteps","textAlign"],"sources":["RoutineDetails.tsx"],"sourcesContent":["import React from 'react';\nimport {\n SafeAreaView,\n View,\n StyleSheet,\n ScrollView,\n Text,\n Image,\n ImageBackground,\n Pressable,\n} from 'react-native';\nimport { VeraHeader, Logo, HeaderCart, colors } from '@ns/mobile-ui';\nimport LinearGradient from 'react-native-linear-gradient';\n\nfunction RoutineDetails(props) {\n const item = props.route?.params;\n return (\n <SafeAreaView style={styles.container} testID=\"routineStack\">\n <VeraHeader\n left={<Logo accessibilityLabel=\"logo\" />}\n right={<HeaderCart accessibilityLabel=\"crt-btn\" />}\n title={'Routine Details'}\n accessibilityLabel=\"header\"\n />\n <ScrollView style={styles.routinesContainer}>\n <>\n <View style={{ position: 'relative' }}>\n <ImageBackground\n source={{\n uri: item.routine_imageConnection?.edges[0]?.node?.url,\n }}\n style={styles.itemPhoto}\n >\n <LinearGradient\n colors={['rgba(0, 0, 0, 0)', 'rgba(0, 0, 0, 0.6)']}\n locations={[0.6, 1]}\n style={styles.imageOverlay}\n />\n <View style={styles.itemTitleContainer}>\n <Text style={styles.itemTextSpan}>Default</Text>\n <Text style={styles.itemTextTitle}>{item.routine_title}</Text>\n </View>\n </ImageBackground>\n </View>\n <View style={styles.routineDetailsContainer}>\n <View style={styles.routineDetails}>\n <Text style={styles.itemTextDescription}>\n {item.routines_description}\n </Text>\n <Text style={styles.itemText}>{item.products_used_label}</Text>\n {item.products.map((item) => {\n return (\n <View style={{ flexDirection: 'row' }}>\n <Image\n source={{\n uri: item.product_imageConnection?.edges[0]?.node?.url,\n }}\n style={styles.productPhoto}\n resizeMode=\"contain\"\n />\n <View style={styles.productName}>\n <Text style={styles.itemTextProduct}>\n {item.product_category}\n </Text>\n <Text style={styles.itemTextProduct}>\n {item.product_name}\n </Text>\n </View>\n </View>\n );\n })}\n </View>\n </View>\n {item.steps.map((item, index) => {\n return (\n <View\n key={index}\n style={{\n marginHorizontal: 20,\n marginBottom: 15,\n }}\n >\n <View\n style={{\n flexDirection: 'row',\n marginVertical: 10,\n }}\n >\n <Text style={styles.itemTextTitleIndex}>{index + 1}</Text>\n <Text style={styles.itemTextStepTitle}>\n {item.step_title}\n </Text>\n </View>\n <View\n style={styles[`${item.style ? item.style : 'Container'}`]}\n >\n {(item.style === 'Image' || item.style == 'LumiSpaIO') && (\n <Image\n source={{\n uri: item.imageConnection?.edges[0]?.node?.url,\n }}\n style={styles.stepImagePhoto}\n resizeMode=\"contain\"\n />\n )}\n <View style={styles[`${item.style}TextContainer`]}>\n <Text style={styles.itemTextStepDescription}>\n {item.step_description}\n </Text>\n <Text style={styles.itemTextStepSubDescription}>\n {item.step_sub_description}\n </Text>\n {item.style === 'LumiSpaIO' && (\n <Pressable style={styles.textLumiSpaTreatmentContainer}>\n <Text style={styles.textLumiSpaTreatment}>\n {item.image_title}\n </Text>\n </Pressable>\n )}\n </View>\n </View>\n {item.style === 'Product' && (\n <View style={styles.stepProductContainer}>\n <Image\n source={{\n uri: item.imageConnection?.edges[0]?.node?.url,\n }}\n style={styles.stepProductPhoto}\n resizeMode=\"contain\"\n />\n <View style={styles.productName}>\n <Text style={styles.itemTextStepProduct}>\n {item.image_title}\n </Text>\n <Text style={styles.itemTextStepProduct}>\n {item.image_description}\n </Text>\n </View>\n </View>\n )}\n </View>\n );\n })}\n </>\n </ScrollView>\n </SafeAreaView>\n );\n}\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: colors.white,\n },\n routinesContainer: {\n backgroundColor: colors.primaryGray,\n flex: 1,\n },\n sectionHeader: {\n textTransform: 'uppercase',\n fontWeight: '600',\n fontSize: 14,\n // color: '#f4f4f4',\n marginTop: 20,\n paddingHorizontal: 15,\n marginBottom: 5,\n },\n imageOverlay: {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n height: '100%',\n },\n item: {\n margin: 10,\n borderRadius: 14,\n },\n itemPhoto: {\n width: '100%',\n minHeight: 160,\n aspectRatio: 1.5,\n },\n Image: {\n flexDirection: 'row',\n flex: 1,\n backgroundColor: colors.white,\n },\n ImageTextContainer: {\n flex: 1,\n padding: 20,\n },\n LumiSpaIOTextContainer: {\n flex: 1,\n padding: 20,\n },\n Container: {\n flexDirection: 'column',\n flex: 1,\n padding: 20,\n backgroundColor: colors.white,\n },\n Product: {\n flexDirection: 'column',\n flex: 1,\n padding: 20,\n backgroundColor: colors.white,\n },\n LumiSpaIO: {\n flexDirection: 'row',\n flex: 1,\n backgroundColor: colors.white,\n },\n productName: {\n flex: 1,\n justifyContent: 'center',\n marginLeft: 5,\n },\n routineDetailsContainer: {\n backgroundColor: 'white',\n paddingTop: 20,\n paddingBottom: 10,\n marginBottom: 10,\n },\n routineDetails: {\n flexDirection: 'column',\n paddingHorizontal: 15,\n paddingVertical: 10,\n },\n stepImagePhoto: {\n width: 130,\n minHeight: 150,\n },\n stepProductPhoto: {\n width: 80,\n height: 80,\n },\n stepProductContainer: {\n flexDirection: 'row',\n backgroundColor: colors.white,\n paddingHorizontal: 20,\n paddingBottom: 20,\n },\n productPhoto: {\n margin: 2,\n width: 40,\n height: 40,\n borderRadius: 50,\n borderColor: '#EDEDED',\n borderStyle: 'solid',\n borderWidth: 1,\n },\n itemTextStepProduct: {\n fontWeight: '400',\n fontSize: 13,\n lineHeight: 18,\n },\n itemTitleContainer: {\n flexDirection: 'column',\n justifyContent: 'space-between',\n paddingHorizontal: 15,\n position: 'absolute',\n bottom: 20,\n },\n itemTextSpan: {\n color: colors.white,\n fontWeight: '400',\n fontSize: 14,\n textTransform: 'uppercase',\n },\n itemTextTitleIndex: {\n color: colors.accentB400,\n fontWeight: '400',\n fontSize: 20,\n lineHeight: 26,\n paddingRight: 10,\n },\n itemTextStepTitle: {\n color: colors.primaryBlack,\n fontWeight: '600',\n fontSize: 18,\n lineHeight: 26,\n },\n itemTextStepSubDescription: {\n fontWeight: '700',\n fontSize: 10,\n lineHeight: 15,\n letterSpacing: 0.5,\n paddingTop: 5,\n textTransform: 'uppercase',\n },\n itemTextTitle: {\n color: colors.white,\n fontWeight: '400',\n fontSize: 26,\n },\n itemTextDescription: {\n color: colors.primaryBlack,\n fontWeight: '400',\n fontSize: 14,\n lineHeight: 20,\n paddingBottom: 20,\n },\n itemText: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n fontSize: 12,\n letterSpacing: 0.05,\n paddingBottom: 5,\n textTransform: 'uppercase',\n },\n itemTextStepDescription: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n fontSize: 12,\n letterSpacing: 0.05,\n paddingBottom: 5,\n },\n itemTextProduct: {\n color: colors.primaryBlack,\n fontSize: 11,\n fontWeight: '600',\n textTransform: 'uppercase',\n letterSpacing: 0.05,\n },\n itemTextSteps: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n textTransform: 'uppercase',\n },\n textLumiSpaTreatmentContainer: {\n marginTop: 10,\n padding: 10,\n textAlign: 'center',\n borderStyle: 'solid',\n borderWidth: 1,\n borderColor: colors.primaryBlack,\n },\n textLumiSpaTreatment: {\n textAlign: 'center',\n fontSize: 14,\n fontWeight: '600',\n lineHeight: 16,\n letterSpacing: 0.05,\n },\n});\nexport default RoutineDetails;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["RoutineDetails","props","item","route","params","styles","container","reference","accessibility","routinesContainer","position","uri","routine_imageConnection","edges","node","url","itemPhoto","imageOverlay","itemTitleContainer","itemTextSpan","routine_subtitle","itemTextTitle","routine_title","routineDetailsContainer","routineDetails","itemTextDescription","routines_description","itemText","products_used_label","products","map","index","flexDirection","product_imageConnection","productPhoto","productName","itemTextProduct","product_category","product_name","steps","marginHorizontal","marginBottom","marginVertical","itemTextTitleIndex","itemTextStepTitle","step_title","style","imageConnection","stepImagePhoto","itemTextStepDescription","step_description","itemTextStepSubDescription","step_sub_description","textLumiSpaTreatmentContainer","textLumiSpaTreatment","image_title","stepProductContainer","stepProductPhoto","itemTextStepProduct","image_description","StyleSheet","create","flex","backgroundColor","colors","white","primaryGray","sectionHeader","textTransform","fontWeight","fontSize","marginTop","paddingHorizontal","left","right","top","height","margin","borderRadius","width","minHeight","aspectRatio","Image","ImageTextContainer","padding","LumiSpaIOTextContainer","Container","Product","LumiSpaIO","justifyContent","marginLeft","paddingTop","paddingBottom","paddingVertical","borderColor","borderWidth","lineHeight","bottom","color","accentB400","paddingRight","primaryBlack","letterSpacing","itemTextSteps","textAlign","borderStyle"],"sources":["RoutineDetails.tsx"],"sourcesContent":["import React from 'react';\nimport {\n SafeAreaView,\n View,\n StyleSheet,\n ScrollView,\n Text,\n Image,\n ImageBackground,\n Pressable,\n} from 'react-native';\nimport { VeraHeader, Logo, HeaderCart, colors } from '@ns/mobile-ui';\nimport LinearGradient from 'react-native-linear-gradient';\nimport { accessibility } from './helpers/Accessibility';\n\nfunction RoutineDetails(props) {\n const item = props.route?.params;\n return (\n <SafeAreaView style={styles.container} testID=\"routineStack\">\n <VeraHeader\n left={<Logo accessibilityLabel=\"logo\" />}\n right={<HeaderCart accessibilityLabel=\"crt-btn\" />}\n title={item.reference}\n {...accessibility(`vera-header`)}\n />\n <ScrollView style={styles.routinesContainer}>\n {item && (\n <>\n <View style={{ position: 'relative' }}>\n <ImageBackground\n {...accessibility(`image-routine-background`)}\n source={{\n uri: item.routine_imageConnection?.edges[0]?.node?.url,\n }}\n style={styles.itemPhoto}\n >\n <LinearGradient\n colors={['rgba(0, 0, 0, 0)', 'rgba(0, 0, 0, 0.6)']}\n locations={[0.6, 1]}\n style={styles.imageOverlay}\n />\n <View style={styles.itemTitleContainer}>\n <Text style={styles.itemTextSpan}>\n {item.routine_subtitle}\n </Text>\n <Text style={styles.itemTextTitle}>{item.routine_title}</Text>\n </View>\n </ImageBackground>\n </View>\n <View style={styles.routineDetailsContainer}>\n <View style={styles.routineDetails}>\n <Text style={styles.itemTextDescription}>\n {item.routines_description}\n </Text>\n <Text style={styles.itemText}>{item.products_used_label}</Text>\n {item.products.map((item, index) => {\n return (\n <View key={index} style={{ flexDirection: 'row' }}>\n <Image\n key={index}\n source={{\n uri: item.product_imageConnection?.edges[0]?.node\n ?.url,\n }}\n style={styles.productPhoto}\n resizeMode=\"contain\"\n />\n <View style={styles.productName}>\n <Text style={styles.itemTextProduct}>\n {item.product_category}\n </Text>\n <Text style={styles.itemTextProduct}>\n {item.product_name}\n </Text>\n </View>\n </View>\n );\n })}\n </View>\n </View>\n {item.steps.map((item, index) => {\n return (\n <View\n key={index}\n style={{\n marginHorizontal: 20,\n marginBottom: 15,\n }}\n >\n <View\n style={{\n flexDirection: 'row',\n marginVertical: 10,\n }}\n >\n <Text style={styles.itemTextTitleIndex}>{index + 1}</Text>\n <Text style={styles.itemTextStepTitle}>\n {item.step_title}\n </Text>\n </View>\n <View\n style={styles[`${item.style ? item.style : 'Container'}`]}\n >\n {(item.style === 'Image' || item.style == 'LumiSpaIO') && (\n <Image\n source={{\n uri: item.imageConnection?.edges[0]?.node?.url,\n }}\n style={styles.stepImagePhoto}\n resizeMode=\"contain\"\n />\n )}\n <View\n style={\n styles[\n `${\n item.style\n ? `${item.style}TextContainer`\n : 'TextContainer'\n }`\n ]\n }\n >\n <Text style={styles.itemTextStepDescription}>\n {item.step_description}\n </Text>\n <Text style={styles.itemTextStepSubDescription}>\n {item.step_sub_description}\n </Text>\n {item.style === 'LumiSpaIO' && (\n <Pressable style={styles.textLumiSpaTreatmentContainer}>\n <Text style={styles.textLumiSpaTreatment}>\n {item.image_title}\n </Text>\n </Pressable>\n )}\n </View>\n </View>\n {item.style === 'Product' && (\n <View style={styles.stepProductContainer}>\n <Image\n source={{\n uri: item.imageConnection?.edges[0]?.node?.url,\n }}\n style={styles.stepProductPhoto}\n resizeMode=\"contain\"\n />\n <View style={styles.productName}>\n <Text style={styles.itemTextStepProduct}>\n {item.image_title}\n </Text>\n <Text style={styles.itemTextStepProduct}>\n {item.image_description}\n </Text>\n </View>\n </View>\n )}\n </View>\n );\n })}\n </>\n )}\n </ScrollView>\n </SafeAreaView>\n );\n}\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: colors.white,\n },\n routinesContainer: {\n backgroundColor: colors.primaryGray,\n flex: 1,\n },\n sectionHeader: {\n textTransform: 'uppercase',\n fontWeight: '600',\n fontSize: 14,\n // color: '#f4f4f4',\n marginTop: 20,\n paddingHorizontal: 15,\n marginBottom: 5,\n },\n imageOverlay: {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n height: '100%',\n },\n item: {\n margin: 10,\n borderRadius: 14,\n },\n itemPhoto: {\n width: '100%',\n minHeight: 160,\n aspectRatio: 1.5,\n },\n Image: {\n flexDirection: 'row',\n flex: 1,\n backgroundColor: colors.white,\n },\n ImageTextContainer: {\n flex: 1,\n padding: 20,\n },\n LumiSpaIOTextContainer: {\n flex: 1,\n padding: 20,\n },\n Container: {\n flexDirection: 'column',\n flex: 1,\n padding: 20,\n backgroundColor: colors.white,\n },\n Product: {\n flexDirection: 'column',\n flex: 1,\n padding: 20,\n backgroundColor: colors.white,\n },\n LumiSpaIO: {\n flexDirection: 'row',\n flex: 1,\n backgroundColor: colors.white,\n },\n productName: {\n flex: 1,\n justifyContent: 'center',\n marginLeft: 5,\n },\n routineDetailsContainer: {\n backgroundColor: 'white',\n paddingTop: 20,\n paddingBottom: 10,\n marginBottom: 10,\n },\n routineDetails: {\n flexDirection: 'column',\n paddingHorizontal: 15,\n paddingVertical: 10,\n },\n stepImagePhoto: {\n width: 130,\n minHeight: 150,\n },\n stepProductPhoto: {\n width: 80,\n height: 80,\n },\n stepProductContainer: {\n flexDirection: 'row',\n backgroundColor: colors.white,\n paddingHorizontal: 20,\n paddingBottom: 20,\n },\n productPhoto: {\n margin: 2,\n width: 40,\n height: 40,\n borderRadius: 50,\n borderColor: '#EDEDED',\n borderWidth: 1,\n },\n itemTextStepProduct: {\n fontWeight: '400',\n fontSize: 13,\n lineHeight: 18,\n },\n itemTitleContainer: {\n flexDirection: 'column',\n justifyContent: 'space-between',\n paddingHorizontal: 15,\n position: 'absolute',\n bottom: 20,\n },\n itemTextSpan: {\n color: colors.white,\n fontWeight: '400',\n fontSize: 14,\n textTransform: 'uppercase',\n },\n itemTextTitleIndex: {\n color: colors.accentB400,\n fontWeight: '400',\n fontSize: 20,\n lineHeight: 26,\n paddingRight: 10,\n },\n itemTextStepTitle: {\n color: colors.primaryBlack,\n fontWeight: '600',\n fontSize: 18,\n lineHeight: 26,\n },\n itemTextStepSubDescription: {\n fontWeight: '700',\n fontSize: 10,\n lineHeight: 15,\n letterSpacing: 0.5,\n paddingTop: 5,\n textTransform: 'uppercase',\n },\n itemTextTitle: {\n color: colors.white,\n fontWeight: '400',\n fontSize: 26,\n },\n itemTextDescription: {\n color: colors.primaryBlack,\n fontWeight: '400',\n fontSize: 14,\n lineHeight: 20,\n paddingBottom: 20,\n },\n itemText: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n fontSize: 12,\n letterSpacing: 0.05,\n paddingBottom: 5,\n textTransform: 'uppercase',\n },\n itemTextStepDescription: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n fontSize: 12,\n letterSpacing: 0.05,\n paddingBottom: 5,\n },\n itemTextProduct: {\n color: colors.primaryBlack,\n fontSize: 11,\n fontWeight: '600',\n textTransform: 'uppercase',\n letterSpacing: 0.05,\n },\n itemTextSteps: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n textTransform: 'uppercase',\n },\n textLumiSpaTreatmentContainer: {\n marginTop: 10,\n padding: 10,\n textAlign: 'center',\n borderStyle: 'solid',\n borderWidth: 1,\n borderColor: colors.primaryBlack,\n },\n textLumiSpaTreatment: {\n textAlign: 'center',\n fontSize: 14,\n fontWeight: '600',\n lineHeight: 16,\n letterSpacing: 0.05,\n },\n});\nexport default RoutineDetails;\n"],"mappings":";;;;;;AAAA;AACA;AAUA;AACA;AACA;AAAwD;AAAA;AAExD,SAASA,cAAc,CAACC,KAAK,EAAE;EAAA;EAC7B,MAAMC,IAAI,mBAAGD,KAAK,CAACE,KAAK,iDAAX,aAAaC,MAAM;EAChC,oBACE,6BAAC,yBAAY;IAAC,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAC,MAAM,EAAC;EAAc,gBAC1D,6BAAC,oBAAU;IACT,IAAI,eAAE,6BAAC,cAAI;MAAC,kBAAkB,EAAC;IAAM,EAAI;IACzC,KAAK,eAAE,6BAAC,oBAAU;MAAC,kBAAkB,EAAC;IAAS,EAAI;IACnD,KAAK,EAAEJ,IAAI,CAACK;EAAU,GAClB,IAAAC,4BAAa,EAAE,aAAY,CAAC,EAChC,eACF,6BAAC,uBAAU;IAAC,KAAK,EAAEH,MAAM,CAACI;EAAkB,GACzCP,IAAI,iBACH,yEACE,6BAAC,iBAAI;IAAC,KAAK,EAAE;MAAEQ,QAAQ,EAAE;IAAW;EAAE,gBACpC,6BAAC,4BAAe,eACV,IAAAF,4BAAa,EAAE,0BAAyB,CAAC;IAC7C,MAAM,EAAE;MACNG,GAAG,2BAAET,IAAI,CAACU,uBAAuB,oFAA5B,sBAA8BC,KAAK,CAAC,CAAC,CAAC,qFAAtC,uBAAwCC,IAAI,2DAA5C,uBAA8CC;IACrD,CAAE;IACF,KAAK,EAAEV,MAAM,CAACW;EAAU,iBAExB,6BAAC,kCAAc;IACb,MAAM,EAAE,CAAC,kBAAkB,EAAE,oBAAoB,CAAE;IACnD,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAE;IACpB,KAAK,EAAEX,MAAM,CAACY;EAAa,EAC3B,eACF,6BAAC,iBAAI;IAAC,KAAK,EAAEZ,MAAM,CAACa;EAAmB,gBACrC,6BAAC,iBAAI;IAAC,KAAK,EAAEb,MAAM,CAACc;EAAa,GAC9BjB,IAAI,CAACkB,gBAAgB,CACjB,eACP,6BAAC,iBAAI;IAAC,KAAK,EAAEf,MAAM,CAACgB;EAAc,GAAEnB,IAAI,CAACoB,aAAa,CAAQ,CACzD,CACS,CACb,eACP,6BAAC,iBAAI;IAAC,KAAK,EAAEjB,MAAM,CAACkB;EAAwB,gBAC1C,6BAAC,iBAAI;IAAC,KAAK,EAAElB,MAAM,CAACmB;EAAe,gBACjC,6BAAC,iBAAI;IAAC,KAAK,EAAEnB,MAAM,CAACoB;EAAoB,GACrCvB,IAAI,CAACwB,oBAAoB,CACrB,eACP,6BAAC,iBAAI;IAAC,KAAK,EAAErB,MAAM,CAACsB;EAAS,GAAEzB,IAAI,CAAC0B,mBAAmB,CAAQ,EAC9D1B,IAAI,CAAC2B,QAAQ,CAACC,GAAG,CAAC,CAAC5B,IAAI,EAAE6B,KAAK,KAAK;IAAA;IAClC,oBACE,6BAAC,iBAAI;MAAC,GAAG,EAAEA,KAAM;MAAC,KAAK,EAAE;QAAEC,aAAa,EAAE;MAAM;IAAE,gBAChD,6BAAC,kBAAK;MACJ,GAAG,EAAED,KAAM;MACX,MAAM,EAAE;QACNpB,GAAG,2BAAET,IAAI,CAAC+B,uBAAuB,oFAA5B,sBAA8BpB,KAAK,CAAC,CAAC,CAAC,qFAAtC,uBAAwCC,IAAI,2DAA5C,uBACDC;MACN,CAAE;MACF,KAAK,EAAEV,MAAM,CAAC6B,YAAa;MAC3B,UAAU,EAAC;IAAS,EACpB,eACF,6BAAC,iBAAI;MAAC,KAAK,EAAE7B,MAAM,CAAC8B;IAAY,gBAC9B,6BAAC,iBAAI;MAAC,KAAK,EAAE9B,MAAM,CAAC+B;IAAgB,GACjClC,IAAI,CAACmC,gBAAgB,CACjB,eACP,6BAAC,iBAAI;MAAC,KAAK,EAAEhC,MAAM,CAAC+B;IAAgB,GACjClC,IAAI,CAACoC,YAAY,CACb,CACF,CACF;EAEX,CAAC,CAAC,CACG,CACF,EACNpC,IAAI,CAACqC,KAAK,CAACT,GAAG,CAAC,CAAC5B,IAAI,EAAE6B,KAAK,KAAK;IAAA;IAC/B,oBACE,6BAAC,iBAAI;MACH,GAAG,EAAEA,KAAM;MACX,KAAK,EAAE;QACLS,gBAAgB,EAAE,EAAE;QACpBC,YAAY,EAAE;MAChB;IAAE,gBAEF,6BAAC,iBAAI;MACH,KAAK,EAAE;QACLT,aAAa,EAAE,KAAK;QACpBU,cAAc,EAAE;MAClB;IAAE,gBAEF,6BAAC,iBAAI;MAAC,KAAK,EAAErC,MAAM,CAACsC;IAAmB,GAAEZ,KAAK,GAAG,CAAC,CAAQ,eAC1D,6BAAC,iBAAI;MAAC,KAAK,EAAE1B,MAAM,CAACuC;IAAkB,GACnC1C,IAAI,CAAC2C,UAAU,CACX,CACF,eACP,6BAAC,iBAAI;MACH,KAAK,EAAExC,MAAM,CAAE,GAAEH,IAAI,CAAC4C,KAAK,GAAG5C,IAAI,CAAC4C,KAAK,GAAG,WAAY,EAAC;IAAE,GAEzD,CAAC5C,IAAI,CAAC4C,KAAK,KAAK,OAAO,IAAI5C,IAAI,CAAC4C,KAAK,IAAI,WAAW,kBACnD,6BAAC,kBAAK;MACJ,MAAM,EAAE;QACNnC,GAAG,2BAAET,IAAI,CAAC6C,eAAe,oFAApB,sBAAsBlC,KAAK,CAAC,CAAC,CAAC,qFAA9B,uBAAgCC,IAAI,2DAApC,uBAAsCC;MAC7C,CAAE;MACF,KAAK,EAAEV,MAAM,CAAC2C,cAAe;MAC7B,UAAU,EAAC;IAAS,EAEvB,eACD,6BAAC,iBAAI;MACH,KAAK,EACH3C,MAAM,CACH,GACCH,IAAI,CAAC4C,KAAK,GACL,GAAE5C,IAAI,CAAC4C,KAAM,eAAc,GAC5B,eACL,EAAC;IAEL,gBAED,6BAAC,iBAAI;MAAC,KAAK,EAAEzC,MAAM,CAAC4C;IAAwB,GACzC/C,IAAI,CAACgD,gBAAgB,CACjB,eACP,6BAAC,iBAAI;MAAC,KAAK,EAAE7C,MAAM,CAAC8C;IAA2B,GAC5CjD,IAAI,CAACkD,oBAAoB,CACrB,EACNlD,IAAI,CAAC4C,KAAK,KAAK,WAAW,iBACzB,6BAAC,sBAAS;MAAC,KAAK,EAAEzC,MAAM,CAACgD;IAA8B,gBACrD,6BAAC,iBAAI;MAAC,KAAK,EAAEhD,MAAM,CAACiD;IAAqB,GACtCpD,IAAI,CAACqD,WAAW,CACZ,CAEV,CACI,CACF,EACNrD,IAAI,CAAC4C,KAAK,KAAK,SAAS,iBACvB,6BAAC,iBAAI;MAAC,KAAK,EAAEzC,MAAM,CAACmD;IAAqB,gBACvC,6BAAC,kBAAK;MACJ,MAAM,EAAE;QACN7C,GAAG,4BAAET,IAAI,CAAC6C,eAAe,qFAApB,uBAAsBlC,KAAK,CAAC,CAAC,CAAC,qFAA9B,uBAAgCC,IAAI,2DAApC,uBAAsCC;MAC7C,CAAE;MACF,KAAK,EAAEV,MAAM,CAACoD,gBAAiB;MAC/B,UAAU,EAAC;IAAS,EACpB,eACF,6BAAC,iBAAI;MAAC,KAAK,EAAEpD,MAAM,CAAC8B;IAAY,gBAC9B,6BAAC,iBAAI;MAAC,KAAK,EAAE9B,MAAM,CAACqD;IAAoB,GACrCxD,IAAI,CAACqD,WAAW,CACZ,eACP,6BAAC,iBAAI;MAAC,KAAK,EAAElD,MAAM,CAACqD;IAAoB,GACrCxD,IAAI,CAACyD,iBAAiB,CAClB,CACF,CAEV,CACI;EAEX,CAAC,CAAC,CAEL,CACU,CACA;AAEnB;AACA,MAAMtD,MAAM,GAAGuD,uBAAU,CAACC,MAAM,CAAC;EAC/BvD,SAAS,EAAE;IACTwD,IAAI,EAAE,CAAC;IACPC,eAAe,EAAEC,gBAAM,CAACC;EAC1B,CAAC;EACDxD,iBAAiB,EAAE;IACjBsD,eAAe,EAAEC,gBAAM,CAACE,WAAW;IACnCJ,IAAI,EAAE;EACR,CAAC;EACDK,aAAa,EAAE;IACbC,aAAa,EAAE,WAAW;IAC1BC,UAAU,EAAE,KAAK;IACjBC,QAAQ,EAAE,EAAE;IACZ;IACAC,SAAS,EAAE,EAAE;IACbC,iBAAiB,EAAE,EAAE;IACrB/B,YAAY,EAAE;EAChB,CAAC;EACDxB,YAAY,EAAE;IACZP,QAAQ,EAAE,UAAU;IACpB+D,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,GAAG,EAAE,CAAC;IACNC,MAAM,EAAE;EACV,CAAC;EACD1E,IAAI,EAAE;IACJ2E,MAAM,EAAE,EAAE;IACVC,YAAY,EAAE;EAChB,CAAC;EACD9D,SAAS,EAAE;IACT+D,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE,GAAG;IACdC,WAAW,EAAE;EACf,CAAC;EACDC,KAAK,EAAE;IACLlD,aAAa,EAAE,KAAK;IACpB8B,IAAI,EAAE,CAAC;IACPC,eAAe,EAAEC,gBAAM,CAACC;EAC1B,CAAC;EACDkB,kBAAkB,EAAE;IAClBrB,IAAI,EAAE,CAAC;IACPsB,OAAO,EAAE;EACX,CAAC;EACDC,sBAAsB,EAAE;IACtBvB,IAAI,EAAE,CAAC;IACPsB,OAAO,EAAE;EACX,CAAC;EACDE,SAAS,EAAE;IACTtD,aAAa,EAAE,QAAQ;IACvB8B,IAAI,EAAE,CAAC;IACPsB,OAAO,EAAE,EAAE;IACXrB,eAAe,EAAEC,gBAAM,CAACC;EAC1B,CAAC;EACDsB,OAAO,EAAE;IACPvD,aAAa,EAAE,QAAQ;IACvB8B,IAAI,EAAE,CAAC;IACPsB,OAAO,EAAE,EAAE;IACXrB,eAAe,EAAEC,gBAAM,CAACC;EAC1B,CAAC;EACDuB,SAAS,EAAE;IACTxD,aAAa,EAAE,KAAK;IACpB8B,IAAI,EAAE,CAAC;IACPC,eAAe,EAAEC,gBAAM,CAACC;EAC1B,CAAC;EACD9B,WAAW,EAAE;IACX2B,IAAI,EAAE,CAAC;IACP2B,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE;EACd,CAAC;EACDnE,uBAAuB,EAAE;IACvBwC,eAAe,EAAE,OAAO;IACxB4B,UAAU,EAAE,EAAE;IACdC,aAAa,EAAE,EAAE;IACjBnD,YAAY,EAAE;EAChB,CAAC;EACDjB,cAAc,EAAE;IACdQ,aAAa,EAAE,QAAQ;IACvBwC,iBAAiB,EAAE,EAAE;IACrBqB,eAAe,EAAE;EACnB,CAAC;EACD7C,cAAc,EAAE;IACd+B,KAAK,EAAE,GAAG;IACVC,SAAS,EAAE;EACb,CAAC;EACDvB,gBAAgB,EAAE;IAChBsB,KAAK,EAAE,EAAE;IACTH,MAAM,EAAE;EACV,CAAC;EACDpB,oBAAoB,EAAE;IACpBxB,aAAa,EAAE,KAAK;IACpB+B,eAAe,EAAEC,gBAAM,CAACC,KAAK;IAC7BO,iBAAiB,EAAE,EAAE;IACrBoB,aAAa,EAAE;EACjB,CAAC;EACD1D,YAAY,EAAE;IACZ2C,MAAM,EAAE,CAAC;IACTE,KAAK,EAAE,EAAE;IACTH,MAAM,EAAE,EAAE;IACVE,YAAY,EAAE,EAAE;IAChBgB,WAAW,EAAE,SAAS;IACtBC,WAAW,EAAE;EACf,CAAC;EACDrC,mBAAmB,EAAE;IACnBW,UAAU,EAAE,KAAK;IACjBC,QAAQ,EAAE,EAAE;IACZ0B,UAAU,EAAE;EACd,CAAC;EACD9E,kBAAkB,EAAE;IAClBc,aAAa,EAAE,QAAQ;IACvByD,cAAc,EAAE,eAAe;IAC/BjB,iBAAiB,EAAE,EAAE;IACrB9D,QAAQ,EAAE,UAAU;IACpBuF,MAAM,EAAE;EACV,CAAC;EACD9E,YAAY,EAAE;IACZ+E,KAAK,EAAElC,gBAAM,CAACC,KAAK;IACnBI,UAAU,EAAE,KAAK;IACjBC,QAAQ,EAAE,EAAE;IACZF,aAAa,EAAE;EACjB,CAAC;EACDzB,kBAAkB,EAAE;IAClBuD,KAAK,EAAElC,gBAAM,CAACmC,UAAU;IACxB9B,UAAU,EAAE,KAAK;IACjBC,QAAQ,EAAE,EAAE;IACZ0B,UAAU,EAAE,EAAE;IACdI,YAAY,EAAE;EAChB,CAAC;EACDxD,iBAAiB,EAAE;IACjBsD,KAAK,EAAElC,gBAAM,CAACqC,YAAY;IAC1BhC,UAAU,EAAE,KAAK;IACjBC,QAAQ,EAAE,EAAE;IACZ0B,UAAU,EAAE;EACd,CAAC;EACD7C,0BAA0B,EAAE;IAC1BkB,UAAU,EAAE,KAAK;IACjBC,QAAQ,EAAE,EAAE;IACZ0B,UAAU,EAAE,EAAE;IACdM,aAAa,EAAE,GAAG;IAClBX,UAAU,EAAE,CAAC;IACbvB,aAAa,EAAE;EACjB,CAAC;EACD/C,aAAa,EAAE;IACb6E,KAAK,EAAElC,gBAAM,CAACC,KAAK;IACnBI,UAAU,EAAE,KAAK;IACjBC,QAAQ,EAAE;EACZ,CAAC;EACD7C,mBAAmB,EAAE;IACnByE,KAAK,EAAElC,gBAAM,CAACqC,YAAY;IAC1BhC,UAAU,EAAE,KAAK;IACjBC,QAAQ,EAAE,EAAE;IACZ0B,UAAU,EAAE,EAAE;IACdJ,aAAa,EAAE;EACjB,CAAC;EACDjE,QAAQ,EAAE;IACRuE,KAAK,EAAElC,gBAAM,CAACqC,YAAY;IAC1BhC,UAAU,EAAE,MAAM;IAClBC,QAAQ,EAAE,EAAE;IACZgC,aAAa,EAAE,IAAI;IACnBV,aAAa,EAAE,CAAC;IAChBxB,aAAa,EAAE;EACjB,CAAC;EACDnB,uBAAuB,EAAE;IACvBiD,KAAK,EAAElC,gBAAM,CAACqC,YAAY;IAC1BhC,UAAU,EAAE,MAAM;IAClBC,QAAQ,EAAE,EAAE;IACZgC,aAAa,EAAE,IAAI;IACnBV,aAAa,EAAE;EACjB,CAAC;EACDxD,eAAe,EAAE;IACf8D,KAAK,EAAElC,gBAAM,CAACqC,YAAY;IAC1B/B,QAAQ,EAAE,EAAE;IACZD,UAAU,EAAE,KAAK;IACjBD,aAAa,EAAE,WAAW;IAC1BkC,aAAa,EAAE;EACjB,CAAC;EACDC,aAAa,EAAE;IACbL,KAAK,EAAElC,gBAAM,CAACqC,YAAY;IAC1BhC,UAAU,EAAE,MAAM;IAClBD,aAAa,EAAE;EACjB,CAAC;EACDf,6BAA6B,EAAE;IAC7BkB,SAAS,EAAE,EAAE;IACba,OAAO,EAAE,EAAE;IACXoB,SAAS,EAAE,QAAQ;IACnBC,WAAW,EAAE,OAAO;IACpBV,WAAW,EAAE,CAAC;IACdD,WAAW,EAAE9B,gBAAM,CAACqC;EACtB,CAAC;EACD/C,oBAAoB,EAAE;IACpBkD,SAAS,EAAE,QAAQ;IACnBlC,QAAQ,EAAE,EAAE;IACZD,UAAU,EAAE,KAAK;IACjB2B,UAAU,EAAE,EAAE;IACdM,aAAa,EAAE;EACjB;AACF,CAAC,CAAC;AAAC,eACYtG,cAAc;AAAA"}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -42,8 +42,10 @@ const FETCH_ROUTINES_PAGE = (0, _client.gql)`
|
|
|
42
42
|
}
|
|
43
43
|
products_used_label
|
|
44
44
|
routine_title
|
|
45
|
+
routine_subtitle
|
|
45
46
|
routines_description
|
|
46
47
|
routine_step_label
|
|
48
|
+
reference
|
|
47
49
|
routine_imageConnection {
|
|
48
50
|
edges {
|
|
49
51
|
node {
|
|
@@ -75,7 +77,8 @@ exports.FETCH_ROUTINES_PAGE = FETCH_ROUTINES_PAGE;
|
|
|
75
77
|
const ListItem = _ref => {
|
|
76
78
|
var _item$routine_imageCo, _item$routine_imageCo2, _item$routine_imageCo3;
|
|
77
79
|
let {
|
|
78
|
-
item
|
|
80
|
+
item,
|
|
81
|
+
index
|
|
79
82
|
} = _ref;
|
|
80
83
|
const navigation = (0, _native.useNavigation)();
|
|
81
84
|
const handleOnPress = () => {
|
|
@@ -85,18 +88,18 @@ const ListItem = _ref => {
|
|
|
85
88
|
style: styles.itemContainer
|
|
86
89
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
87
90
|
onPress: handleOnPress
|
|
88
|
-
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, null, /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
|
|
91
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, null, /*#__PURE__*/_react.default.createElement(_reactNative.Image, _extends({}, (0, _Accessibility.accessibility)(`list-item-${index}`), {
|
|
89
92
|
source: {
|
|
90
93
|
uri: (_item$routine_imageCo = item.routine_imageConnection) === null || _item$routine_imageCo === void 0 ? void 0 : (_item$routine_imageCo2 = _item$routine_imageCo.edges[0]) === null || _item$routine_imageCo2 === void 0 ? void 0 : (_item$routine_imageCo3 = _item$routine_imageCo2.node) === null || _item$routine_imageCo3 === void 0 ? void 0 : _item$routine_imageCo3.url
|
|
91
94
|
},
|
|
92
95
|
style: styles.itemPhoto
|
|
93
|
-
})), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
96
|
+
}))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
94
97
|
style: styles.itemTextContainer
|
|
95
98
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
96
99
|
style: styles.itemTitleContainer
|
|
97
|
-
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
100
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, _extends({}, (0, _Accessibility.accessibility)(`list-item-title-${index}`), {
|
|
98
101
|
style: styles.itemTextTitle
|
|
99
|
-
}, item.routine_title), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
102
|
+
}), item.routine_title), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
100
103
|
style: styles.itemTextSteps
|
|
101
104
|
}, item.steps.length, " ", item.routine_step_label)), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
102
105
|
style: styles.listContainer
|
|
@@ -111,14 +114,15 @@ const ListItem = _ref => {
|
|
|
111
114
|
item,
|
|
112
115
|
index
|
|
113
116
|
} = _ref2;
|
|
114
|
-
return /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
|
|
115
|
-
key: index
|
|
117
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.Image, _extends({
|
|
118
|
+
key: index
|
|
119
|
+
}, (0, _Accessibility.accessibility)(`list-item-product-${index}`), {
|
|
116
120
|
source: {
|
|
117
121
|
uri: (_item$product_imageCo = item.product_imageConnection) === null || _item$product_imageCo === void 0 ? void 0 : (_item$product_imageCo2 = _item$product_imageCo.edges[0]) === null || _item$product_imageCo2 === void 0 ? void 0 : (_item$product_imageCo3 = _item$product_imageCo2.node) === null || _item$product_imageCo3 === void 0 ? void 0 : _item$product_imageCo3.url
|
|
118
122
|
},
|
|
119
123
|
style: styles.productPhoto,
|
|
120
124
|
resizeMode: "contain"
|
|
121
|
-
});
|
|
125
|
+
}));
|
|
122
126
|
},
|
|
123
127
|
showsHorizontalScrollIndicator: false
|
|
124
128
|
})))));
|
|
@@ -181,6 +185,7 @@ const Routines = () => {
|
|
|
181
185
|
index
|
|
182
186
|
} = _ref3;
|
|
183
187
|
return /*#__PURE__*/_react.default.createElement(ListItem, {
|
|
188
|
+
index: index,
|
|
184
189
|
item: item,
|
|
185
190
|
key: index
|
|
186
191
|
});
|
|
@@ -191,17 +196,17 @@ const Routines = () => {
|
|
|
191
196
|
}
|
|
192
197
|
}))));
|
|
193
198
|
};
|
|
194
|
-
function RoutineStack(
|
|
195
|
-
|
|
196
|
-
navigation
|
|
197
|
-
} = _ref4;
|
|
199
|
+
function RoutineStack() {
|
|
200
|
+
const navigation = (0, _native.useNavigation)();
|
|
198
201
|
(0, _react.useEffect)(() => {
|
|
199
202
|
const unsubscribe = navigation.addListener('focus', () => {
|
|
200
203
|
_mobileLogging.Logger.info('User navigated to the RoutineStack page.');
|
|
201
204
|
});
|
|
202
205
|
return unsubscribe;
|
|
203
206
|
}, [navigation]);
|
|
204
|
-
return /*#__PURE__*/_react.default.createElement(Stack.Navigator,
|
|
207
|
+
return /*#__PURE__*/_react.default.createElement(Stack.Navigator, {
|
|
208
|
+
initialRouteName: "Routines"
|
|
209
|
+
}, /*#__PURE__*/_react.default.createElement(Stack.Screen, {
|
|
205
210
|
name: "Routines",
|
|
206
211
|
component: Routines,
|
|
207
212
|
options: {
|
|
@@ -262,7 +267,6 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
262
267
|
height: 40,
|
|
263
268
|
borderRadius: 50,
|
|
264
269
|
borderColor: '#EDEDED',
|
|
265
|
-
borderStyle: 'solid',
|
|
266
270
|
borderWidth: 1
|
|
267
271
|
},
|
|
268
272
|
itemTitleContainer: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Stack","createStackNavigator","FETCH_ROUTINES_PAGE","gql","ListItem","item","navigation","useNavigation","handleOnPress","navigate","styles","itemContainer","uri","routine_imageConnection","edges","node","url","itemPhoto","itemTextContainer","itemTitleContainer","itemTextTitle","routine_title","itemTextSteps","steps","length","routine_step_label","listContainer","itemText","products_used_label","products","index","product_imageConnection","productPhoto","Routines","localizationStore","useSnapshot","localizationState","refresh","setRefresh","useState","locale","localization","getLocalization","LocalizationFormat","CONTENT_STACK","loading","error","data","refetch","useQuery","variables","useEffect","routinesPageData","result","items","errorCode","graphQLErrors","extensions","errors","code","container","accessibility","title","routinesContainer","sortListText","sort_list_label","routines","paddingHorizontal","RoutineStack","unsubscribe","addListener","Logger","info","headerShown","RoutineDetails","StyleSheet","create","flex","backgroundColor","colors","white","primaryGray","paddingTop","flexDirection","paddingVertical","sectionHeader","textTransform","fontWeight","fontSize","marginTop","marginBottom","margin","borderRadius","paddingBottom","width","minHeight","height","borderColor","borderStyle","borderWidth","justifyContent","color","primaryBlack","letterSpacing","textAlign","marginRight","paddingRight"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport {\n FlatList,\n Image,\n SafeAreaView,\n StyleSheet,\n Text,\n TouchableOpacity,\n View,\n ActivityIndicator,\n} from 'react-native';\nimport { gql, useQuery } from '@apollo/client';\nimport { useNavigation } from '@react-navigation/native';\nimport {\n VeraHeader,\n Logo,\n HeaderCart,\n colors,\n ErrorScreen,\n} from '@ns/mobile-ui';\nimport { localization, localizationState } from '@nuskin/utils-module';\nimport { useSnapshot } from 'valtio';\nimport RoutineDetails from './RoutineDetails';\nimport { Logger } from '@nuskin/mobile-logging';\nimport { accessibility } from './helpers/Accessibility';\nimport { createStackNavigator } from '@react-navigation/stack';\n\nconst Stack = createStackNavigator();\nexport const FETCH_ROUTINES_PAGE = gql`\n query fetchAllHomePages($locale: String) {\n result: all_routine(fallback_locale: true, locale: $locale) {\n items {\n products_used_label\n sort_list_label\n title\n routines {\n products {\n product_name\n product_category\n product_imageConnection {\n edges {\n node {\n url\n }\n }\n }\n }\n products_used_label\n routine_title\n routines_description\n routine_step_label\n routine_imageConnection {\n edges {\n node {\n url\n }\n }\n }\n steps {\n imageConnection {\n edges {\n node {\n url\n }\n }\n }\n step_sub_description\n step_title\n step_description\n style\n image_title\n image_description\n }\n }\n }\n }\n }\n`;\n\nconst ListItem = ({ item }) => {\n const navigation = useNavigation();\n const handleOnPress = () => {\n navigation.navigate('RoutineDetails' as never, item as never);\n };\n return (\n <View style={styles.itemContainer}>\n <TouchableOpacity onPress={handleOnPress}>\n <View>\n <Image\n source={{\n uri: item.routine_imageConnection?.edges[0]?.node?.url,\n }}\n style={styles.itemPhoto}\n />\n </View>\n <View style={styles.itemTextContainer}>\n <View style={styles.itemTitleContainer}>\n <Text style={styles.itemTextTitle}>{item.routine_title}</Text>\n <Text style={styles.itemTextSteps}>\n {item.steps.length} {item.routine_step_label}\n </Text>\n </View>\n <View style={styles.listContainer}>\n <Text style={styles.itemText}>{item.products_used_label}</Text>\n <FlatList\n data={item.products}\n horizontal\n renderItem={({ item, index }) => (\n <Image\n key={index}\n source={{\n uri: item.product_imageConnection?.edges[0]?.node?.url,\n }}\n style={styles.productPhoto}\n resizeMode=\"contain\"\n />\n )}\n showsHorizontalScrollIndicator={false}\n />\n </View>\n </View>\n </TouchableOpacity>\n </View>\n );\n};\n\nconst Routines = () => {\n const localizationStore = useSnapshot(localizationState);\n const [refresh, setRefresh] = useState(false);\n const locale = localization.getLocalization(\n localization.LocalizationFormat.CONTENT_STACK\n );\n\n const { loading, error, data, refetch } = useQuery(FETCH_ROUTINES_PAGE, {\n variables: { locale },\n });\n\n useEffect(() => {\n setRefresh(!refresh);\n }, [localizationStore]);\n\n const routinesPageData = data ? data.result.items[0] : {};\n if (error || !routinesPageData) {\n const errorCode = error?.graphQLErrors[0]?.extensions?.errors[0]?.code;\n\n return (\n <SafeAreaView style={styles.container}>\n <ErrorScreen errorCode={errorCode} refresh={() => refetch()} />\n </SafeAreaView>\n );\n }\n if (loading) {\n return (\n <SafeAreaView\n style={styles.container}\n {...accessibility('routine-container-loading')}\n >\n <ActivityIndicator\n size=\"large\"\n {...accessibility('routine-activity-indicator')}\n />\n </SafeAreaView>\n );\n }\n\n return (\n <SafeAreaView style={styles.container} testID=\"routineStack\">\n <VeraHeader\n left={<Logo accessibilityLabel=\"logo\" />}\n right={<HeaderCart accessibilityLabel=\"crt-btn\" />}\n title={routinesPageData.title}\n {...accessibility('routine-activity-indicator')}\n />\n <View style={styles.routinesContainer}>\n {routinesPageData && (\n <>\n <Text style={styles.sortListText}>\n {routinesPageData.sort_list_label}\n </Text>\n <FlatList\n data={routinesPageData.routines}\n renderItem={({ item, index }) => (\n <ListItem item={item} key={index} />\n )}\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={{ paddingHorizontal: 15 }}\n />\n </>\n )}\n </View>\n </SafeAreaView>\n );\n};\n\nfunction RoutineStack({ navigation }) {\n useEffect(() => {\n const unsubscribe = navigation.addListener('focus', () => {\n Logger.info('User navigated to the RoutineStack page.');\n });\n return unsubscribe;\n }, [navigation]);\n\n return (\n <Stack.Navigator>\n <Stack.Screen\n name=\"Routines\"\n component={Routines}\n options={{ headerShown: false }}\n />\n <Stack.Screen\n name=\"RoutineDetails\"\n component={RoutineDetails}\n options={{ headerShown: false }}\n />\n </Stack.Navigator>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: colors.white,\n },\n routinesContainer: {\n backgroundColor: colors.primaryGray,\n flex: 1,\n paddingTop: 10,\n },\n listContainer: {\n flexDirection: 'column',\n paddingHorizontal: 15,\n paddingVertical: 10,\n },\n sectionHeader: {\n textTransform: 'uppercase',\n fontWeight: '600',\n fontSize: 14,\n marginTop: 20,\n paddingHorizontal: 15,\n marginBottom: 5,\n },\n item: {\n margin: 10,\n borderRadius: 14,\n },\n itemContainer: {\n backgroundColor: 'transparent',\n flex: 1,\n marginBottom: 10,\n },\n itemTextContainer: {\n backgroundColor: colors.white,\n paddingTop: 20,\n paddingBottom: 10,\n },\n itemPhoto: {\n width: '100%',\n minHeight: 160,\n },\n productPhoto: {\n margin: 2,\n width: 40,\n height: 40,\n borderRadius: 50,\n borderColor: '#EDEDED',\n borderStyle: 'solid',\n borderWidth: 1,\n },\n itemTitleContainer: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingHorizontal: 15,\n },\n itemTextTitle: {\n color: colors.primaryBlack,\n fontWeight: '600',\n fontSize: 18,\n },\n itemText: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n fontSize: 12,\n letterSpacing: 0.05,\n paddingBottom: 5,\n textTransform: 'uppercase',\n },\n itemTextSteps: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n textTransform: 'uppercase',\n },\n sortListText: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n textTransform: 'uppercase',\n textAlign: 'right',\n marginRight: 10,\n letterSpacing: 0.5,\n paddingVertical: 10,\n paddingRight: 20,\n },\n});\n\nexport { RoutineStack };\n"],"mappings":";;;;;;;AAAA;AACA;AAUA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AAA+D;AAAA;AAAA;AAAA;AAE/D,MAAMA,KAAK,GAAG,IAAAC,2BAAoB,GAAE;AAC7B,MAAMC,mBAAmB,GAAG,IAAAC,WAAG,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAAC;AAEF,MAAMC,QAAQ,GAAG,QAAc;EAAA;EAAA,IAAb;IAAEC;EAAK,CAAC;EACxB,MAAMC,UAAU,GAAG,IAAAC,qBAAa,GAAE;EAClC,MAAMC,aAAa,GAAG,MAAM;IAC1BF,UAAU,CAACG,QAAQ,CAAC,gBAAgB,EAAWJ,IAAI,CAAU;EAC/D,CAAC;EACD,oBACE,6BAAC,iBAAI;IAAC,KAAK,EAAEK,MAAM,CAACC;EAAc,gBAChC,6BAAC,6BAAgB;IAAC,OAAO,EAAEH;EAAc,gBACvC,6BAAC,iBAAI,qBACH,6BAAC,kBAAK;IACJ,MAAM,EAAE;MACNI,GAAG,2BAAEP,IAAI,CAACQ,uBAAuB,oFAA5B,sBAA8BC,KAAK,CAAC,CAAC,CAAC,qFAAtC,uBAAwCC,IAAI,2DAA5C,uBAA8CC;IACrD,CAAE;IACF,KAAK,EAAEN,MAAM,CAACO;EAAU,EACxB,CACG,eACP,6BAAC,iBAAI;IAAC,KAAK,EAAEP,MAAM,CAACQ;EAAkB,gBACpC,6BAAC,iBAAI;IAAC,KAAK,EAAER,MAAM,CAACS;EAAmB,gBACrC,6BAAC,iBAAI;IAAC,KAAK,EAAET,MAAM,CAACU;EAAc,GAAEf,IAAI,CAACgB,aAAa,CAAQ,eAC9D,6BAAC,iBAAI;IAAC,KAAK,EAAEX,MAAM,CAACY;EAAc,GAC/BjB,IAAI,CAACkB,KAAK,CAACC,MAAM,EAAC,GAAC,EAACnB,IAAI,CAACoB,kBAAkB,CACvC,CACF,eACP,6BAAC,iBAAI;IAAC,KAAK,EAAEf,MAAM,CAACgB;EAAc,gBAChC,6BAAC,iBAAI;IAAC,KAAK,EAAEhB,MAAM,CAACiB;EAAS,GAAEtB,IAAI,CAACuB,mBAAmB,CAAQ,eAC/D,6BAAC,qBAAQ;IACP,IAAI,EAAEvB,IAAI,CAACwB,QAAS;IACpB,UAAU;IACV,UAAU,EAAE;MAAA;MAAA,IAAC;QAAExB,IAAI;QAAEyB;MAAM,CAAC;MAAA,oBAC1B,6BAAC,kBAAK;QACJ,GAAG,EAAEA,KAAM;QACX,MAAM,EAAE;UACNlB,GAAG,2BAAEP,IAAI,CAAC0B,uBAAuB,oFAA5B,sBAA8BjB,KAAK,CAAC,CAAC,CAAC,qFAAtC,uBAAwCC,IAAI,2DAA5C,uBAA8CC;QACrD,CAAE;QACF,KAAK,EAAEN,MAAM,CAACsB,YAAa;QAC3B,UAAU,EAAC;MAAS,EACpB;IAAA,CACF;IACF,8BAA8B,EAAE;EAAM,EACtC,CACG,CACF,CACU,CACd;AAEX,CAAC;AAED,MAAMC,QAAQ,GAAG,MAAM;EACrB,MAAMC,iBAAiB,GAAG,IAAAC,mBAAW,EAACC,8BAAiB,CAAC;EACxD,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EAC7C,MAAMC,MAAM,GAAGC,yBAAY,CAACC,eAAe,CACzCD,yBAAY,CAACE,kBAAkB,CAACC,aAAa,CAC9C;EAED,MAAM;IAAEC,OAAO;IAAEC,KAAK;IAAEC,IAAI;IAAEC;EAAQ,CAAC,GAAG,IAAAC,gBAAQ,EAAC/C,mBAAmB,EAAE;IACtEgD,SAAS,EAAE;MAAEV;IAAO;EACtB,CAAC,CAAC;EAEF,IAAAW,gBAAS,EAAC,MAAM;IACdb,UAAU,CAAC,CAACD,OAAO,CAAC;EACtB,CAAC,EAAE,CAACH,iBAAiB,CAAC,CAAC;EAEvB,MAAMkB,gBAAgB,GAAGL,IAAI,GAAGA,IAAI,CAACM,MAAM,CAACC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;EACzD,IAAIR,KAAK,IAAI,CAACM,gBAAgB,EAAE;IAAA;IAC9B,MAAMG,SAAS,GAAGT,KAAK,aAALA,KAAK,gDAALA,KAAK,CAAEU,aAAa,CAAC,CAAC,CAAC,oFAAvB,sBAAyBC,UAAU,qFAAnC,uBAAqCC,MAAM,CAAC,CAAC,CAAC,2DAA9C,uBAAgDC,IAAI;IAEtE,oBACE,6BAAC,yBAAY;MAAC,KAAK,EAAEjD,MAAM,CAACkD;IAAU,gBACpC,6BAAC,qBAAW;MAAC,SAAS,EAAEL,SAAU;MAAC,OAAO,EAAE,MAAMP,OAAO;IAAG,EAAG,CAClD;EAEnB;EACA,IAAIH,OAAO,EAAE;IACX,oBACE,6BAAC,yBAAY;MACX,KAAK,EAAEnC,MAAM,CAACkD;IAAU,GACpB,IAAAC,4BAAa,EAAC,2BAA2B,CAAC,gBAE9C,6BAAC,8BAAiB;MAChB,IAAI,EAAC;IAAO,GACR,IAAAA,4BAAa,EAAC,4BAA4B,CAAC,EAC/C,CACW;EAEnB;EAEA,oBACE,6BAAC,yBAAY;IAAC,KAAK,EAAEnD,MAAM,CAACkD,SAAU;IAAC,MAAM,EAAC;EAAc,gBAC1D,6BAAC,oBAAU;IACT,IAAI,eAAE,6BAAC,cAAI;MAAC,kBAAkB,EAAC;IAAM,EAAI;IACzC,KAAK,eAAE,6BAAC,oBAAU;MAAC,kBAAkB,EAAC;IAAS,EAAI;IACnD,KAAK,EAAER,gBAAgB,CAACU;EAAM,GAC1B,IAAAD,4BAAa,EAAC,4BAA4B,CAAC,EAC/C,eACF,6BAAC,iBAAI;IAAC,KAAK,EAAEnD,MAAM,CAACqD;EAAkB,GACnCX,gBAAgB,iBACf,yEACE,6BAAC,iBAAI;IAAC,KAAK,EAAE1C,MAAM,CAACsD;EAAa,GAC9BZ,gBAAgB,CAACa,eAAe,CAC5B,eACP,6BAAC,qBAAQ;IACP,IAAI,EAAEb,gBAAgB,CAACc,QAAS;IAChC,UAAU,EAAE;MAAA,IAAC;QAAE7D,IAAI;QAAEyB;MAAM,CAAC;MAAA,oBAC1B,6BAAC,QAAQ;QAAC,IAAI,EAAEzB,IAAK;QAAC,GAAG,EAAEyB;MAAM,EAAG;IAAA,CACpC;IACF,8BAA8B,EAAE,KAAM;IACtC,qBAAqB,EAAE;MAAEqC,iBAAiB,EAAE;IAAG;EAAE,EACjD,CAEL,CACI,CACM;AAEnB,CAAC;AAED,SAASC,YAAY,QAAiB;EAAA,IAAhB;IAAE9D;EAAW,CAAC;EAClC,IAAA6C,gBAAS,EAAC,MAAM;IACd,MAAMkB,WAAW,GAAG/D,UAAU,CAACgE,WAAW,CAAC,OAAO,EAAE,MAAM;MACxDC,qBAAM,CAACC,IAAI,CAAC,0CAA0C,CAAC;IACzD,CAAC,CAAC;IACF,OAAOH,WAAW;EACpB,CAAC,EAAE,CAAC/D,UAAU,CAAC,CAAC;EAEhB,oBACE,6BAAC,KAAK,CAAC,SAAS,qBACd,6BAAC,KAAK,CAAC,MAAM;IACX,IAAI,EAAC,UAAU;IACf,SAAS,EAAE2B,QAAS;IACpB,OAAO,EAAE;MAAEwC,WAAW,EAAE;IAAM;EAAE,EAChC,eACF,6BAAC,KAAK,CAAC,MAAM;IACX,IAAI,EAAC,gBAAgB;IACrB,SAAS,EAAEC,uBAAe;IAC1B,OAAO,EAAE;MAAED,WAAW,EAAE;IAAM;EAAE,EAChC,CACc;AAEtB;AAEA,MAAM/D,MAAM,GAAGiE,uBAAU,CAACC,MAAM,CAAC;EAC/BhB,SAAS,EAAE;IACTiB,IAAI,EAAE,CAAC;IACPC,eAAe,EAAEC,gBAAM,CAACC;EAC1B,CAAC;EACDjB,iBAAiB,EAAE;IACjBe,eAAe,EAAEC,gBAAM,CAACE,WAAW;IACnCJ,IAAI,EAAE,CAAC;IACPK,UAAU,EAAE;EACd,CAAC;EACDxD,aAAa,EAAE;IACbyD,aAAa,EAAE,QAAQ;IACvBhB,iBAAiB,EAAE,EAAE;IACrBiB,eAAe,EAAE;EACnB,CAAC;EACDC,aAAa,EAAE;IACbC,aAAa,EAAE,WAAW;IAC1BC,UAAU,EAAE,KAAK;IACjBC,QAAQ,EAAE,EAAE;IACZC,SAAS,EAAE,EAAE;IACbtB,iBAAiB,EAAE,EAAE;IACrBuB,YAAY,EAAE;EAChB,CAAC;EACDrF,IAAI,EAAE;IACJsF,MAAM,EAAE,EAAE;IACVC,YAAY,EAAE;EAChB,CAAC;EACDjF,aAAa,EAAE;IACbmE,eAAe,EAAE,aAAa;IAC9BD,IAAI,EAAE,CAAC;IACPa,YAAY,EAAE;EAChB,CAAC;EACDxE,iBAAiB,EAAE;IACjB4D,eAAe,EAAEC,gBAAM,CAACC,KAAK;IAC7BE,UAAU,EAAE,EAAE;IACdW,aAAa,EAAE;EACjB,CAAC;EACD5E,SAAS,EAAE;IACT6E,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE;EACb,CAAC;EACD/D,YAAY,EAAE;IACZ2D,MAAM,EAAE,CAAC;IACTG,KAAK,EAAE,EAAE;IACTE,MAAM,EAAE,EAAE;IACVJ,YAAY,EAAE,EAAE;IAChBK,WAAW,EAAE,SAAS;IACtBC,WAAW,EAAE,OAAO;IACpBC,WAAW,EAAE;EACf,CAAC;EACDhF,kBAAkB,EAAE;IAClBgE,aAAa,EAAE,KAAK;IACpBiB,cAAc,EAAE,eAAe;IAC/BjC,iBAAiB,EAAE;EACrB,CAAC;EACD/C,aAAa,EAAE;IACbiF,KAAK,EAAEtB,gBAAM,CAACuB,YAAY;IAC1Bf,UAAU,EAAE,KAAK;IACjBC,QAAQ,EAAE;EACZ,CAAC;EACD7D,QAAQ,EAAE;IACR0E,KAAK,EAAEtB,gBAAM,CAACuB,YAAY;IAC1Bf,UAAU,EAAE,MAAM;IAClBC,QAAQ,EAAE,EAAE;IACZe,aAAa,EAAE,IAAI;IACnBV,aAAa,EAAE,CAAC;IAChBP,aAAa,EAAE;EACjB,CAAC;EACDhE,aAAa,EAAE;IACb+E,KAAK,EAAEtB,gBAAM,CAACuB,YAAY;IAC1Bf,UAAU,EAAE,MAAM;IAClBD,aAAa,EAAE;EACjB,CAAC;EACDtB,YAAY,EAAE;IACZqC,KAAK,EAAEtB,gBAAM,CAACuB,YAAY;IAC1Bf,UAAU,EAAE,MAAM;IAClBD,aAAa,EAAE,WAAW;IAC1BkB,SAAS,EAAE,OAAO;IAClBC,WAAW,EAAE,EAAE;IACfF,aAAa,EAAE,GAAG;IAClBnB,eAAe,EAAE,EAAE;IACnBsB,YAAY,EAAE;EAChB;AACF,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"names":["Stack","createStackNavigator","FETCH_ROUTINES_PAGE","gql","ListItem","item","index","navigation","useNavigation","handleOnPress","navigate","styles","itemContainer","accessibility","uri","routine_imageConnection","edges","node","url","itemPhoto","itemTextContainer","itemTitleContainer","itemTextTitle","routine_title","itemTextSteps","steps","length","routine_step_label","listContainer","itemText","products_used_label","products","product_imageConnection","productPhoto","Routines","localizationStore","useSnapshot","localizationState","refresh","setRefresh","useState","locale","localization","getLocalization","LocalizationFormat","CONTENT_STACK","loading","error","data","refetch","useQuery","variables","useEffect","routinesPageData","result","items","errorCode","graphQLErrors","extensions","errors","code","container","title","routinesContainer","sortListText","sort_list_label","routines","paddingHorizontal","RoutineStack","unsubscribe","addListener","Logger","info","headerShown","RoutineDetails","StyleSheet","create","flex","backgroundColor","colors","white","primaryGray","paddingTop","flexDirection","paddingVertical","sectionHeader","textTransform","fontWeight","fontSize","marginTop","marginBottom","margin","borderRadius","paddingBottom","width","minHeight","height","borderColor","borderWidth","justifyContent","color","primaryBlack","letterSpacing","textAlign","marginRight","paddingRight"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport {\n FlatList,\n Image,\n SafeAreaView,\n StyleSheet,\n Text,\n TouchableOpacity,\n View,\n ActivityIndicator,\n} from 'react-native';\nimport { gql, useQuery } from '@apollo/client';\nimport { useNavigation } from '@react-navigation/native';\nimport {\n VeraHeader,\n Logo,\n HeaderCart,\n colors,\n ErrorScreen,\n} from '@ns/mobile-ui';\nimport { localization, localizationState } from '@nuskin/utils-module';\nimport { useSnapshot } from 'valtio';\nimport RoutineDetails from './RoutineDetails';\nimport { Logger } from '@nuskin/mobile-logging';\nimport { accessibility } from './helpers/Accessibility';\nimport { createStackNavigator } from '@react-navigation/stack';\n\nconst Stack = createStackNavigator();\nexport const FETCH_ROUTINES_PAGE = gql`\n query fetchAllHomePages($locale: String) {\n result: all_routine(fallback_locale: true, locale: $locale) {\n items {\n products_used_label\n sort_list_label\n title\n routines {\n products {\n product_name\n product_category\n product_imageConnection {\n edges {\n node {\n url\n }\n }\n }\n }\n products_used_label\n routine_title\n routine_subtitle\n routines_description\n routine_step_label\n reference\n routine_imageConnection {\n edges {\n node {\n url\n }\n }\n }\n steps {\n imageConnection {\n edges {\n node {\n url\n }\n }\n }\n step_sub_description\n step_title\n step_description\n style\n image_title\n image_description\n }\n }\n }\n }\n }\n`;\n\nconst ListItem = ({ item, index }) => {\n const navigation = useNavigation();\n const handleOnPress = () => {\n navigation.navigate('RoutineDetails' as never, item as never);\n };\n return (\n <View style={styles.itemContainer}>\n <TouchableOpacity onPress={handleOnPress}>\n <View>\n <Image\n {...accessibility(`list-item-${index}`)}\n source={{\n uri: item.routine_imageConnection?.edges[0]?.node?.url,\n }}\n style={styles.itemPhoto}\n />\n </View>\n <View style={styles.itemTextContainer}>\n <View style={styles.itemTitleContainer}>\n <Text\n {...accessibility(`list-item-title-${index}`)}\n style={styles.itemTextTitle}\n >\n {item.routine_title}\n </Text>\n <Text style={styles.itemTextSteps}>\n {item.steps.length} {item.routine_step_label}\n </Text>\n </View>\n <View style={styles.listContainer}>\n <Text style={styles.itemText}>{item.products_used_label}</Text>\n <FlatList\n data={item.products}\n horizontal\n renderItem={({ item, index }) => (\n <Image\n key={index}\n {...accessibility(`list-item-product-${index}`)}\n source={{\n uri: item.product_imageConnection?.edges[0]?.node?.url,\n }}\n style={styles.productPhoto}\n resizeMode=\"contain\"\n />\n )}\n showsHorizontalScrollIndicator={false}\n />\n </View>\n </View>\n </TouchableOpacity>\n </View>\n );\n};\n\nconst Routines = () => {\n const localizationStore = useSnapshot(localizationState);\n const [refresh, setRefresh] = useState(false);\n const locale = localization.getLocalization(\n localization.LocalizationFormat.CONTENT_STACK\n );\n\n const { loading, error, data, refetch } = useQuery(FETCH_ROUTINES_PAGE, {\n variables: { locale },\n });\n\n useEffect(() => {\n setRefresh(!refresh);\n }, [localizationStore]);\n\n const routinesPageData = data ? data.result.items[0] : {};\n if (error || !routinesPageData) {\n const errorCode = error?.graphQLErrors[0]?.extensions?.errors[0]?.code;\n\n return (\n <SafeAreaView style={styles.container}>\n <ErrorScreen errorCode={errorCode} refresh={() => refetch()} />\n </SafeAreaView>\n );\n }\n if (loading) {\n return (\n <SafeAreaView\n style={styles.container}\n {...accessibility('routine-container-loading')}\n >\n <ActivityIndicator\n size=\"large\"\n {...accessibility('routine-activity-indicator')}\n />\n </SafeAreaView>\n );\n }\n\n return (\n <SafeAreaView style={styles.container} testID=\"routineStack\">\n <VeraHeader\n left={<Logo accessibilityLabel=\"logo\" />}\n right={<HeaderCart accessibilityLabel=\"crt-btn\" />}\n title={routinesPageData.title}\n {...accessibility('routine-activity-indicator')}\n />\n <View style={styles.routinesContainer}>\n {routinesPageData && (\n <>\n <Text style={styles.sortListText}>\n {routinesPageData.sort_list_label}\n </Text>\n <FlatList\n data={routinesPageData.routines}\n renderItem={({ item, index }) => (\n <ListItem index={index} item={item} key={index} />\n )}\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={{ paddingHorizontal: 15 }}\n />\n </>\n )}\n </View>\n </SafeAreaView>\n );\n};\n\nfunction RoutineStack() {\n const navigation = useNavigation();\n useEffect(() => {\n const unsubscribe = navigation.addListener('focus', () => {\n Logger.info('User navigated to the RoutineStack page.');\n });\n return unsubscribe;\n }, [navigation]);\n\n return (\n <Stack.Navigator initialRouteName=\"Routines\">\n <Stack.Screen\n name=\"Routines\"\n component={Routines}\n options={{ headerShown: false }}\n />\n <Stack.Screen\n name=\"RoutineDetails\"\n component={RoutineDetails}\n options={{ headerShown: false }}\n />\n </Stack.Navigator>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: colors.white,\n },\n routinesContainer: {\n backgroundColor: colors.primaryGray,\n flex: 1,\n paddingTop: 10,\n },\n listContainer: {\n flexDirection: 'column',\n paddingHorizontal: 15,\n paddingVertical: 10,\n },\n sectionHeader: {\n textTransform: 'uppercase',\n fontWeight: '600',\n fontSize: 14,\n marginTop: 20,\n paddingHorizontal: 15,\n marginBottom: 5,\n },\n item: {\n margin: 10,\n borderRadius: 14,\n },\n itemContainer: {\n backgroundColor: 'transparent',\n flex: 1,\n marginBottom: 10,\n },\n itemTextContainer: {\n backgroundColor: colors.white,\n paddingTop: 20,\n paddingBottom: 10,\n },\n itemPhoto: {\n width: '100%',\n minHeight: 160,\n },\n productPhoto: {\n margin: 2,\n width: 40,\n height: 40,\n borderRadius: 50,\n borderColor: '#EDEDED',\n borderWidth: 1,\n },\n itemTitleContainer: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingHorizontal: 15,\n },\n itemTextTitle: {\n color: colors.primaryBlack,\n fontWeight: '600',\n fontSize: 18,\n },\n itemText: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n fontSize: 12,\n letterSpacing: 0.05,\n paddingBottom: 5,\n textTransform: 'uppercase',\n },\n itemTextSteps: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n textTransform: 'uppercase',\n },\n sortListText: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n textTransform: 'uppercase',\n textAlign: 'right',\n marginRight: 10,\n letterSpacing: 0.5,\n paddingVertical: 10,\n paddingRight: 20,\n },\n});\n\nexport { RoutineStack };\n"],"mappings":";;;;;;;AAAA;AACA;AAUA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AAA+D;AAAA;AAAA;AAAA;AAE/D,MAAMA,KAAK,GAAG,IAAAC,2BAAoB,GAAE;AAC7B,MAAMC,mBAAmB,GAAG,IAAAC,WAAG,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAAC;AAEF,MAAMC,QAAQ,GAAG,QAAqB;EAAA;EAAA,IAApB;IAAEC,IAAI;IAAEC;EAAM,CAAC;EAC/B,MAAMC,UAAU,GAAG,IAAAC,qBAAa,GAAE;EAClC,MAAMC,aAAa,GAAG,MAAM;IAC1BF,UAAU,CAACG,QAAQ,CAAC,gBAAgB,EAAWL,IAAI,CAAU;EAC/D,CAAC;EACD,oBACE,6BAAC,iBAAI;IAAC,KAAK,EAAEM,MAAM,CAACC;EAAc,gBAChC,6BAAC,6BAAgB;IAAC,OAAO,EAAEH;EAAc,gBACvC,6BAAC,iBAAI,qBACH,6BAAC,kBAAK,eACA,IAAAI,4BAAa,EAAE,aAAYP,KAAM,EAAC,CAAC;IACvC,MAAM,EAAE;MACNQ,GAAG,2BAAET,IAAI,CAACU,uBAAuB,oFAA5B,sBAA8BC,KAAK,CAAC,CAAC,CAAC,qFAAtC,uBAAwCC,IAAI,2DAA5C,uBAA8CC;IACrD,CAAE;IACF,KAAK,EAAEP,MAAM,CAACQ;EAAU,GACxB,CACG,eACP,6BAAC,iBAAI;IAAC,KAAK,EAAER,MAAM,CAACS;EAAkB,gBACpC,6BAAC,iBAAI;IAAC,KAAK,EAAET,MAAM,CAACU;EAAmB,gBACrC,6BAAC,iBAAI,eACC,IAAAR,4BAAa,EAAE,mBAAkBP,KAAM,EAAC,CAAC;IAC7C,KAAK,EAAEK,MAAM,CAACW;EAAc,IAE3BjB,IAAI,CAACkB,aAAa,CACd,eACP,6BAAC,iBAAI;IAAC,KAAK,EAAEZ,MAAM,CAACa;EAAc,GAC/BnB,IAAI,CAACoB,KAAK,CAACC,MAAM,EAAC,GAAC,EAACrB,IAAI,CAACsB,kBAAkB,CACvC,CACF,eACP,6BAAC,iBAAI;IAAC,KAAK,EAAEhB,MAAM,CAACiB;EAAc,gBAChC,6BAAC,iBAAI;IAAC,KAAK,EAAEjB,MAAM,CAACkB;EAAS,GAAExB,IAAI,CAACyB,mBAAmB,CAAQ,eAC/D,6BAAC,qBAAQ;IACP,IAAI,EAAEzB,IAAI,CAAC0B,QAAS;IACpB,UAAU;IACV,UAAU,EAAE;MAAA;MAAA,IAAC;QAAE1B,IAAI;QAAEC;MAAM,CAAC;MAAA,oBAC1B,6BAAC,kBAAK;QACJ,GAAG,EAAEA;MAAM,GACP,IAAAO,4BAAa,EAAE,qBAAoBP,KAAM,EAAC,CAAC;QAC/C,MAAM,EAAE;UACNQ,GAAG,2BAAET,IAAI,CAAC2B,uBAAuB,oFAA5B,sBAA8BhB,KAAK,CAAC,CAAC,CAAC,qFAAtC,uBAAwCC,IAAI,2DAA5C,uBAA8CC;QACrD,CAAE;QACF,KAAK,EAAEP,MAAM,CAACsB,YAAa;QAC3B,UAAU,EAAC;MAAS,GACpB;IAAA,CACF;IACF,8BAA8B,EAAE;EAAM,EACtC,CACG,CACF,CACU,CACd;AAEX,CAAC;AAED,MAAMC,QAAQ,GAAG,MAAM;EACrB,MAAMC,iBAAiB,GAAG,IAAAC,mBAAW,EAACC,8BAAiB,CAAC;EACxD,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EAC7C,MAAMC,MAAM,GAAGC,yBAAY,CAACC,eAAe,CACzCD,yBAAY,CAACE,kBAAkB,CAACC,aAAa,CAC9C;EAED,MAAM;IAAEC,OAAO;IAAEC,KAAK;IAAEC,IAAI;IAAEC;EAAQ,CAAC,GAAG,IAAAC,gBAAQ,EAAChD,mBAAmB,EAAE;IACtEiD,SAAS,EAAE;MAAEV;IAAO;EACtB,CAAC,CAAC;EAEF,IAAAW,gBAAS,EAAC,MAAM;IACdb,UAAU,CAAC,CAACD,OAAO,CAAC;EACtB,CAAC,EAAE,CAACH,iBAAiB,CAAC,CAAC;EAEvB,MAAMkB,gBAAgB,GAAGL,IAAI,GAAGA,IAAI,CAACM,MAAM,CAACC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;EACzD,IAAIR,KAAK,IAAI,CAACM,gBAAgB,EAAE;IAAA;IAC9B,MAAMG,SAAS,GAAGT,KAAK,aAALA,KAAK,gDAALA,KAAK,CAAEU,aAAa,CAAC,CAAC,CAAC,oFAAvB,sBAAyBC,UAAU,qFAAnC,uBAAqCC,MAAM,CAAC,CAAC,CAAC,2DAA9C,uBAAgDC,IAAI;IAEtE,oBACE,6BAAC,yBAAY;MAAC,KAAK,EAAEjD,MAAM,CAACkD;IAAU,gBACpC,6BAAC,qBAAW;MAAC,SAAS,EAAEL,SAAU;MAAC,OAAO,EAAE,MAAMP,OAAO;IAAG,EAAG,CAClD;EAEnB;EACA,IAAIH,OAAO,EAAE;IACX,oBACE,6BAAC,yBAAY;MACX,KAAK,EAAEnC,MAAM,CAACkD;IAAU,GACpB,IAAAhD,4BAAa,EAAC,2BAA2B,CAAC,gBAE9C,6BAAC,8BAAiB;MAChB,IAAI,EAAC;IAAO,GACR,IAAAA,4BAAa,EAAC,4BAA4B,CAAC,EAC/C,CACW;EAEnB;EAEA,oBACE,6BAAC,yBAAY;IAAC,KAAK,EAAEF,MAAM,CAACkD,SAAU;IAAC,MAAM,EAAC;EAAc,gBAC1D,6BAAC,oBAAU;IACT,IAAI,eAAE,6BAAC,cAAI;MAAC,kBAAkB,EAAC;IAAM,EAAI;IACzC,KAAK,eAAE,6BAAC,oBAAU;MAAC,kBAAkB,EAAC;IAAS,EAAI;IACnD,KAAK,EAAER,gBAAgB,CAACS;EAAM,GAC1B,IAAAjD,4BAAa,EAAC,4BAA4B,CAAC,EAC/C,eACF,6BAAC,iBAAI;IAAC,KAAK,EAAEF,MAAM,CAACoD;EAAkB,GACnCV,gBAAgB,iBACf,yEACE,6BAAC,iBAAI;IAAC,KAAK,EAAE1C,MAAM,CAACqD;EAAa,GAC9BX,gBAAgB,CAACY,eAAe,CAC5B,eACP,6BAAC,qBAAQ;IACP,IAAI,EAAEZ,gBAAgB,CAACa,QAAS;IAChC,UAAU,EAAE;MAAA,IAAC;QAAE7D,IAAI;QAAEC;MAAM,CAAC;MAAA,oBAC1B,6BAAC,QAAQ;QAAC,KAAK,EAAEA,KAAM;QAAC,IAAI,EAAED,IAAK;QAAC,GAAG,EAAEC;MAAM,EAAG;IAAA,CAClD;IACF,8BAA8B,EAAE,KAAM;IACtC,qBAAqB,EAAE;MAAE6D,iBAAiB,EAAE;IAAG;EAAE,EACjD,CAEL,CACI,CACM;AAEnB,CAAC;AAED,SAASC,YAAY,GAAG;EACtB,MAAM7D,UAAU,GAAG,IAAAC,qBAAa,GAAE;EAClC,IAAA4C,gBAAS,EAAC,MAAM;IACd,MAAMiB,WAAW,GAAG9D,UAAU,CAAC+D,WAAW,CAAC,OAAO,EAAE,MAAM;MACxDC,qBAAM,CAACC,IAAI,CAAC,0CAA0C,CAAC;IACzD,CAAC,CAAC;IACF,OAAOH,WAAW;EACpB,CAAC,EAAE,CAAC9D,UAAU,CAAC,CAAC;EAEhB,oBACE,6BAAC,KAAK,CAAC,SAAS;IAAC,gBAAgB,EAAC;EAAU,gBAC1C,6BAAC,KAAK,CAAC,MAAM;IACX,IAAI,EAAC,UAAU;IACf,SAAS,EAAE2B,QAAS;IACpB,OAAO,EAAE;MAAEuC,WAAW,EAAE;IAAM;EAAE,EAChC,eACF,6BAAC,KAAK,CAAC,MAAM;IACX,IAAI,EAAC,gBAAgB;IACrB,SAAS,EAAEC,uBAAe;IAC1B,OAAO,EAAE;MAAED,WAAW,EAAE;IAAM;EAAE,EAChC,CACc;AAEtB;AAEA,MAAM9D,MAAM,GAAGgE,uBAAU,CAACC,MAAM,CAAC;EAC/Bf,SAAS,EAAE;IACTgB,IAAI,EAAE,CAAC;IACPC,eAAe,EAAEC,gBAAM,CAACC;EAC1B,CAAC;EACDjB,iBAAiB,EAAE;IACjBe,eAAe,EAAEC,gBAAM,CAACE,WAAW;IACnCJ,IAAI,EAAE,CAAC;IACPK,UAAU,EAAE;EACd,CAAC;EACDtD,aAAa,EAAE;IACbuD,aAAa,EAAE,QAAQ;IACvBhB,iBAAiB,EAAE,EAAE;IACrBiB,eAAe,EAAE;EACnB,CAAC;EACDC,aAAa,EAAE;IACbC,aAAa,EAAE,WAAW;IAC1BC,UAAU,EAAE,KAAK;IACjBC,QAAQ,EAAE,EAAE;IACZC,SAAS,EAAE,EAAE;IACbtB,iBAAiB,EAAE,EAAE;IACrBuB,YAAY,EAAE;EAChB,CAAC;EACDrF,IAAI,EAAE;IACJsF,MAAM,EAAE,EAAE;IACVC,YAAY,EAAE;EAChB,CAAC;EACDhF,aAAa,EAAE;IACbkE,eAAe,EAAE,aAAa;IAC9BD,IAAI,EAAE,CAAC;IACPa,YAAY,EAAE;EAChB,CAAC;EACDtE,iBAAiB,EAAE;IACjB0D,eAAe,EAAEC,gBAAM,CAACC,KAAK;IAC7BE,UAAU,EAAE,EAAE;IACdW,aAAa,EAAE;EACjB,CAAC;EACD1E,SAAS,EAAE;IACT2E,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE;EACb,CAAC;EACD9D,YAAY,EAAE;IACZ0D,MAAM,EAAE,CAAC;IACTG,KAAK,EAAE,EAAE;IACTE,MAAM,EAAE,EAAE;IACVJ,YAAY,EAAE,EAAE;IAChBK,WAAW,EAAE,SAAS;IACtBC,WAAW,EAAE;EACf,CAAC;EACD7E,kBAAkB,EAAE;IAClB8D,aAAa,EAAE,KAAK;IACpBgB,cAAc,EAAE,eAAe;IAC/BhC,iBAAiB,EAAE;EACrB,CAAC;EACD7C,aAAa,EAAE;IACb8E,KAAK,EAAErB,gBAAM,CAACsB,YAAY;IAC1Bd,UAAU,EAAE,KAAK;IACjBC,QAAQ,EAAE;EACZ,CAAC;EACD3D,QAAQ,EAAE;IACRuE,KAAK,EAAErB,gBAAM,CAACsB,YAAY;IAC1Bd,UAAU,EAAE,MAAM;IAClBC,QAAQ,EAAE,EAAE;IACZc,aAAa,EAAE,IAAI;IACnBT,aAAa,EAAE,CAAC;IAChBP,aAAa,EAAE;EACjB,CAAC;EACD9D,aAAa,EAAE;IACb4E,KAAK,EAAErB,gBAAM,CAACsB,YAAY;IAC1Bd,UAAU,EAAE,MAAM;IAClBD,aAAa,EAAE;EACjB,CAAC;EACDtB,YAAY,EAAE;IACZoC,KAAK,EAAErB,gBAAM,CAACsB,YAAY;IAC1Bd,UAAU,EAAE,MAAM;IAClBD,aAAa,EAAE,WAAW;IAC1BiB,SAAS,EAAE,OAAO;IAClBC,WAAW,EAAE,EAAE;IACfF,aAAa,EAAE,GAAG;IAClBlB,eAAe,EAAE,EAAE;IACnBqB,YAAY,EAAE;EAChB;AACF,CAAC,CAAC"}
|
|
@@ -1,34 +1,35 @@
|
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import { SafeAreaView, View, StyleSheet, ScrollView, Text, Image, ImageBackground, Pressable } from 'react-native';
|
|
3
4
|
import { VeraHeader, Logo, HeaderCart, colors } from '@ns/mobile-ui';
|
|
4
5
|
import LinearGradient from 'react-native-linear-gradient';
|
|
6
|
+
import { accessibility } from './helpers/Accessibility';
|
|
5
7
|
function RoutineDetails(props) {
|
|
6
8
|
var _props$route, _item$routine_imageCo, _item$routine_imageCo2, _item$routine_imageCo3;
|
|
7
9
|
const item = (_props$route = props.route) === null || _props$route === void 0 ? void 0 : _props$route.params;
|
|
8
10
|
return /*#__PURE__*/React.createElement(SafeAreaView, {
|
|
9
11
|
style: styles.container,
|
|
10
12
|
testID: "routineStack"
|
|
11
|
-
}, /*#__PURE__*/React.createElement(VeraHeader, {
|
|
13
|
+
}, /*#__PURE__*/React.createElement(VeraHeader, _extends({
|
|
12
14
|
left: /*#__PURE__*/React.createElement(Logo, {
|
|
13
15
|
accessibilityLabel: "logo"
|
|
14
16
|
}),
|
|
15
17
|
right: /*#__PURE__*/React.createElement(HeaderCart, {
|
|
16
18
|
accessibilityLabel: "crt-btn"
|
|
17
19
|
}),
|
|
18
|
-
title:
|
|
19
|
-
|
|
20
|
-
}), /*#__PURE__*/React.createElement(ScrollView, {
|
|
20
|
+
title: item.reference
|
|
21
|
+
}, accessibility(`vera-header`))), /*#__PURE__*/React.createElement(ScrollView, {
|
|
21
22
|
style: styles.routinesContainer
|
|
22
|
-
}, /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(View, {
|
|
23
|
+
}, item && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(View, {
|
|
23
24
|
style: {
|
|
24
25
|
position: 'relative'
|
|
25
26
|
}
|
|
26
|
-
}, /*#__PURE__*/React.createElement(ImageBackground, {
|
|
27
|
+
}, /*#__PURE__*/React.createElement(ImageBackground, _extends({}, accessibility(`image-routine-background`), {
|
|
27
28
|
source: {
|
|
28
29
|
uri: (_item$routine_imageCo = item.routine_imageConnection) === null || _item$routine_imageCo === void 0 ? void 0 : (_item$routine_imageCo2 = _item$routine_imageCo.edges[0]) === null || _item$routine_imageCo2 === void 0 ? void 0 : (_item$routine_imageCo3 = _item$routine_imageCo2.node) === null || _item$routine_imageCo3 === void 0 ? void 0 : _item$routine_imageCo3.url
|
|
29
30
|
},
|
|
30
31
|
style: styles.itemPhoto
|
|
31
|
-
}, /*#__PURE__*/React.createElement(LinearGradient, {
|
|
32
|
+
}), /*#__PURE__*/React.createElement(LinearGradient, {
|
|
32
33
|
colors: ['rgba(0, 0, 0, 0)', 'rgba(0, 0, 0, 0.6)'],
|
|
33
34
|
locations: [0.6, 1],
|
|
34
35
|
style: styles.imageOverlay
|
|
@@ -36,7 +37,7 @@ function RoutineDetails(props) {
|
|
|
36
37
|
style: styles.itemTitleContainer
|
|
37
38
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
38
39
|
style: styles.itemTextSpan
|
|
39
|
-
},
|
|
40
|
+
}, item.routine_subtitle), /*#__PURE__*/React.createElement(Text, {
|
|
40
41
|
style: styles.itemTextTitle
|
|
41
42
|
}, item.routine_title)))), /*#__PURE__*/React.createElement(View, {
|
|
42
43
|
style: styles.routineDetailsContainer
|
|
@@ -46,13 +47,15 @@ function RoutineDetails(props) {
|
|
|
46
47
|
style: styles.itemTextDescription
|
|
47
48
|
}, item.routines_description), /*#__PURE__*/React.createElement(Text, {
|
|
48
49
|
style: styles.itemText
|
|
49
|
-
}, item.products_used_label), item.products.map(item => {
|
|
50
|
+
}, item.products_used_label), item.products.map((item, index) => {
|
|
50
51
|
var _item$product_imageCo, _item$product_imageCo2, _item$product_imageCo3;
|
|
51
52
|
return /*#__PURE__*/React.createElement(View, {
|
|
53
|
+
key: index,
|
|
52
54
|
style: {
|
|
53
55
|
flexDirection: 'row'
|
|
54
56
|
}
|
|
55
57
|
}, /*#__PURE__*/React.createElement(Image, {
|
|
58
|
+
key: index,
|
|
56
59
|
source: {
|
|
57
60
|
uri: (_item$product_imageCo = item.product_imageConnection) === null || _item$product_imageCo === void 0 ? void 0 : (_item$product_imageCo2 = _item$product_imageCo.edges[0]) === null || _item$product_imageCo2 === void 0 ? void 0 : (_item$product_imageCo3 = _item$product_imageCo2.node) === null || _item$product_imageCo3 === void 0 ? void 0 : _item$product_imageCo3.url
|
|
58
61
|
},
|
|
@@ -91,7 +94,7 @@ function RoutineDetails(props) {
|
|
|
91
94
|
style: styles.stepImagePhoto,
|
|
92
95
|
resizeMode: "contain"
|
|
93
96
|
}), /*#__PURE__*/React.createElement(View, {
|
|
94
|
-
style: styles[`${item.style}TextContainer`]
|
|
97
|
+
style: styles[`${item.style ? `${item.style}TextContainer` : 'TextContainer'}`]
|
|
95
98
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
96
99
|
style: styles.itemTextStepDescription
|
|
97
100
|
}, item.step_description), /*#__PURE__*/React.createElement(Text, {
|
|
@@ -217,7 +220,6 @@ const styles = StyleSheet.create({
|
|
|
217
220
|
height: 40,
|
|
218
221
|
borderRadius: 50,
|
|
219
222
|
borderColor: '#EDEDED',
|
|
220
|
-
borderStyle: 'solid',
|
|
221
223
|
borderWidth: 1
|
|
222
224
|
},
|
|
223
225
|
itemTextStepProduct: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","SafeAreaView","View","StyleSheet","ScrollView","Text","Image","ImageBackground","Pressable","VeraHeader","Logo","HeaderCart","colors","LinearGradient","RoutineDetails","props","item","route","params","styles","container","routinesContainer","position","uri","routine_imageConnection","edges","node","url","itemPhoto","imageOverlay","itemTitleContainer","itemTextSpan","itemTextTitle","routine_title","routineDetailsContainer","routineDetails","itemTextDescription","routines_description","itemText","products_used_label","products","map","flexDirection","product_imageConnection","productPhoto","productName","itemTextProduct","product_category","product_name","steps","index","marginHorizontal","marginBottom","marginVertical","itemTextTitleIndex","itemTextStepTitle","step_title","style","imageConnection","stepImagePhoto","itemTextStepDescription","step_description","itemTextStepSubDescription","step_sub_description","textLumiSpaTreatmentContainer","textLumiSpaTreatment","image_title","stepProductContainer","stepProductPhoto","itemTextStepProduct","image_description","create","flex","backgroundColor","white","primaryGray","sectionHeader","textTransform","fontWeight","fontSize","marginTop","paddingHorizontal","left","right","top","height","margin","borderRadius","width","minHeight","aspectRatio","ImageTextContainer","padding","LumiSpaIOTextContainer","Container","Product","LumiSpaIO","justifyContent","marginLeft","paddingTop","paddingBottom","paddingVertical","borderColor","borderStyle","borderWidth","lineHeight","bottom","color","accentB400","paddingRight","primaryBlack","letterSpacing","itemTextSteps","textAlign"],"sources":["RoutineDetails.tsx"],"sourcesContent":["import React from 'react';\nimport {\n SafeAreaView,\n View,\n StyleSheet,\n ScrollView,\n Text,\n Image,\n ImageBackground,\n Pressable,\n} from 'react-native';\nimport { VeraHeader, Logo, HeaderCart, colors } from '@ns/mobile-ui';\nimport LinearGradient from 'react-native-linear-gradient';\n\nfunction RoutineDetails(props) {\n const item = props.route?.params;\n return (\n <SafeAreaView style={styles.container} testID=\"routineStack\">\n <VeraHeader\n left={<Logo accessibilityLabel=\"logo\" />}\n right={<HeaderCart accessibilityLabel=\"crt-btn\" />}\n title={'Routine Details'}\n accessibilityLabel=\"header\"\n />\n <ScrollView style={styles.routinesContainer}>\n <>\n <View style={{ position: 'relative' }}>\n <ImageBackground\n source={{\n uri: item.routine_imageConnection?.edges[0]?.node?.url,\n }}\n style={styles.itemPhoto}\n >\n <LinearGradient\n colors={['rgba(0, 0, 0, 0)', 'rgba(0, 0, 0, 0.6)']}\n locations={[0.6, 1]}\n style={styles.imageOverlay}\n />\n <View style={styles.itemTitleContainer}>\n <Text style={styles.itemTextSpan}>Default</Text>\n <Text style={styles.itemTextTitle}>{item.routine_title}</Text>\n </View>\n </ImageBackground>\n </View>\n <View style={styles.routineDetailsContainer}>\n <View style={styles.routineDetails}>\n <Text style={styles.itemTextDescription}>\n {item.routines_description}\n </Text>\n <Text style={styles.itemText}>{item.products_used_label}</Text>\n {item.products.map((item) => {\n return (\n <View style={{ flexDirection: 'row' }}>\n <Image\n source={{\n uri: item.product_imageConnection?.edges[0]?.node?.url,\n }}\n style={styles.productPhoto}\n resizeMode=\"contain\"\n />\n <View style={styles.productName}>\n <Text style={styles.itemTextProduct}>\n {item.product_category}\n </Text>\n <Text style={styles.itemTextProduct}>\n {item.product_name}\n </Text>\n </View>\n </View>\n );\n })}\n </View>\n </View>\n {item.steps.map((item, index) => {\n return (\n <View\n key={index}\n style={{\n marginHorizontal: 20,\n marginBottom: 15,\n }}\n >\n <View\n style={{\n flexDirection: 'row',\n marginVertical: 10,\n }}\n >\n <Text style={styles.itemTextTitleIndex}>{index + 1}</Text>\n <Text style={styles.itemTextStepTitle}>\n {item.step_title}\n </Text>\n </View>\n <View\n style={styles[`${item.style ? item.style : 'Container'}`]}\n >\n {(item.style === 'Image' || item.style == 'LumiSpaIO') && (\n <Image\n source={{\n uri: item.imageConnection?.edges[0]?.node?.url,\n }}\n style={styles.stepImagePhoto}\n resizeMode=\"contain\"\n />\n )}\n <View style={styles[`${item.style}TextContainer`]}>\n <Text style={styles.itemTextStepDescription}>\n {item.step_description}\n </Text>\n <Text style={styles.itemTextStepSubDescription}>\n {item.step_sub_description}\n </Text>\n {item.style === 'LumiSpaIO' && (\n <Pressable style={styles.textLumiSpaTreatmentContainer}>\n <Text style={styles.textLumiSpaTreatment}>\n {item.image_title}\n </Text>\n </Pressable>\n )}\n </View>\n </View>\n {item.style === 'Product' && (\n <View style={styles.stepProductContainer}>\n <Image\n source={{\n uri: item.imageConnection?.edges[0]?.node?.url,\n }}\n style={styles.stepProductPhoto}\n resizeMode=\"contain\"\n />\n <View style={styles.productName}>\n <Text style={styles.itemTextStepProduct}>\n {item.image_title}\n </Text>\n <Text style={styles.itemTextStepProduct}>\n {item.image_description}\n </Text>\n </View>\n </View>\n )}\n </View>\n );\n })}\n </>\n </ScrollView>\n </SafeAreaView>\n );\n}\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: colors.white,\n },\n routinesContainer: {\n backgroundColor: colors.primaryGray,\n flex: 1,\n },\n sectionHeader: {\n textTransform: 'uppercase',\n fontWeight: '600',\n fontSize: 14,\n // color: '#f4f4f4',\n marginTop: 20,\n paddingHorizontal: 15,\n marginBottom: 5,\n },\n imageOverlay: {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n height: '100%',\n },\n item: {\n margin: 10,\n borderRadius: 14,\n },\n itemPhoto: {\n width: '100%',\n minHeight: 160,\n aspectRatio: 1.5,\n },\n Image: {\n flexDirection: 'row',\n flex: 1,\n backgroundColor: colors.white,\n },\n ImageTextContainer: {\n flex: 1,\n padding: 20,\n },\n LumiSpaIOTextContainer: {\n flex: 1,\n padding: 20,\n },\n Container: {\n flexDirection: 'column',\n flex: 1,\n padding: 20,\n backgroundColor: colors.white,\n },\n Product: {\n flexDirection: 'column',\n flex: 1,\n padding: 20,\n backgroundColor: colors.white,\n },\n LumiSpaIO: {\n flexDirection: 'row',\n flex: 1,\n backgroundColor: colors.white,\n },\n productName: {\n flex: 1,\n justifyContent: 'center',\n marginLeft: 5,\n },\n routineDetailsContainer: {\n backgroundColor: 'white',\n paddingTop: 20,\n paddingBottom: 10,\n marginBottom: 10,\n },\n routineDetails: {\n flexDirection: 'column',\n paddingHorizontal: 15,\n paddingVertical: 10,\n },\n stepImagePhoto: {\n width: 130,\n minHeight: 150,\n },\n stepProductPhoto: {\n width: 80,\n height: 80,\n },\n stepProductContainer: {\n flexDirection: 'row',\n backgroundColor: colors.white,\n paddingHorizontal: 20,\n paddingBottom: 20,\n },\n productPhoto: {\n margin: 2,\n width: 40,\n height: 40,\n borderRadius: 50,\n borderColor: '#EDEDED',\n borderStyle: 'solid',\n borderWidth: 1,\n },\n itemTextStepProduct: {\n fontWeight: '400',\n fontSize: 13,\n lineHeight: 18,\n },\n itemTitleContainer: {\n flexDirection: 'column',\n justifyContent: 'space-between',\n paddingHorizontal: 15,\n position: 'absolute',\n bottom: 20,\n },\n itemTextSpan: {\n color: colors.white,\n fontWeight: '400',\n fontSize: 14,\n textTransform: 'uppercase',\n },\n itemTextTitleIndex: {\n color: colors.accentB400,\n fontWeight: '400',\n fontSize: 20,\n lineHeight: 26,\n paddingRight: 10,\n },\n itemTextStepTitle: {\n color: colors.primaryBlack,\n fontWeight: '600',\n fontSize: 18,\n lineHeight: 26,\n },\n itemTextStepSubDescription: {\n fontWeight: '700',\n fontSize: 10,\n lineHeight: 15,\n letterSpacing: 0.5,\n paddingTop: 5,\n textTransform: 'uppercase',\n },\n itemTextTitle: {\n color: colors.white,\n fontWeight: '400',\n fontSize: 26,\n },\n itemTextDescription: {\n color: colors.primaryBlack,\n fontWeight: '400',\n fontSize: 14,\n lineHeight: 20,\n paddingBottom: 20,\n },\n itemText: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n fontSize: 12,\n letterSpacing: 0.05,\n paddingBottom: 5,\n textTransform: 'uppercase',\n },\n itemTextStepDescription: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n fontSize: 12,\n letterSpacing: 0.05,\n paddingBottom: 5,\n },\n itemTextProduct: {\n color: colors.primaryBlack,\n fontSize: 11,\n fontWeight: '600',\n textTransform: 'uppercase',\n letterSpacing: 0.05,\n },\n itemTextSteps: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n textTransform: 'uppercase',\n },\n textLumiSpaTreatmentContainer: {\n marginTop: 10,\n padding: 10,\n textAlign: 'center',\n borderStyle: 'solid',\n borderWidth: 1,\n borderColor: colors.primaryBlack,\n },\n textLumiSpaTreatment: {\n textAlign: 'center',\n fontSize: 14,\n fontWeight: '600',\n lineHeight: 16,\n letterSpacing: 0.05,\n },\n});\nexport default RoutineDetails;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","SafeAreaView","View","StyleSheet","ScrollView","Text","Image","ImageBackground","Pressable","VeraHeader","Logo","HeaderCart","colors","LinearGradient","accessibility","RoutineDetails","props","item","route","params","styles","container","reference","routinesContainer","position","uri","routine_imageConnection","edges","node","url","itemPhoto","imageOverlay","itemTitleContainer","itemTextSpan","routine_subtitle","itemTextTitle","routine_title","routineDetailsContainer","routineDetails","itemTextDescription","routines_description","itemText","products_used_label","products","map","index","flexDirection","product_imageConnection","productPhoto","productName","itemTextProduct","product_category","product_name","steps","marginHorizontal","marginBottom","marginVertical","itemTextTitleIndex","itemTextStepTitle","step_title","style","imageConnection","stepImagePhoto","itemTextStepDescription","step_description","itemTextStepSubDescription","step_sub_description","textLumiSpaTreatmentContainer","textLumiSpaTreatment","image_title","stepProductContainer","stepProductPhoto","itemTextStepProduct","image_description","create","flex","backgroundColor","white","primaryGray","sectionHeader","textTransform","fontWeight","fontSize","marginTop","paddingHorizontal","left","right","top","height","margin","borderRadius","width","minHeight","aspectRatio","ImageTextContainer","padding","LumiSpaIOTextContainer","Container","Product","LumiSpaIO","justifyContent","marginLeft","paddingTop","paddingBottom","paddingVertical","borderColor","borderWidth","lineHeight","bottom","color","accentB400","paddingRight","primaryBlack","letterSpacing","itemTextSteps","textAlign","borderStyle"],"sources":["RoutineDetails.tsx"],"sourcesContent":["import React from 'react';\nimport {\n SafeAreaView,\n View,\n StyleSheet,\n ScrollView,\n Text,\n Image,\n ImageBackground,\n Pressable,\n} from 'react-native';\nimport { VeraHeader, Logo, HeaderCart, colors } from '@ns/mobile-ui';\nimport LinearGradient from 'react-native-linear-gradient';\nimport { accessibility } from './helpers/Accessibility';\n\nfunction RoutineDetails(props) {\n const item = props.route?.params;\n return (\n <SafeAreaView style={styles.container} testID=\"routineStack\">\n <VeraHeader\n left={<Logo accessibilityLabel=\"logo\" />}\n right={<HeaderCart accessibilityLabel=\"crt-btn\" />}\n title={item.reference}\n {...accessibility(`vera-header`)}\n />\n <ScrollView style={styles.routinesContainer}>\n {item && (\n <>\n <View style={{ position: 'relative' }}>\n <ImageBackground\n {...accessibility(`image-routine-background`)}\n source={{\n uri: item.routine_imageConnection?.edges[0]?.node?.url,\n }}\n style={styles.itemPhoto}\n >\n <LinearGradient\n colors={['rgba(0, 0, 0, 0)', 'rgba(0, 0, 0, 0.6)']}\n locations={[0.6, 1]}\n style={styles.imageOverlay}\n />\n <View style={styles.itemTitleContainer}>\n <Text style={styles.itemTextSpan}>\n {item.routine_subtitle}\n </Text>\n <Text style={styles.itemTextTitle}>{item.routine_title}</Text>\n </View>\n </ImageBackground>\n </View>\n <View style={styles.routineDetailsContainer}>\n <View style={styles.routineDetails}>\n <Text style={styles.itemTextDescription}>\n {item.routines_description}\n </Text>\n <Text style={styles.itemText}>{item.products_used_label}</Text>\n {item.products.map((item, index) => {\n return (\n <View key={index} style={{ flexDirection: 'row' }}>\n <Image\n key={index}\n source={{\n uri: item.product_imageConnection?.edges[0]?.node\n ?.url,\n }}\n style={styles.productPhoto}\n resizeMode=\"contain\"\n />\n <View style={styles.productName}>\n <Text style={styles.itemTextProduct}>\n {item.product_category}\n </Text>\n <Text style={styles.itemTextProduct}>\n {item.product_name}\n </Text>\n </View>\n </View>\n );\n })}\n </View>\n </View>\n {item.steps.map((item, index) => {\n return (\n <View\n key={index}\n style={{\n marginHorizontal: 20,\n marginBottom: 15,\n }}\n >\n <View\n style={{\n flexDirection: 'row',\n marginVertical: 10,\n }}\n >\n <Text style={styles.itemTextTitleIndex}>{index + 1}</Text>\n <Text style={styles.itemTextStepTitle}>\n {item.step_title}\n </Text>\n </View>\n <View\n style={styles[`${item.style ? item.style : 'Container'}`]}\n >\n {(item.style === 'Image' || item.style == 'LumiSpaIO') && (\n <Image\n source={{\n uri: item.imageConnection?.edges[0]?.node?.url,\n }}\n style={styles.stepImagePhoto}\n resizeMode=\"contain\"\n />\n )}\n <View\n style={\n styles[\n `${\n item.style\n ? `${item.style}TextContainer`\n : 'TextContainer'\n }`\n ]\n }\n >\n <Text style={styles.itemTextStepDescription}>\n {item.step_description}\n </Text>\n <Text style={styles.itemTextStepSubDescription}>\n {item.step_sub_description}\n </Text>\n {item.style === 'LumiSpaIO' && (\n <Pressable style={styles.textLumiSpaTreatmentContainer}>\n <Text style={styles.textLumiSpaTreatment}>\n {item.image_title}\n </Text>\n </Pressable>\n )}\n </View>\n </View>\n {item.style === 'Product' && (\n <View style={styles.stepProductContainer}>\n <Image\n source={{\n uri: item.imageConnection?.edges[0]?.node?.url,\n }}\n style={styles.stepProductPhoto}\n resizeMode=\"contain\"\n />\n <View style={styles.productName}>\n <Text style={styles.itemTextStepProduct}>\n {item.image_title}\n </Text>\n <Text style={styles.itemTextStepProduct}>\n {item.image_description}\n </Text>\n </View>\n </View>\n )}\n </View>\n );\n })}\n </>\n )}\n </ScrollView>\n </SafeAreaView>\n );\n}\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: colors.white,\n },\n routinesContainer: {\n backgroundColor: colors.primaryGray,\n flex: 1,\n },\n sectionHeader: {\n textTransform: 'uppercase',\n fontWeight: '600',\n fontSize: 14,\n // color: '#f4f4f4',\n marginTop: 20,\n paddingHorizontal: 15,\n marginBottom: 5,\n },\n imageOverlay: {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n height: '100%',\n },\n item: {\n margin: 10,\n borderRadius: 14,\n },\n itemPhoto: {\n width: '100%',\n minHeight: 160,\n aspectRatio: 1.5,\n },\n Image: {\n flexDirection: 'row',\n flex: 1,\n backgroundColor: colors.white,\n },\n ImageTextContainer: {\n flex: 1,\n padding: 20,\n },\n LumiSpaIOTextContainer: {\n flex: 1,\n padding: 20,\n },\n Container: {\n flexDirection: 'column',\n flex: 1,\n padding: 20,\n backgroundColor: colors.white,\n },\n Product: {\n flexDirection: 'column',\n flex: 1,\n padding: 20,\n backgroundColor: colors.white,\n },\n LumiSpaIO: {\n flexDirection: 'row',\n flex: 1,\n backgroundColor: colors.white,\n },\n productName: {\n flex: 1,\n justifyContent: 'center',\n marginLeft: 5,\n },\n routineDetailsContainer: {\n backgroundColor: 'white',\n paddingTop: 20,\n paddingBottom: 10,\n marginBottom: 10,\n },\n routineDetails: {\n flexDirection: 'column',\n paddingHorizontal: 15,\n paddingVertical: 10,\n },\n stepImagePhoto: {\n width: 130,\n minHeight: 150,\n },\n stepProductPhoto: {\n width: 80,\n height: 80,\n },\n stepProductContainer: {\n flexDirection: 'row',\n backgroundColor: colors.white,\n paddingHorizontal: 20,\n paddingBottom: 20,\n },\n productPhoto: {\n margin: 2,\n width: 40,\n height: 40,\n borderRadius: 50,\n borderColor: '#EDEDED',\n borderWidth: 1,\n },\n itemTextStepProduct: {\n fontWeight: '400',\n fontSize: 13,\n lineHeight: 18,\n },\n itemTitleContainer: {\n flexDirection: 'column',\n justifyContent: 'space-between',\n paddingHorizontal: 15,\n position: 'absolute',\n bottom: 20,\n },\n itemTextSpan: {\n color: colors.white,\n fontWeight: '400',\n fontSize: 14,\n textTransform: 'uppercase',\n },\n itemTextTitleIndex: {\n color: colors.accentB400,\n fontWeight: '400',\n fontSize: 20,\n lineHeight: 26,\n paddingRight: 10,\n },\n itemTextStepTitle: {\n color: colors.primaryBlack,\n fontWeight: '600',\n fontSize: 18,\n lineHeight: 26,\n },\n itemTextStepSubDescription: {\n fontWeight: '700',\n fontSize: 10,\n lineHeight: 15,\n letterSpacing: 0.5,\n paddingTop: 5,\n textTransform: 'uppercase',\n },\n itemTextTitle: {\n color: colors.white,\n fontWeight: '400',\n fontSize: 26,\n },\n itemTextDescription: {\n color: colors.primaryBlack,\n fontWeight: '400',\n fontSize: 14,\n lineHeight: 20,\n paddingBottom: 20,\n },\n itemText: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n fontSize: 12,\n letterSpacing: 0.05,\n paddingBottom: 5,\n textTransform: 'uppercase',\n },\n itemTextStepDescription: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n fontSize: 12,\n letterSpacing: 0.05,\n paddingBottom: 5,\n },\n itemTextProduct: {\n color: colors.primaryBlack,\n fontSize: 11,\n fontWeight: '600',\n textTransform: 'uppercase',\n letterSpacing: 0.05,\n },\n itemTextSteps: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n textTransform: 'uppercase',\n },\n textLumiSpaTreatmentContainer: {\n marginTop: 10,\n padding: 10,\n textAlign: 'center',\n borderStyle: 'solid',\n borderWidth: 1,\n borderColor: colors.primaryBlack,\n },\n textLumiSpaTreatment: {\n textAlign: 'center',\n fontSize: 14,\n fontWeight: '600',\n lineHeight: 16,\n letterSpacing: 0.05,\n },\n});\nexport default RoutineDetails;\n"],"mappings":"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"}
|
package/lib/module/index.js
CHANGED
|
@@ -32,8 +32,10 @@ export const FETCH_ROUTINES_PAGE = gql`
|
|
|
32
32
|
}
|
|
33
33
|
products_used_label
|
|
34
34
|
routine_title
|
|
35
|
+
routine_subtitle
|
|
35
36
|
routines_description
|
|
36
37
|
routine_step_label
|
|
38
|
+
reference
|
|
37
39
|
routine_imageConnection {
|
|
38
40
|
edges {
|
|
39
41
|
node {
|
|
@@ -64,7 +66,8 @@ export const FETCH_ROUTINES_PAGE = gql`
|
|
|
64
66
|
const ListItem = _ref => {
|
|
65
67
|
var _item$routine_imageCo, _item$routine_imageCo2, _item$routine_imageCo3;
|
|
66
68
|
let {
|
|
67
|
-
item
|
|
69
|
+
item,
|
|
70
|
+
index
|
|
68
71
|
} = _ref;
|
|
69
72
|
const navigation = useNavigation();
|
|
70
73
|
const handleOnPress = () => {
|
|
@@ -74,18 +77,18 @@ const ListItem = _ref => {
|
|
|
74
77
|
style: styles.itemContainer
|
|
75
78
|
}, /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
76
79
|
onPress: handleOnPress
|
|
77
|
-
}, /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Image, {
|
|
80
|
+
}, /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Image, _extends({}, accessibility(`list-item-${index}`), {
|
|
78
81
|
source: {
|
|
79
82
|
uri: (_item$routine_imageCo = item.routine_imageConnection) === null || _item$routine_imageCo === void 0 ? void 0 : (_item$routine_imageCo2 = _item$routine_imageCo.edges[0]) === null || _item$routine_imageCo2 === void 0 ? void 0 : (_item$routine_imageCo3 = _item$routine_imageCo2.node) === null || _item$routine_imageCo3 === void 0 ? void 0 : _item$routine_imageCo3.url
|
|
80
83
|
},
|
|
81
84
|
style: styles.itemPhoto
|
|
82
|
-
})), /*#__PURE__*/React.createElement(View, {
|
|
85
|
+
}))), /*#__PURE__*/React.createElement(View, {
|
|
83
86
|
style: styles.itemTextContainer
|
|
84
87
|
}, /*#__PURE__*/React.createElement(View, {
|
|
85
88
|
style: styles.itemTitleContainer
|
|
86
|
-
}, /*#__PURE__*/React.createElement(Text, {
|
|
89
|
+
}, /*#__PURE__*/React.createElement(Text, _extends({}, accessibility(`list-item-title-${index}`), {
|
|
87
90
|
style: styles.itemTextTitle
|
|
88
|
-
}, item.routine_title), /*#__PURE__*/React.createElement(Text, {
|
|
91
|
+
}), item.routine_title), /*#__PURE__*/React.createElement(Text, {
|
|
89
92
|
style: styles.itemTextSteps
|
|
90
93
|
}, item.steps.length, " ", item.routine_step_label)), /*#__PURE__*/React.createElement(View, {
|
|
91
94
|
style: styles.listContainer
|
|
@@ -100,14 +103,15 @@ const ListItem = _ref => {
|
|
|
100
103
|
item,
|
|
101
104
|
index
|
|
102
105
|
} = _ref2;
|
|
103
|
-
return /*#__PURE__*/React.createElement(Image, {
|
|
104
|
-
key: index
|
|
106
|
+
return /*#__PURE__*/React.createElement(Image, _extends({
|
|
107
|
+
key: index
|
|
108
|
+
}, accessibility(`list-item-product-${index}`), {
|
|
105
109
|
source: {
|
|
106
110
|
uri: (_item$product_imageCo = item.product_imageConnection) === null || _item$product_imageCo === void 0 ? void 0 : (_item$product_imageCo2 = _item$product_imageCo.edges[0]) === null || _item$product_imageCo2 === void 0 ? void 0 : (_item$product_imageCo3 = _item$product_imageCo2.node) === null || _item$product_imageCo3 === void 0 ? void 0 : _item$product_imageCo3.url
|
|
107
111
|
},
|
|
108
112
|
style: styles.productPhoto,
|
|
109
113
|
resizeMode: "contain"
|
|
110
|
-
});
|
|
114
|
+
}));
|
|
111
115
|
},
|
|
112
116
|
showsHorizontalScrollIndicator: false
|
|
113
117
|
})))));
|
|
@@ -170,6 +174,7 @@ const Routines = () => {
|
|
|
170
174
|
index
|
|
171
175
|
} = _ref3;
|
|
172
176
|
return /*#__PURE__*/React.createElement(ListItem, {
|
|
177
|
+
index: index,
|
|
173
178
|
item: item,
|
|
174
179
|
key: index
|
|
175
180
|
});
|
|
@@ -180,17 +185,17 @@ const Routines = () => {
|
|
|
180
185
|
}
|
|
181
186
|
}))));
|
|
182
187
|
};
|
|
183
|
-
function RoutineStack(
|
|
184
|
-
|
|
185
|
-
navigation
|
|
186
|
-
} = _ref4;
|
|
188
|
+
function RoutineStack() {
|
|
189
|
+
const navigation = useNavigation();
|
|
187
190
|
useEffect(() => {
|
|
188
191
|
const unsubscribe = navigation.addListener('focus', () => {
|
|
189
192
|
Logger.info('User navigated to the RoutineStack page.');
|
|
190
193
|
});
|
|
191
194
|
return unsubscribe;
|
|
192
195
|
}, [navigation]);
|
|
193
|
-
return /*#__PURE__*/React.createElement(Stack.Navigator,
|
|
196
|
+
return /*#__PURE__*/React.createElement(Stack.Navigator, {
|
|
197
|
+
initialRouteName: "Routines"
|
|
198
|
+
}, /*#__PURE__*/React.createElement(Stack.Screen, {
|
|
194
199
|
name: "Routines",
|
|
195
200
|
component: Routines,
|
|
196
201
|
options: {
|
|
@@ -251,7 +256,6 @@ const styles = StyleSheet.create({
|
|
|
251
256
|
height: 40,
|
|
252
257
|
borderRadius: 50,
|
|
253
258
|
borderColor: '#EDEDED',
|
|
254
|
-
borderStyle: 'solid',
|
|
255
259
|
borderWidth: 1
|
|
256
260
|
},
|
|
257
261
|
itemTitleContainer: {
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useState","FlatList","Image","SafeAreaView","StyleSheet","Text","TouchableOpacity","View","ActivityIndicator","gql","useQuery","useNavigation","VeraHeader","Logo","HeaderCart","colors","ErrorScreen","localization","localizationState","useSnapshot","RoutineDetails","Logger","accessibility","createStackNavigator","Stack","FETCH_ROUTINES_PAGE","ListItem","item","navigation","handleOnPress","navigate","styles","itemContainer","uri","routine_imageConnection","edges","node","url","itemPhoto","itemTextContainer","itemTitleContainer","itemTextTitle","routine_title","itemTextSteps","steps","length","routine_step_label","listContainer","itemText","products_used_label","products","index","product_imageConnection","productPhoto","Routines","localizationStore","refresh","setRefresh","locale","getLocalization","LocalizationFormat","CONTENT_STACK","loading","error","data","refetch","variables","routinesPageData","result","items","errorCode","graphQLErrors","extensions","errors","code","container","title","routinesContainer","sortListText","sort_list_label","routines","paddingHorizontal","RoutineStack","unsubscribe","addListener","info","headerShown","create","flex","backgroundColor","white","primaryGray","paddingTop","flexDirection","paddingVertical","sectionHeader","textTransform","fontWeight","fontSize","marginTop","marginBottom","margin","borderRadius","paddingBottom","width","minHeight","height","borderColor","borderStyle","borderWidth","justifyContent","color","primaryBlack","letterSpacing","textAlign","marginRight","paddingRight"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport {\n FlatList,\n Image,\n SafeAreaView,\n StyleSheet,\n Text,\n TouchableOpacity,\n View,\n ActivityIndicator,\n} from 'react-native';\nimport { gql, useQuery } from '@apollo/client';\nimport { useNavigation } from '@react-navigation/native';\nimport {\n VeraHeader,\n Logo,\n HeaderCart,\n colors,\n ErrorScreen,\n} from '@ns/mobile-ui';\nimport { localization, localizationState } from '@nuskin/utils-module';\nimport { useSnapshot } from 'valtio';\nimport RoutineDetails from './RoutineDetails';\nimport { Logger } from '@nuskin/mobile-logging';\nimport { accessibility } from './helpers/Accessibility';\nimport { createStackNavigator } from '@react-navigation/stack';\n\nconst Stack = createStackNavigator();\nexport const FETCH_ROUTINES_PAGE = gql`\n query fetchAllHomePages($locale: String) {\n result: all_routine(fallback_locale: true, locale: $locale) {\n items {\n products_used_label\n sort_list_label\n title\n routines {\n products {\n product_name\n product_category\n product_imageConnection {\n edges {\n node {\n url\n }\n }\n }\n }\n products_used_label\n routine_title\n routines_description\n routine_step_label\n routine_imageConnection {\n edges {\n node {\n url\n }\n }\n }\n steps {\n imageConnection {\n edges {\n node {\n url\n }\n }\n }\n step_sub_description\n step_title\n step_description\n style\n image_title\n image_description\n }\n }\n }\n }\n }\n`;\n\nconst ListItem = ({ item }) => {\n const navigation = useNavigation();\n const handleOnPress = () => {\n navigation.navigate('RoutineDetails' as never, item as never);\n };\n return (\n <View style={styles.itemContainer}>\n <TouchableOpacity onPress={handleOnPress}>\n <View>\n <Image\n source={{\n uri: item.routine_imageConnection?.edges[0]?.node?.url,\n }}\n style={styles.itemPhoto}\n />\n </View>\n <View style={styles.itemTextContainer}>\n <View style={styles.itemTitleContainer}>\n <Text style={styles.itemTextTitle}>{item.routine_title}</Text>\n <Text style={styles.itemTextSteps}>\n {item.steps.length} {item.routine_step_label}\n </Text>\n </View>\n <View style={styles.listContainer}>\n <Text style={styles.itemText}>{item.products_used_label}</Text>\n <FlatList\n data={item.products}\n horizontal\n renderItem={({ item, index }) => (\n <Image\n key={index}\n source={{\n uri: item.product_imageConnection?.edges[0]?.node?.url,\n }}\n style={styles.productPhoto}\n resizeMode=\"contain\"\n />\n )}\n showsHorizontalScrollIndicator={false}\n />\n </View>\n </View>\n </TouchableOpacity>\n </View>\n );\n};\n\nconst Routines = () => {\n const localizationStore = useSnapshot(localizationState);\n const [refresh, setRefresh] = useState(false);\n const locale = localization.getLocalization(\n localization.LocalizationFormat.CONTENT_STACK\n );\n\n const { loading, error, data, refetch } = useQuery(FETCH_ROUTINES_PAGE, {\n variables: { locale },\n });\n\n useEffect(() => {\n setRefresh(!refresh);\n }, [localizationStore]);\n\n const routinesPageData = data ? data.result.items[0] : {};\n if (error || !routinesPageData) {\n const errorCode = error?.graphQLErrors[0]?.extensions?.errors[0]?.code;\n\n return (\n <SafeAreaView style={styles.container}>\n <ErrorScreen errorCode={errorCode} refresh={() => refetch()} />\n </SafeAreaView>\n );\n }\n if (loading) {\n return (\n <SafeAreaView\n style={styles.container}\n {...accessibility('routine-container-loading')}\n >\n <ActivityIndicator\n size=\"large\"\n {...accessibility('routine-activity-indicator')}\n />\n </SafeAreaView>\n );\n }\n\n return (\n <SafeAreaView style={styles.container} testID=\"routineStack\">\n <VeraHeader\n left={<Logo accessibilityLabel=\"logo\" />}\n right={<HeaderCart accessibilityLabel=\"crt-btn\" />}\n title={routinesPageData.title}\n {...accessibility('routine-activity-indicator')}\n />\n <View style={styles.routinesContainer}>\n {routinesPageData && (\n <>\n <Text style={styles.sortListText}>\n {routinesPageData.sort_list_label}\n </Text>\n <FlatList\n data={routinesPageData.routines}\n renderItem={({ item, index }) => (\n <ListItem item={item} key={index} />\n )}\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={{ paddingHorizontal: 15 }}\n />\n </>\n )}\n </View>\n </SafeAreaView>\n );\n};\n\nfunction RoutineStack({ navigation }) {\n useEffect(() => {\n const unsubscribe = navigation.addListener('focus', () => {\n Logger.info('User navigated to the RoutineStack page.');\n });\n return unsubscribe;\n }, [navigation]);\n\n return (\n <Stack.Navigator>\n <Stack.Screen\n name=\"Routines\"\n component={Routines}\n options={{ headerShown: false }}\n />\n <Stack.Screen\n name=\"RoutineDetails\"\n component={RoutineDetails}\n options={{ headerShown: false }}\n />\n </Stack.Navigator>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: colors.white,\n },\n routinesContainer: {\n backgroundColor: colors.primaryGray,\n flex: 1,\n paddingTop: 10,\n },\n listContainer: {\n flexDirection: 'column',\n paddingHorizontal: 15,\n paddingVertical: 10,\n },\n sectionHeader: {\n textTransform: 'uppercase',\n fontWeight: '600',\n fontSize: 14,\n marginTop: 20,\n paddingHorizontal: 15,\n marginBottom: 5,\n },\n item: {\n margin: 10,\n borderRadius: 14,\n },\n itemContainer: {\n backgroundColor: 'transparent',\n flex: 1,\n marginBottom: 10,\n },\n itemTextContainer: {\n backgroundColor: colors.white,\n paddingTop: 20,\n paddingBottom: 10,\n },\n itemPhoto: {\n width: '100%',\n minHeight: 160,\n },\n productPhoto: {\n margin: 2,\n width: 40,\n height: 40,\n borderRadius: 50,\n borderColor: '#EDEDED',\n borderStyle: 'solid',\n borderWidth: 1,\n },\n itemTitleContainer: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingHorizontal: 15,\n },\n itemTextTitle: {\n color: colors.primaryBlack,\n fontWeight: '600',\n fontSize: 18,\n },\n itemText: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n fontSize: 12,\n letterSpacing: 0.05,\n paddingBottom: 5,\n textTransform: 'uppercase',\n },\n itemTextSteps: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n textTransform: 'uppercase',\n },\n sortListText: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n textTransform: 'uppercase',\n textAlign: 'right',\n marginRight: 10,\n letterSpacing: 0.5,\n paddingVertical: 10,\n paddingRight: 20,\n },\n});\n\nexport { RoutineStack };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useEffect","useState","FlatList","Image","SafeAreaView","StyleSheet","Text","TouchableOpacity","View","ActivityIndicator","gql","useQuery","useNavigation","VeraHeader","Logo","HeaderCart","colors","ErrorScreen","localization","localizationState","useSnapshot","RoutineDetails","Logger","accessibility","createStackNavigator","Stack","FETCH_ROUTINES_PAGE","ListItem","item","index","navigation","handleOnPress","navigate","styles","itemContainer","uri","routine_imageConnection","edges","node","url","itemPhoto","itemTextContainer","itemTitleContainer","itemTextTitle","routine_title","itemTextSteps","steps","length","routine_step_label","listContainer","itemText","products_used_label","products","product_imageConnection","productPhoto","Routines","localizationStore","refresh","setRefresh","locale","getLocalization","LocalizationFormat","CONTENT_STACK","loading","error","data","refetch","variables","routinesPageData","result","items","errorCode","graphQLErrors","extensions","errors","code","container","title","routinesContainer","sortListText","sort_list_label","routines","paddingHorizontal","RoutineStack","unsubscribe","addListener","info","headerShown","create","flex","backgroundColor","white","primaryGray","paddingTop","flexDirection","paddingVertical","sectionHeader","textTransform","fontWeight","fontSize","marginTop","marginBottom","margin","borderRadius","paddingBottom","width","minHeight","height","borderColor","borderWidth","justifyContent","color","primaryBlack","letterSpacing","textAlign","marginRight","paddingRight"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport {\n FlatList,\n Image,\n SafeAreaView,\n StyleSheet,\n Text,\n TouchableOpacity,\n View,\n ActivityIndicator,\n} from 'react-native';\nimport { gql, useQuery } from '@apollo/client';\nimport { useNavigation } from '@react-navigation/native';\nimport {\n VeraHeader,\n Logo,\n HeaderCart,\n colors,\n ErrorScreen,\n} from '@ns/mobile-ui';\nimport { localization, localizationState } from '@nuskin/utils-module';\nimport { useSnapshot } from 'valtio';\nimport RoutineDetails from './RoutineDetails';\nimport { Logger } from '@nuskin/mobile-logging';\nimport { accessibility } from './helpers/Accessibility';\nimport { createStackNavigator } from '@react-navigation/stack';\n\nconst Stack = createStackNavigator();\nexport const FETCH_ROUTINES_PAGE = gql`\n query fetchAllHomePages($locale: String) {\n result: all_routine(fallback_locale: true, locale: $locale) {\n items {\n products_used_label\n sort_list_label\n title\n routines {\n products {\n product_name\n product_category\n product_imageConnection {\n edges {\n node {\n url\n }\n }\n }\n }\n products_used_label\n routine_title\n routine_subtitle\n routines_description\n routine_step_label\n reference\n routine_imageConnection {\n edges {\n node {\n url\n }\n }\n }\n steps {\n imageConnection {\n edges {\n node {\n url\n }\n }\n }\n step_sub_description\n step_title\n step_description\n style\n image_title\n image_description\n }\n }\n }\n }\n }\n`;\n\nconst ListItem = ({ item, index }) => {\n const navigation = useNavigation();\n const handleOnPress = () => {\n navigation.navigate('RoutineDetails' as never, item as never);\n };\n return (\n <View style={styles.itemContainer}>\n <TouchableOpacity onPress={handleOnPress}>\n <View>\n <Image\n {...accessibility(`list-item-${index}`)}\n source={{\n uri: item.routine_imageConnection?.edges[0]?.node?.url,\n }}\n style={styles.itemPhoto}\n />\n </View>\n <View style={styles.itemTextContainer}>\n <View style={styles.itemTitleContainer}>\n <Text\n {...accessibility(`list-item-title-${index}`)}\n style={styles.itemTextTitle}\n >\n {item.routine_title}\n </Text>\n <Text style={styles.itemTextSteps}>\n {item.steps.length} {item.routine_step_label}\n </Text>\n </View>\n <View style={styles.listContainer}>\n <Text style={styles.itemText}>{item.products_used_label}</Text>\n <FlatList\n data={item.products}\n horizontal\n renderItem={({ item, index }) => (\n <Image\n key={index}\n {...accessibility(`list-item-product-${index}`)}\n source={{\n uri: item.product_imageConnection?.edges[0]?.node?.url,\n }}\n style={styles.productPhoto}\n resizeMode=\"contain\"\n />\n )}\n showsHorizontalScrollIndicator={false}\n />\n </View>\n </View>\n </TouchableOpacity>\n </View>\n );\n};\n\nconst Routines = () => {\n const localizationStore = useSnapshot(localizationState);\n const [refresh, setRefresh] = useState(false);\n const locale = localization.getLocalization(\n localization.LocalizationFormat.CONTENT_STACK\n );\n\n const { loading, error, data, refetch } = useQuery(FETCH_ROUTINES_PAGE, {\n variables: { locale },\n });\n\n useEffect(() => {\n setRefresh(!refresh);\n }, [localizationStore]);\n\n const routinesPageData = data ? data.result.items[0] : {};\n if (error || !routinesPageData) {\n const errorCode = error?.graphQLErrors[0]?.extensions?.errors[0]?.code;\n\n return (\n <SafeAreaView style={styles.container}>\n <ErrorScreen errorCode={errorCode} refresh={() => refetch()} />\n </SafeAreaView>\n );\n }\n if (loading) {\n return (\n <SafeAreaView\n style={styles.container}\n {...accessibility('routine-container-loading')}\n >\n <ActivityIndicator\n size=\"large\"\n {...accessibility('routine-activity-indicator')}\n />\n </SafeAreaView>\n );\n }\n\n return (\n <SafeAreaView style={styles.container} testID=\"routineStack\">\n <VeraHeader\n left={<Logo accessibilityLabel=\"logo\" />}\n right={<HeaderCart accessibilityLabel=\"crt-btn\" />}\n title={routinesPageData.title}\n {...accessibility('routine-activity-indicator')}\n />\n <View style={styles.routinesContainer}>\n {routinesPageData && (\n <>\n <Text style={styles.sortListText}>\n {routinesPageData.sort_list_label}\n </Text>\n <FlatList\n data={routinesPageData.routines}\n renderItem={({ item, index }) => (\n <ListItem index={index} item={item} key={index} />\n )}\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={{ paddingHorizontal: 15 }}\n />\n </>\n )}\n </View>\n </SafeAreaView>\n );\n};\n\nfunction RoutineStack() {\n const navigation = useNavigation();\n useEffect(() => {\n const unsubscribe = navigation.addListener('focus', () => {\n Logger.info('User navigated to the RoutineStack page.');\n });\n return unsubscribe;\n }, [navigation]);\n\n return (\n <Stack.Navigator initialRouteName=\"Routines\">\n <Stack.Screen\n name=\"Routines\"\n component={Routines}\n options={{ headerShown: false }}\n />\n <Stack.Screen\n name=\"RoutineDetails\"\n component={RoutineDetails}\n options={{ headerShown: false }}\n />\n </Stack.Navigator>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: colors.white,\n },\n routinesContainer: {\n backgroundColor: colors.primaryGray,\n flex: 1,\n paddingTop: 10,\n },\n listContainer: {\n flexDirection: 'column',\n paddingHorizontal: 15,\n paddingVertical: 10,\n },\n sectionHeader: {\n textTransform: 'uppercase',\n fontWeight: '600',\n fontSize: 14,\n marginTop: 20,\n paddingHorizontal: 15,\n marginBottom: 5,\n },\n item: {\n margin: 10,\n borderRadius: 14,\n },\n itemContainer: {\n backgroundColor: 'transparent',\n flex: 1,\n marginBottom: 10,\n },\n itemTextContainer: {\n backgroundColor: colors.white,\n paddingTop: 20,\n paddingBottom: 10,\n },\n itemPhoto: {\n width: '100%',\n minHeight: 160,\n },\n productPhoto: {\n margin: 2,\n width: 40,\n height: 40,\n borderRadius: 50,\n borderColor: '#EDEDED',\n borderWidth: 1,\n },\n itemTitleContainer: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingHorizontal: 15,\n },\n itemTextTitle: {\n color: colors.primaryBlack,\n fontWeight: '600',\n fontSize: 18,\n },\n itemText: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n fontSize: 12,\n letterSpacing: 0.05,\n paddingBottom: 5,\n textTransform: 'uppercase',\n },\n itemTextSteps: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n textTransform: 'uppercase',\n },\n sortListText: {\n color: colors.primaryBlack,\n fontWeight: 'bold',\n textTransform: 'uppercase',\n textAlign: 'right',\n marginRight: 10,\n letterSpacing: 0.5,\n paddingVertical: 10,\n paddingRight: 20,\n },\n});\n\nexport { RoutineStack };\n"],"mappings":"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"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
export declare const FETCH_ROUTINES_PAGE: import("@apollo/client").DocumentNode;
|
|
3
|
-
declare function RoutineStack(
|
|
4
|
-
navigation: any;
|
|
5
|
-
}): JSX.Element;
|
|
3
|
+
declare function RoutineStack(): JSX.Element;
|
|
6
4
|
export { RoutineStack };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nuskin/routine-feature",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "2.0.
|
|
4
|
+
"version": "2.0.1",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://code.tls.nuskin.io/ns-am/mobile/applications/luna-and-sol/shared2.git",
|
|
@@ -36,7 +36,9 @@
|
|
|
36
36
|
"@apollo/client": "^3.7.4",
|
|
37
37
|
"@react-navigation/stack": "^6.2.2",
|
|
38
38
|
"@ns/mobile-ui": "^1.3.41",
|
|
39
|
-
"@nuskin/utils-module": "^1.1.5"
|
|
39
|
+
"@nuskin/utils-module": "^1.1.5",
|
|
40
|
+
"react-native-linear-gradient": "^2.5.6",
|
|
41
|
+
"@nuskin/mobile-logging": "^1.0.3"
|
|
40
42
|
},
|
|
41
43
|
"devDependencies": {
|
|
42
44
|
"react-native-builder-bob": "0.18.3",
|
|
@@ -74,6 +76,9 @@
|
|
|
74
76
|
"statements": 0
|
|
75
77
|
}
|
|
76
78
|
},
|
|
79
|
+
"testMatch": [
|
|
80
|
+
"**/__tests__/**/*.spec.(js|jsx|ts|tsx)"
|
|
81
|
+
],
|
|
77
82
|
"reporters": [
|
|
78
83
|
"default",
|
|
79
84
|
"jest-junit"
|
|
@@ -134,7 +139,7 @@
|
|
|
134
139
|
]
|
|
135
140
|
]
|
|
136
141
|
},
|
|
137
|
-
"commithash": "
|
|
142
|
+
"commithash": "bd325d14d7e5e60d8bc1b9eec1ab9af163285abe",
|
|
138
143
|
"author": {
|
|
139
144
|
"name": "Camila Urquizo",
|
|
140
145
|
"email": "curquizo@nuskin.com",
|
package/src/RoutineDetails.tsx
CHANGED
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
} from 'react-native';
|
|
12
12
|
import { VeraHeader, Logo, HeaderCart, colors } from '@ns/mobile-ui';
|
|
13
13
|
import LinearGradient from 'react-native-linear-gradient';
|
|
14
|
+
import { accessibility } from './helpers/Accessibility';
|
|
14
15
|
|
|
15
16
|
function RoutineDetails(props) {
|
|
16
17
|
const item = props.route?.params;
|
|
@@ -19,129 +20,146 @@ function RoutineDetails(props) {
|
|
|
19
20
|
<VeraHeader
|
|
20
21
|
left={<Logo accessibilityLabel="logo" />}
|
|
21
22
|
right={<HeaderCart accessibilityLabel="crt-btn" />}
|
|
22
|
-
title={
|
|
23
|
-
|
|
23
|
+
title={item.reference}
|
|
24
|
+
{...accessibility(`vera-header`)}
|
|
24
25
|
/>
|
|
25
26
|
<ScrollView style={styles.routinesContainer}>
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
<
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
>
|
|
34
|
-
<LinearGradient
|
|
35
|
-
colors={['rgba(0, 0, 0, 0)', 'rgba(0, 0, 0, 0.6)']}
|
|
36
|
-
locations={[0.6, 1]}
|
|
37
|
-
style={styles.imageOverlay}
|
|
38
|
-
/>
|
|
39
|
-
<View style={styles.itemTitleContainer}>
|
|
40
|
-
<Text style={styles.itemTextSpan}>Default</Text>
|
|
41
|
-
<Text style={styles.itemTextTitle}>{item.routine_title}</Text>
|
|
42
|
-
</View>
|
|
43
|
-
</ImageBackground>
|
|
44
|
-
</View>
|
|
45
|
-
<View style={styles.routineDetailsContainer}>
|
|
46
|
-
<View style={styles.routineDetails}>
|
|
47
|
-
<Text style={styles.itemTextDescription}>
|
|
48
|
-
{item.routines_description}
|
|
49
|
-
</Text>
|
|
50
|
-
<Text style={styles.itemText}>{item.products_used_label}</Text>
|
|
51
|
-
{item.products.map((item) => {
|
|
52
|
-
return (
|
|
53
|
-
<View style={{ flexDirection: 'row' }}>
|
|
54
|
-
<Image
|
|
55
|
-
source={{
|
|
56
|
-
uri: item.product_imageConnection?.edges[0]?.node?.url,
|
|
57
|
-
}}
|
|
58
|
-
style={styles.productPhoto}
|
|
59
|
-
resizeMode="contain"
|
|
60
|
-
/>
|
|
61
|
-
<View style={styles.productName}>
|
|
62
|
-
<Text style={styles.itemTextProduct}>
|
|
63
|
-
{item.product_category}
|
|
64
|
-
</Text>
|
|
65
|
-
<Text style={styles.itemTextProduct}>
|
|
66
|
-
{item.product_name}
|
|
67
|
-
</Text>
|
|
68
|
-
</View>
|
|
69
|
-
</View>
|
|
70
|
-
);
|
|
71
|
-
})}
|
|
72
|
-
</View>
|
|
73
|
-
</View>
|
|
74
|
-
{item.steps.map((item, index) => {
|
|
75
|
-
return (
|
|
76
|
-
<View
|
|
77
|
-
key={index}
|
|
78
|
-
style={{
|
|
79
|
-
marginHorizontal: 20,
|
|
80
|
-
marginBottom: 15,
|
|
27
|
+
{item && (
|
|
28
|
+
<>
|
|
29
|
+
<View style={{ position: 'relative' }}>
|
|
30
|
+
<ImageBackground
|
|
31
|
+
{...accessibility(`image-routine-background`)}
|
|
32
|
+
source={{
|
|
33
|
+
uri: item.routine_imageConnection?.edges[0]?.node?.url,
|
|
81
34
|
}}
|
|
35
|
+
style={styles.itemPhoto}
|
|
82
36
|
>
|
|
83
|
-
<
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
>
|
|
89
|
-
<Text style={styles.
|
|
90
|
-
|
|
91
|
-
{item.step_title}
|
|
37
|
+
<LinearGradient
|
|
38
|
+
colors={['rgba(0, 0, 0, 0)', 'rgba(0, 0, 0, 0.6)']}
|
|
39
|
+
locations={[0.6, 1]}
|
|
40
|
+
style={styles.imageOverlay}
|
|
41
|
+
/>
|
|
42
|
+
<View style={styles.itemTitleContainer}>
|
|
43
|
+
<Text style={styles.itemTextSpan}>
|
|
44
|
+
{item.routine_subtitle}
|
|
92
45
|
</Text>
|
|
46
|
+
<Text style={styles.itemTextTitle}>{item.routine_title}</Text>
|
|
93
47
|
</View>
|
|
48
|
+
</ImageBackground>
|
|
49
|
+
</View>
|
|
50
|
+
<View style={styles.routineDetailsContainer}>
|
|
51
|
+
<View style={styles.routineDetails}>
|
|
52
|
+
<Text style={styles.itemTextDescription}>
|
|
53
|
+
{item.routines_description}
|
|
54
|
+
</Text>
|
|
55
|
+
<Text style={styles.itemText}>{item.products_used_label}</Text>
|
|
56
|
+
{item.products.map((item, index) => {
|
|
57
|
+
return (
|
|
58
|
+
<View key={index} style={{ flexDirection: 'row' }}>
|
|
59
|
+
<Image
|
|
60
|
+
key={index}
|
|
61
|
+
source={{
|
|
62
|
+
uri: item.product_imageConnection?.edges[0]?.node
|
|
63
|
+
?.url,
|
|
64
|
+
}}
|
|
65
|
+
style={styles.productPhoto}
|
|
66
|
+
resizeMode="contain"
|
|
67
|
+
/>
|
|
68
|
+
<View style={styles.productName}>
|
|
69
|
+
<Text style={styles.itemTextProduct}>
|
|
70
|
+
{item.product_category}
|
|
71
|
+
</Text>
|
|
72
|
+
<Text style={styles.itemTextProduct}>
|
|
73
|
+
{item.product_name}
|
|
74
|
+
</Text>
|
|
75
|
+
</View>
|
|
76
|
+
</View>
|
|
77
|
+
);
|
|
78
|
+
})}
|
|
79
|
+
</View>
|
|
80
|
+
</View>
|
|
81
|
+
{item.steps.map((item, index) => {
|
|
82
|
+
return (
|
|
94
83
|
<View
|
|
95
|
-
|
|
84
|
+
key={index}
|
|
85
|
+
style={{
|
|
86
|
+
marginHorizontal: 20,
|
|
87
|
+
marginBottom: 15,
|
|
88
|
+
}}
|
|
96
89
|
>
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
<View style={styles[`${item.style}TextContainer`]}>
|
|
107
|
-
<Text style={styles.itemTextStepDescription}>
|
|
108
|
-
{item.step_description}
|
|
90
|
+
<View
|
|
91
|
+
style={{
|
|
92
|
+
flexDirection: 'row',
|
|
93
|
+
marginVertical: 10,
|
|
94
|
+
}}
|
|
95
|
+
>
|
|
96
|
+
<Text style={styles.itemTextTitleIndex}>{index + 1}</Text>
|
|
97
|
+
<Text style={styles.itemTextStepTitle}>
|
|
98
|
+
{item.step_title}
|
|
109
99
|
</Text>
|
|
110
|
-
<Text style={styles.itemTextStepSubDescription}>
|
|
111
|
-
{item.step_sub_description}
|
|
112
|
-
</Text>
|
|
113
|
-
{item.style === 'LumiSpaIO' && (
|
|
114
|
-
<Pressable style={styles.textLumiSpaTreatmentContainer}>
|
|
115
|
-
<Text style={styles.textLumiSpaTreatment}>
|
|
116
|
-
{item.image_title}
|
|
117
|
-
</Text>
|
|
118
|
-
</Pressable>
|
|
119
|
-
)}
|
|
120
100
|
</View>
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
101
|
+
<View
|
|
102
|
+
style={styles[`${item.style ? item.style : 'Container'}`]}
|
|
103
|
+
>
|
|
104
|
+
{(item.style === 'Image' || item.style == 'LumiSpaIO') && (
|
|
105
|
+
<Image
|
|
106
|
+
source={{
|
|
107
|
+
uri: item.imageConnection?.edges[0]?.node?.url,
|
|
108
|
+
}}
|
|
109
|
+
style={styles.stepImagePhoto}
|
|
110
|
+
resizeMode="contain"
|
|
111
|
+
/>
|
|
112
|
+
)}
|
|
113
|
+
<View
|
|
114
|
+
style={
|
|
115
|
+
styles[
|
|
116
|
+
`${
|
|
117
|
+
item.style
|
|
118
|
+
? `${item.style}TextContainer`
|
|
119
|
+
: 'TextContainer'
|
|
120
|
+
}`
|
|
121
|
+
]
|
|
122
|
+
}
|
|
123
|
+
>
|
|
124
|
+
<Text style={styles.itemTextStepDescription}>
|
|
125
|
+
{item.step_description}
|
|
134
126
|
</Text>
|
|
135
|
-
<Text style={styles.
|
|
136
|
-
{item.
|
|
127
|
+
<Text style={styles.itemTextStepSubDescription}>
|
|
128
|
+
{item.step_sub_description}
|
|
137
129
|
</Text>
|
|
130
|
+
{item.style === 'LumiSpaIO' && (
|
|
131
|
+
<Pressable style={styles.textLumiSpaTreatmentContainer}>
|
|
132
|
+
<Text style={styles.textLumiSpaTreatment}>
|
|
133
|
+
{item.image_title}
|
|
134
|
+
</Text>
|
|
135
|
+
</Pressable>
|
|
136
|
+
)}
|
|
138
137
|
</View>
|
|
139
138
|
</View>
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
139
|
+
{item.style === 'Product' && (
|
|
140
|
+
<View style={styles.stepProductContainer}>
|
|
141
|
+
<Image
|
|
142
|
+
source={{
|
|
143
|
+
uri: item.imageConnection?.edges[0]?.node?.url,
|
|
144
|
+
}}
|
|
145
|
+
style={styles.stepProductPhoto}
|
|
146
|
+
resizeMode="contain"
|
|
147
|
+
/>
|
|
148
|
+
<View style={styles.productName}>
|
|
149
|
+
<Text style={styles.itemTextStepProduct}>
|
|
150
|
+
{item.image_title}
|
|
151
|
+
</Text>
|
|
152
|
+
<Text style={styles.itemTextStepProduct}>
|
|
153
|
+
{item.image_description}
|
|
154
|
+
</Text>
|
|
155
|
+
</View>
|
|
156
|
+
</View>
|
|
157
|
+
)}
|
|
158
|
+
</View>
|
|
159
|
+
);
|
|
160
|
+
})}
|
|
161
|
+
</>
|
|
162
|
+
)}
|
|
145
163
|
</ScrollView>
|
|
146
164
|
</SafeAreaView>
|
|
147
165
|
);
|
|
@@ -246,7 +264,6 @@ const styles = StyleSheet.create({
|
|
|
246
264
|
height: 40,
|
|
247
265
|
borderRadius: 50,
|
|
248
266
|
borderColor: '#EDEDED',
|
|
249
|
-
borderStyle: 'solid',
|
|
250
267
|
borderWidth: 1,
|
|
251
268
|
},
|
|
252
269
|
itemTextStepProduct: {
|
package/src/index.tsx
CHANGED
|
@@ -47,8 +47,10 @@ export const FETCH_ROUTINES_PAGE = gql`
|
|
|
47
47
|
}
|
|
48
48
|
products_used_label
|
|
49
49
|
routine_title
|
|
50
|
+
routine_subtitle
|
|
50
51
|
routines_description
|
|
51
52
|
routine_step_label
|
|
53
|
+
reference
|
|
52
54
|
routine_imageConnection {
|
|
53
55
|
edges {
|
|
54
56
|
node {
|
|
@@ -77,7 +79,7 @@ export const FETCH_ROUTINES_PAGE = gql`
|
|
|
77
79
|
}
|
|
78
80
|
`;
|
|
79
81
|
|
|
80
|
-
const ListItem = ({ item }) => {
|
|
82
|
+
const ListItem = ({ item, index }) => {
|
|
81
83
|
const navigation = useNavigation();
|
|
82
84
|
const handleOnPress = () => {
|
|
83
85
|
navigation.navigate('RoutineDetails' as never, item as never);
|
|
@@ -87,6 +89,7 @@ const ListItem = ({ item }) => {
|
|
|
87
89
|
<TouchableOpacity onPress={handleOnPress}>
|
|
88
90
|
<View>
|
|
89
91
|
<Image
|
|
92
|
+
{...accessibility(`list-item-${index}`)}
|
|
90
93
|
source={{
|
|
91
94
|
uri: item.routine_imageConnection?.edges[0]?.node?.url,
|
|
92
95
|
}}
|
|
@@ -95,7 +98,12 @@ const ListItem = ({ item }) => {
|
|
|
95
98
|
</View>
|
|
96
99
|
<View style={styles.itemTextContainer}>
|
|
97
100
|
<View style={styles.itemTitleContainer}>
|
|
98
|
-
<Text
|
|
101
|
+
<Text
|
|
102
|
+
{...accessibility(`list-item-title-${index}`)}
|
|
103
|
+
style={styles.itemTextTitle}
|
|
104
|
+
>
|
|
105
|
+
{item.routine_title}
|
|
106
|
+
</Text>
|
|
99
107
|
<Text style={styles.itemTextSteps}>
|
|
100
108
|
{item.steps.length} {item.routine_step_label}
|
|
101
109
|
</Text>
|
|
@@ -108,6 +116,7 @@ const ListItem = ({ item }) => {
|
|
|
108
116
|
renderItem={({ item, index }) => (
|
|
109
117
|
<Image
|
|
110
118
|
key={index}
|
|
119
|
+
{...accessibility(`list-item-product-${index}`)}
|
|
111
120
|
source={{
|
|
112
121
|
uri: item.product_imageConnection?.edges[0]?.node?.url,
|
|
113
122
|
}}
|
|
@@ -180,7 +189,7 @@ const Routines = () => {
|
|
|
180
189
|
<FlatList
|
|
181
190
|
data={routinesPageData.routines}
|
|
182
191
|
renderItem={({ item, index }) => (
|
|
183
|
-
<ListItem item={item} key={index} />
|
|
192
|
+
<ListItem index={index} item={item} key={index} />
|
|
184
193
|
)}
|
|
185
194
|
showsHorizontalScrollIndicator={false}
|
|
186
195
|
contentContainerStyle={{ paddingHorizontal: 15 }}
|
|
@@ -192,7 +201,8 @@ const Routines = () => {
|
|
|
192
201
|
);
|
|
193
202
|
};
|
|
194
203
|
|
|
195
|
-
function RoutineStack(
|
|
204
|
+
function RoutineStack() {
|
|
205
|
+
const navigation = useNavigation();
|
|
196
206
|
useEffect(() => {
|
|
197
207
|
const unsubscribe = navigation.addListener('focus', () => {
|
|
198
208
|
Logger.info('User navigated to the RoutineStack page.');
|
|
@@ -201,7 +211,7 @@ function RoutineStack({ navigation }) {
|
|
|
201
211
|
}, [navigation]);
|
|
202
212
|
|
|
203
213
|
return (
|
|
204
|
-
<Stack.Navigator>
|
|
214
|
+
<Stack.Navigator initialRouteName="Routines">
|
|
205
215
|
<Stack.Screen
|
|
206
216
|
name="Routines"
|
|
207
217
|
component={Routines}
|
|
@@ -263,7 +273,6 @@ const styles = StyleSheet.create({
|
|
|
263
273
|
height: 40,
|
|
264
274
|
borderRadius: 50,
|
|
265
275
|
borderColor: '#EDEDED',
|
|
266
|
-
borderStyle: 'solid',
|
|
267
276
|
borderWidth: 1,
|
|
268
277
|
},
|
|
269
278
|
itemTitleContainer: {
|