@whatmore-repo/whatmore-reactnative-sdk 1.0.11 → 1.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/commands.txt +45 -38
  2. package/index.js +31 -31
  3. package/package.json +29 -29
  4. package/pre-integration-steps.txt +2 -2
  5. package/src/api/cart-commands/CartCommands.js +26 -26
  6. package/src/api/navigation-commands/NavigationCommands.js +16 -16
  7. package/src/api/partners/PartnerUtils.js +10 -10
  8. package/src/api/partners/appbrew/AppbrewCommands.js +26 -26
  9. package/src/api/product-details-commands/ProductDetailsCommands.js +389 -389
  10. package/src/api/shopify-commands/ShopifyCommands.js +28 -28
  11. package/src/api/whatmore-backend/WhatmoreMetricCommands.js +159 -159
  12. package/src/components/EventClickComponent.js +30 -30
  13. package/src/components/EventShoppingOverlay.js +74 -74
  14. package/src/components/EventShoppingView.js +31 -31
  15. package/src/components/EventsVerticalSwipeView.js +59 -59
  16. package/src/components/EventsVerticalSwipeViewNoModal.js +51 -51
  17. package/src/components/WhatmoreRootComponent.js +88 -88
  18. package/src/components/commons/AppMuteUnmuteIcon.js +35 -35
  19. package/src/components/cta-buttons/AddToCartButton.jsx +345 -345
  20. package/src/components/product-tiles/ProductPriceBadge.js +51 -51
  21. package/src/components/product-tiles/ProductTileV1.js +204 -204
  22. package/src/components/product-tiles/SelectVariantComponent.js +116 -116
  23. package/src/components/video-player/AppVideoPlayer.js +25 -25
  24. package/src/constants/AppGlobalVars.js +12 -12
  25. package/src/globals/useAppState_APP.js +17 -17
  26. package/src/hooks/useAddToCartStates.js +194 -194
  27. package/src/{components/icons → icons}/icon-components/CartIcon.jsx +26 -26
  28. package/src/{components/icons → icons}/icon-components/LoadingIcon.jsx +17 -17
  29. package/src/{components/icons → icons}/icon-components/MuteIcon.jsx +22 -22
  30. package/src/{components/icons → icons}/icon-components/PlusIcon.jsx +26 -26
  31. package/src/{components/icons → icons}/icon-components/UnmuteIcon.jsx +22 -22
  32. package/src/{components/icons → icons}/svg-utils.txt +6 -6
  33. package/src/utils/ColorUtils.js +39 -39
  34. package/src/utils/EventSanityUtils.js +21 -21
  35. package/src/utils/PriceUtils.js +27 -27
  36. package/src/utils/ProductUtils.js +5 -5
package/commands.txt CHANGED
@@ -1,39 +1,46 @@
1
- ## nvm
2
- nvm install ^16.0.0
3
- nvm list
4
- nvm use 16.0.0
5
- nvm use 14.19.3
6
-
7
- ## npm install
8
- rmdir /s /q node_modules
9
- npm cache clean --force
10
- npm install | npm install --legacy-peer-deps
11
- npm link ./whatmore-reactnative-sdk
12
-
13
- ## Starting android emulator
14
- cd C:\Users\shyam\AppData\Local\Android\Sdk\emulator
15
- emulator -list-avds
16
- emulator -avd Pixel_6_API_33 -wipe-data
17
- emulator -avd Pixel_6_API_33
18
- adb devices -> make sure the emulator is not offline
19
- adb start-server
20
- adb kill-server
21
-
22
- ## starting server
23
- npm start --reset-cache
24
- npm run android
25
-
26
- ## publishing npm package
27
- npm publish --access public
28
-
29
- # Windows
30
- ## Stop process at port
31
- netstat -ano | findstr :19000
32
- taskkill /PID 4584 /F
33
-
34
- ## Recursively delete folder
35
- rmdir /s /q folder-name
36
- del /F /Q package-lock.json
37
-
38
- ## Link node_modules from local
1
+ ## starting server
2
+ npm start --reset-cache
3
+ npm run android
4
+
5
+ ## nvm usage
6
+ nvm install ^16.0.0
7
+ nvm list
8
+ nvm use 16.0.0
9
+ nvm use 14.19.3
10
+
11
+ ## Starting android emulator
12
+ cd C:\Users\shyam\AppData\Local\Android\Sdk\emulator
13
+ emulator -list-avds
14
+ emulator -avd Pixel_6_API_33
15
+ emulator -avd Nexus_5X_API_33
16
+
17
+ ## Starting adb
18
+ set ADB_TRACE=1
19
+ adb start-server
20
+ adb kill-server
21
+ adb devices
22
+
23
+
24
+ ## publishing npm package
25
+ npm publish --access public
26
+
27
+
28
+ ## Clear cache and reinstall
29
+ rmdir /s /q node_modules
30
+ npm cache clean --force
31
+ npm install
32
+ npm link ./whatmore-reactnative-sdk
33
+
34
+
35
+ # Windows
36
+ ## Stop process at port
37
+ netstat -ano | findstr :19000
38
+ taskkill /PID 4584 /F
39
+
40
+ ## Recursively delete folder
41
+ rmdir /s /q folder-name
42
+ del /F /Q package-lock.json
43
+
44
+
45
+ ## Link node_modules from local
39
46
  npm link ./whatmore-reactnative-sdk # solves no module found errors
package/index.js CHANGED
@@ -1,31 +1,31 @@
1
- import { useEffect } from "react";
2
- import WhatmoreRootComponent from "./src/components/WhatmoreRootComponent.js";
3
- import { setGlobalState } from "./src/globals/useAppState_APP.js";
4
- import { View } from "react-native";
5
-
6
- export function WhatmoreBase(props){
7
-
8
- useEffect(() => {
9
- setGlobalState('whatmoreShopId', props.shopId);
10
- setGlobalState('brandDomainContext', props.domainContext);
11
- setGlobalState('commandsObject', props.commandsObject);
12
- setGlobalState('template', props.template);
13
- setGlobalState('modalUsed', props.modalUsed);
14
- setGlobalState('activateMock', props.activateMock);
15
- }, []);
16
-
17
- // return (
18
- // <View style={{
19
- // width: '100%', height: '100%',
20
- // backgroundColor: 'red'
21
- // }}>
22
-
23
- // </View>
24
- // );
25
-
26
- return (
27
- <WhatmoreRootComponent shopId={props.shopId} />
28
- );
29
- }
30
-
31
-
1
+ import { useEffect } from "react";
2
+ import WhatmoreRootComponent from "./src/components/WhatmoreRootComponent.js";
3
+ import { setGlobalState } from "./src/globals/useAppState_APP.js";
4
+ import { View } from "react-native";
5
+
6
+ export function WhatmoreBase(props){
7
+
8
+ useEffect(() => {
9
+ setGlobalState('whatmoreShopId', props.shopId);
10
+ setGlobalState('brandDomainContext', props.domainContext);
11
+ setGlobalState('commandsObject', props.commandsObject);
12
+ setGlobalState('template', props.template);
13
+ setGlobalState('modalUsed', props.modalUsed);
14
+ setGlobalState('activateMock', props.activateMock);
15
+ }, []);
16
+
17
+ // return (
18
+ // <View style={{
19
+ // width: '100%', height: '100%',
20
+ // backgroundColor: 'red'
21
+ // }}>
22
+
23
+ // </View>
24
+ // );
25
+
26
+ return (
27
+ <WhatmoreRootComponent shopId={props.shopId} />
28
+ );
29
+ }
30
+
31
+
package/package.json CHANGED
@@ -1,29 +1,29 @@
1
- {
2
- "name": "@whatmore-repo/whatmore-reactnative-sdk",
3
- "version": "1.0.11",
4
- "description": "",
5
- "private": false,
6
- "main": "index.js",
7
- "scripts": {
8
- "test": "echo \"Error: no test specified\" && exit 1"
9
- },
10
- "keywords": [
11
- "whatmore"
12
- ],
13
- "dependencies": {
14
- "currency-symbol-map": "^5.1.0",
15
- "react": "18.2.0",
16
- "react-hooks-global-state": "^2.1.0",
17
- "react-native": "0.72.3",
18
- "react-native-animatable": "^1.3.3",
19
- "react-native-intersection-observer": "^0.0.9",
20
- "react-native-svg": "^13.10.0",
21
- "react-native-swiper": "^1.6.0",
22
- "react-native-video": "^5.2.1"
23
- },
24
- "devDependencies": {
25
- "@babel/core": "^7.20.0"
26
- },
27
- "author": "Shyam",
28
- "license": "ISC"
29
- }
1
+ {
2
+ "name": "@whatmore-repo/whatmore-reactnative-sdk",
3
+ "version": "1.0.12",
4
+ "description": "",
5
+ "private": false,
6
+ "main": "index.js",
7
+ "scripts": {
8
+ "test": "echo \"Error: no test specified\" && exit 1"
9
+ },
10
+ "keywords": [
11
+ "whatmore"
12
+ ],
13
+ "dependencies": {
14
+ "currency-symbol-map": "^5.1.0",
15
+ "react": "18.2.0",
16
+ "react-hooks-global-state": "^2.1.0",
17
+ "react-native": "0.72.3",
18
+ "react-native-animatable": "^1.3.3",
19
+ "react-native-intersection-observer": "^0.0.9",
20
+ "react-native-svg": "^13.10.0",
21
+ "react-native-swiper": "^1.6.0",
22
+ "react-native-video": "^5.2.1"
23
+ },
24
+ "devDependencies": {
25
+ "@babel/core": "^7.20.0"
26
+ },
27
+ "author": "Shyam",
28
+ "license": "ISC"
29
+ }
@@ -1,3 +1,3 @@
1
- 1. Libraries for react-native linking
2
- "react-native-svg": "^13.10.0",
1
+ 1. Libraries for react-native linking
2
+ "react-native-svg": "^13.10.0",
3
3
  "react-native-video": "^5.2.1"
@@ -1,26 +1,26 @@
1
- import { getGlobalState } from "../../globals/useAppState_APP";
2
- import { isAppBrew, isAppMaker, isPlobalApps } from "../partners/PartnerUtils.js";
3
- import { appbrewAddToCartCommand } from "../partners/appbrew/AppbrewCommands";
4
-
5
- /**
6
- *
7
- * @param {*} variantId
8
- * @param {*} itemQuantity
9
- * @param {*} product
10
- * @param {*} brandDomainContext
11
- * @param {*} whatmoreShopId
12
- * @returns Promise => true if command is executed successfully, false otherwise
13
- */
14
- export async function addToCartCommand(variantId, itemQuantity, product, brandDomainContext, whatmoreShopId){
15
- const _ACTIVATE_MOCK_ = getGlobalState("activateMock");
16
-
17
- if(_ACTIVATE_MOCK_){
18
- return Promise.resolve(true);
19
- }
20
-
21
- if(isAppBrew(brandDomainContext)){
22
- return await appbrewAddToCartCommand(variantId, itemQuantity, product, whatmoreShopId);
23
- }
24
-
25
- return Promise.resolve(false);
26
- }
1
+ import { getGlobalState } from "../../globals/useAppState_APP";
2
+ import { isAppBrew, isAppMaker, isPlobalApps } from "../partners/PartnerUtils.js";
3
+ import { appbrewAddToCartCommand } from "../partners/appbrew/AppbrewCommands";
4
+
5
+ /**
6
+ *
7
+ * @param {*} variantId
8
+ * @param {*} itemQuantity
9
+ * @param {*} product
10
+ * @param {*} brandDomainContext
11
+ * @param {*} whatmoreShopId
12
+ * @returns Promise => true if command is executed successfully, false otherwise
13
+ */
14
+ export async function addToCartCommand(variantId, itemQuantity, product, brandDomainContext, whatmoreShopId){
15
+ const _ACTIVATE_MOCK_ = getGlobalState("activateMock");
16
+
17
+ if(_ACTIVATE_MOCK_){
18
+ return Promise.resolve(true);
19
+ }
20
+
21
+ if(isAppBrew(brandDomainContext)){
22
+ return await appbrewAddToCartCommand(variantId, itemQuantity, product, whatmoreShopId);
23
+ }
24
+
25
+ return Promise.resolve(false);
26
+ }
@@ -1,17 +1,17 @@
1
-
2
- import { getGlobalState } from "../../globals/useAppState_APP.js";
3
- import { isAppBrew, isAppMaker, isPlobalApps } from "../partners/PartnerUtils.js";
4
- import { appbrewNavigateToProductPageCommand } from "../partners/appbrew/AppbrewCommands.js";
5
-
6
- export async function navigateToProductPage(product, brandDomainContext, whatmoreShopId) {
7
- const _ACTIVATE_MOCK_ = getGlobalState("activateMock");
8
- if (_ACTIVATE_MOCK_) {
9
- return Promise.resolve(true);
10
- }
11
-
12
- if(isAppBrew(brandDomainContext)){
13
- return await appbrewNavigateToProductPageCommand(product, whatmoreShopId);
14
- }
15
-
16
- return Promise.resolve(false);
1
+
2
+ import { getGlobalState } from "../../globals/useAppState_APP.js";
3
+ import { isAppBrew, isAppMaker, isPlobalApps } from "../partners/PartnerUtils.js";
4
+ import { appbrewNavigateToProductPageCommand } from "../partners/appbrew/AppbrewCommands.js";
5
+
6
+ export async function navigateToProductPage(product, brandDomainContext, whatmoreShopId) {
7
+ const _ACTIVATE_MOCK_ = getGlobalState("activateMock");
8
+ if (_ACTIVATE_MOCK_) {
9
+ return Promise.resolve(true);
10
+ }
11
+
12
+ if(isAppBrew(brandDomainContext)){
13
+ return await appbrewNavigateToProductPageCommand(product, whatmoreShopId);
14
+ }
15
+
16
+ return Promise.resolve(false);
17
17
  }
@@ -1,11 +1,11 @@
1
- export function isAppBrew(brandDomainContext){
2
- return brandDomainContext == "appbrew";
3
- }
4
-
5
- export function isAppMaker(brandDomainContext){
6
- return brandDomainContext == "appmaker";
7
- }
8
-
9
- export function isPlobalApps(brandDomainContext){
10
- return brandDomainContext == "plobalapps";
1
+ export function isAppBrew(brandDomainContext){
2
+ return brandDomainContext == "appbrew";
3
+ }
4
+
5
+ export function isAppMaker(brandDomainContext){
6
+ return brandDomainContext == "appmaker";
7
+ }
8
+
9
+ export function isPlobalApps(brandDomainContext){
10
+ return brandDomainContext == "plobalapps";
11
11
  }
@@ -1,27 +1,27 @@
1
- import { getGlobalState } from "../../../globals/useAppState_APP";
2
- import { getProductHandle } from "../../../utils/ProductUtils";
3
-
4
-
5
- export async function appbrewNavigateToProductPageCommand(product, whatmoreShopId){
6
- const appbrewCommands = getGlobalState("commandsObject");
7
- if(appbrewCommands && appbrewCommands.navigate){
8
- appbrewCommands.navigate({
9
- kind: 'screen',
10
- screenId: 'product',
11
- options: {
12
- productHandle: getProductHandle(product)
13
- }
14
- });
15
- return Promise.resolve(true);
16
- }
17
- return Promise.resolve(false);
18
- }
19
-
20
- export async function appbrewAddToCartCommand(productVariantId, itemQuantity, product, whatmoreShopId){
21
- const appbrewCommands = getGlobalState("commandsObject");
22
- if(appbrewCommands && appbrewCommands.addToCart){
23
- appbrewCommands.addToCart(productVariantId,itemQuantity);
24
- return Promise.resolve(true);
25
- }
26
- return Promise.resolve(false);
1
+ import { getGlobalState } from "../../../globals/useAppState_APP";
2
+ import { getProductHandle } from "../../../utils/ProductUtils";
3
+
4
+
5
+ export async function appbrewNavigateToProductPageCommand(product, whatmoreShopId){
6
+ const appbrewCommands = getGlobalState("commandsObject");
7
+ if(appbrewCommands && appbrewCommands.navigate){
8
+ appbrewCommands.navigate({
9
+ kind: 'screen',
10
+ screenId: 'product',
11
+ options: {
12
+ productHandle: getProductHandle(product)
13
+ }
14
+ });
15
+ return Promise.resolve(true);
16
+ }
17
+ return Promise.resolve(false);
18
+ }
19
+
20
+ export async function appbrewAddToCartCommand(productVariantId, itemQuantity, product, whatmoreShopId){
21
+ const appbrewCommands = getGlobalState("commandsObject");
22
+ if(appbrewCommands && appbrewCommands.addToCart){
23
+ appbrewCommands.addToCart(productVariantId,itemQuantity);
24
+ return Promise.resolve(true);
25
+ }
26
+ return Promise.resolve(false);
27
27
  }