react-native-unit-components 0.1.0 → 1.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/README.md +157 -2
- package/android/src/main/java/com/unitreactnativecomponents/UnitAddToWalletButtonViewManager.kt +27 -0
- package/android/src/main/java/com/unitreactnativecomponents/UnitReactNativeComponentsEvent.kt +21 -0
- package/android/src/main/java/com/unitreactnativecomponents/UnitReactNativeComponentsPackage.kt +2 -1
- package/android/src/main/java/com/unitreactnativecomponents/visapresentation/UNGooglePayView.kt +197 -0
- package/android/src/main/res/drawable/ic_launcher_background.xml +170 -0
- package/android/src/main/res/drawable/un_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable/un_black_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable/un_black_googlepay_button_background.xml +6 -0
- package/android/src/main/res/drawable/un_black_googlepay_button_background_image.9.png +0 -0
- package/android/src/main/res/drawable/un_black_googlepay_button_content.xml +48 -0
- package/android/src/main/res/drawable/un_black_googlepay_button_no_shadow_background.xml +6 -0
- package/android/src/main/res/drawable/un_black_googlepay_button_no_shadow_background_image.9.png +0 -0
- package/android/src/main/res/drawable/un_black_googlepay_button_overlay.xml +12 -0
- package/android/src/main/res/drawable/un_border.xml +6 -0
- package/android/src/main/res/drawable/un_condensed_googlepay.xml +27 -0
- package/android/src/main/res/drawable/un_googlepay_button_background.xml +18 -0
- package/android/src/main/res/drawable/un_googlepay_button_background_image.9.png +0 -0
- package/android/src/main/res/drawable/un_googlepay_button_background_image_focused.9.png +0 -0
- package/android/src/main/res/drawable/un_googlepay_button_background_image_pressed.9.png +0 -0
- package/android/src/main/res/drawable/un_googlepay_button_content.xml +48 -0
- package/android/src/main/res/drawable/un_googlepay_button_no_shadow_background.xml +18 -0
- package/android/src/main/res/drawable/un_googlepay_button_no_shadow_background_image.9.png +0 -0
- package/android/src/main/res/drawable/un_googlepay_button_no_shadow_background_image_focused.9.png +0 -0
- package/android/src/main/res/drawable/un_googlepay_button_no_shadow_background_image_pressed.9.png +0 -0
- package/android/src/main/res/drawable/un_googlepay_button_overlay.xml +11 -0
- package/android/src/main/res/drawable/un_ic_launcher_foreground.xml +30 -0
- package/android/src/main/res/drawable/un_ic_unit_logo.xml +25 -0
- package/android/src/main/res/drawable/un_ic_visa.xml +13 -0
- package/android/src/main/res/drawable-bg/un_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-bg/un_black_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-ca/un_add_to_googlepay_button_content.xml +30 -0
- package/android/src/main/res/drawable-ca/un_black_add_to_googlepay_button_content.xml +30 -0
- package/android/src/main/res/drawable-cs/un_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-cs/un_black_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-da/un_add_to_googlepay_button_content.xml +30 -0
- package/android/src/main/res/drawable-da/un_black_add_to_googlepay_button_content.xml +30 -0
- package/android/src/main/res/drawable-de/un_add_to_googlepay_button_content.xml +60 -0
- package/android/src/main/res/drawable-de/un_black_add_to_googlepay_button_content.xml +60 -0
- package/android/src/main/res/drawable-el/un_add_to_googlepay_button_content.xml +67 -0
- package/android/src/main/res/drawable-el/un_black_add_to_googlepay_button_content.xml +67 -0
- package/android/src/main/res/drawable-es/un_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-es/un_black_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-et/un_add_to_googlepay_button_content.xml +64 -0
- package/android/src/main/res/drawable-et/un_black_add_to_googlepay_button_content.xml +64 -0
- package/android/src/main/res/drawable-fi/un_add_to_googlepay_button_content.xml +39 -0
- package/android/src/main/res/drawable-fi/un_black_add_to_googlepay_button_content.xml +39 -0
- package/android/src/main/res/drawable-fr/un_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-fr/un_black_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-hr/un_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-hr/un_black_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-hu/un_add_to_googlepay_button_content.xml +64 -0
- package/android/src/main/res/drawable-hu/un_black_add_to_googlepay_button_content.xml +64 -0
- package/android/src/main/res/drawable-in/un_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-in/un_black_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-it/un_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-it/un_black_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-iw/un_add_to_googlepay_button_content.xml +41 -0
- package/android/src/main/res/drawable-iw/un_black_add_to_googlepay_button_content.xml +41 -0
- package/android/src/main/res/drawable-ja/un_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-ja/un_black_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-ko/un_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-ko/un_black_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-lt/un_add_to_googlepay_button_content.xml +70 -0
- package/android/src/main/res/drawable-lt/un_black_add_to_googlepay_button_content.xml +70 -0
- package/android/src/main/res/drawable-lv/un_add_to_googlepay_button_content.xml +61 -0
- package/android/src/main/res/drawable-lv/un_black_add_to_googlepay_button_content.xml +61 -0
- package/android/src/main/res/drawable-ms/un_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-ms/un_black_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-nb/un_add_to_googlepay_button_content.xml +30 -0
- package/android/src/main/res/drawable-nb/un_black_add_to_googlepay_button_content.xml +30 -0
- package/android/src/main/res/drawable-nl/un_add_to_googlepay_button_content.xml +58 -0
- package/android/src/main/res/drawable-nl/un_black_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-pl/un_add_to_googlepay_button_content.xml +30 -0
- package/android/src/main/res/drawable-pl/un_black_add_to_googlepay_button_content.xml +30 -0
- package/android/src/main/res/drawable-pt/un_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-pt/un_black_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-ro/un_add_to_googlepay_button_content.xml +58 -0
- package/android/src/main/res/drawable-ro/un_black_add_to_googlepay_button_content.xml +58 -0
- package/android/src/main/res/drawable-ru/un_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-ru/un_black_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-sk/un_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-sk/un_black_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-sl/un_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-sl/un_black_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-sr/un_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-sr/un_black_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-sv/un_add_to_googlepay_button_content.xml +30 -0
- package/android/src/main/res/drawable-sv/un_black_add_to_googlepay_button_content.xml +30 -0
- package/android/src/main/res/drawable-th/un_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-th/un_black_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-tr/un_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-tr/un_black_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-uk/un_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-uk/un_black_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-v21/un_black_googlepay_button_background.xml +7 -0
- package/android/src/main/res/drawable-v21/un_black_googlepay_button_background_image.9.png +0 -0
- package/android/src/main/res/drawable-v21/un_black_googlepay_button_no_shadow_background.xml +7 -0
- package/android/src/main/res/drawable-v21/un_black_googlepay_button_no_shadow_background_image.9.png +0 -0
- package/android/src/main/res/drawable-v24/ic_launcher_background.xml +170 -0
- package/android/src/main/res/drawable-v24/un_border.xml +6 -0
- package/android/src/main/res/drawable-v24/un_ic_launcher_foreground.xml +30 -0
- package/android/src/main/res/drawable-v24/un_ic_unit_logo.xml +25 -0
- package/android/src/main/res/drawable-v24/un_ic_visa.xml +13 -0
- package/android/src/main/res/drawable-zh/un_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/drawable-zh/un_black_add_to_googlepay_button_content.xml +54 -0
- package/android/src/main/res/layout/un_black_add_to_googlepay_button.xml +32 -0
- package/android/src/main/res/layout/un_view_google_push_provisioning.xml +45 -0
- package/android/src/main/res/layout/un_white_add_to_googlepay_button.xml +31 -0
- package/android/src/main/res/layout/un_white_add_to_googlepay_button_no_shadow.xml +31 -0
- package/android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +5 -0
- package/android/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +5 -0
- package/android/src/main/res/mipmap-hdpi/ic_launcher.webp +0 -0
- package/android/src/main/res/mipmap-hdpi/ic_launcher_round.webp +0 -0
- package/android/src/main/res/mipmap-mdpi/ic_launcher.webp +0 -0
- package/android/src/main/res/mipmap-mdpi/ic_launcher_round.webp +0 -0
- package/android/src/main/res/mipmap-xhdpi/black_googlepay_button_background_image.9.png +0 -0
- package/android/src/main/res/mipmap-xhdpi/black_googlepay_button_no_shadow_background_image.9.png +0 -0
- package/android/src/main/res/mipmap-xhdpi/googlepay_button_background_image.9.png +0 -0
- package/android/src/main/res/mipmap-xhdpi/googlepay_button_background_image_focused.9.png +0 -0
- package/android/src/main/res/mipmap-xhdpi/googlepay_button_background_image_pressed.9.png +0 -0
- package/android/src/main/res/mipmap-xhdpi/googlepay_button_no_shadow_background_image_focused.9.png +0 -0
- package/android/src/main/res/mipmap-xhdpi/googlepay_button_no_shadow_background_image_pressed.9.png +0 -0
- package/android/src/main/res/mipmap-xhdpi/ic_launcher.webp +0 -0
- package/android/src/main/res/mipmap-xhdpi/ic_launcher_round.webp +0 -0
- package/android/src/main/res/mipmap-xhdpi/white_googlepay_button_no_shadow_background_image.9.png +0 -0
- package/android/src/main/res/mipmap-xxhdpi/black_googlepay_button_background_image.9.png +0 -0
- package/android/src/main/res/mipmap-xxhdpi/black_googlepay_button_no_shadow_background_image.9.png +0 -0
- package/android/src/main/res/mipmap-xxhdpi/googlepay_button_background_image.9.png +0 -0
- package/android/src/main/res/mipmap-xxhdpi/googlepay_button_background_image_focused.9.png +0 -0
- package/android/src/main/res/mipmap-xxhdpi/googlepay_button_background_image_pressed.9.png +0 -0
- package/android/src/main/res/mipmap-xxhdpi/googlepay_button_no_shadow_background_image.9.png +0 -0
- package/android/src/main/res/mipmap-xxhdpi/googlepay_button_no_shadow_background_image_focused.9.png +0 -0
- package/android/src/main/res/mipmap-xxhdpi/googlepay_button_no_shadow_background_image_pressed.9.png +0 -0
- package/android/src/main/res/mipmap-xxhdpi/ic_launcher.webp +0 -0
- package/android/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp +0 -0
- package/android/src/main/res/mipmap-xxxhdpi/black_googlepay_button_background_image.9.png +0 -0
- package/android/src/main/res/mipmap-xxxhdpi/black_googlepay_button_no_shadow_background_image.9.png +0 -0
- package/android/src/main/res/mipmap-xxxhdpi/googlepay_button_background_image.9.png +0 -0
- package/android/src/main/res/mipmap-xxxhdpi/googlepay_button_background_image_focused.9.png +0 -0
- package/android/src/main/res/mipmap-xxxhdpi/googlepay_button_background_image_pressed.9.png +0 -0
- package/android/src/main/res/mipmap-xxxhdpi/googlepay_button_no_shadow_background_image.9.png +0 -0
- package/android/src/main/res/mipmap-xxxhdpi/googlepay_button_no_shadow_background_image_focused.9.png +0 -0
- package/android/src/main/res/mipmap-xxxhdpi/googlepay_button_no_shadow_background_image_pressed.9.png +0 -0
- package/android/src/main/res/mipmap-xxxhdpi/ic_launcher.webp +0 -0
- package/android/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp +0 -0
- package/android/src/main/res/values/colors.xml +14 -0
- package/android/src/main/res/values/googlepay_strings.xml +7 -0
- package/android/src/main/res/values/strings.xml +4 -0
- package/android/src/main/res/values/themes.xml +16 -0
- package/android/src/main/res/values-night/themes.xml +16 -0
- package/ios/UnitReactNativeComponents.xcodeproj/project.pbxproj +8 -8
- package/ios/UnitReactNativeComponentsViewManager.m +3 -2
- package/ios/UnitReactNativeComponentsViewManager.swift +39 -25
- package/lib/commonjs/assets/images/close.png +0 -0
- package/lib/commonjs/assets/images/index.js +16 -0
- package/lib/commonjs/assets/images/index.js.map +1 -0
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js +28 -0
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js.map +1 -0
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js +20 -0
- package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -0
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js +39 -0
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -0
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js +40 -0
- package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js.map +1 -0
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js +9 -0
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js.map +1 -0
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js +195 -0
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -0
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.js +23 -0
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.js.map +1 -0
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js +49 -0
- package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js.map +1 -0
- package/lib/commonjs/components/{Card/CardComponent.js → UNCardComponent/UNCardComponent.js} +42 -46
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.js.map +1 -0
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js +42 -0
- package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js.map +1 -0
- package/lib/commonjs/components/index.js +34 -8
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/custom.d.js +2 -0
- package/lib/commonjs/custom.d.js.map +1 -0
- package/lib/commonjs/helpers/{BottomSheet.js → BottomSheet/BottomSheet.js} +38 -83
- package/lib/commonjs/helpers/BottomSheet/BottomSheet.js.map +1 -0
- package/lib/commonjs/helpers/BottomSheet/BottomSheet.styles.js +82 -0
- package/lib/commonjs/helpers/BottomSheet/BottomSheet.styles.js.map +1 -0
- package/lib/commonjs/helpers/EventBus.js +5 -13
- package/lib/commonjs/helpers/EventBus.js.map +1 -1
- package/lib/commonjs/hooks/listenerToBus.js +31 -0
- package/lib/commonjs/hooks/listenerToBus.js.map +1 -0
- package/lib/commonjs/hooks/useAppStateListener.js +34 -0
- package/lib/commonjs/hooks/useAppStateListener.js.map +1 -0
- package/lib/commonjs/index.js +33 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/messages/nativeMessages/index.js +13 -0
- package/lib/commonjs/messages/nativeMessages/index.js.map +1 -0
- package/lib/commonjs/messages/webMessages/bookPaymentMessage.js +13 -0
- package/lib/commonjs/messages/webMessages/bookPaymentMessage.js.map +1 -0
- package/lib/commonjs/{webComponent → messages}/webMessages/cardMessage.js +1 -1
- package/lib/commonjs/messages/webMessages/cardMessage.js.map +1 -0
- package/lib/commonjs/messages/webMessages/index.js +6 -0
- package/lib/commonjs/messages/webMessages/index.js.map +1 -0
- package/lib/commonjs/{webComponent → messages}/webMessages/pageMessage.js +0 -0
- package/lib/commonjs/messages/webMessages/pageMessage.js.map +1 -0
- package/lib/commonjs/{webComponent → messages}/webMessages/unitMessages.js +0 -0
- package/lib/commonjs/messages/webMessages/unitMessages.js.map +1 -0
- package/lib/commonjs/nativeComponent/UNNativeAddToWalletButton.js +13 -0
- package/lib/commonjs/nativeComponent/UNNativeAddToWalletButton.js.map +1 -0
- package/lib/commonjs/scripts/html/bodyHtml.js +52 -0
- package/lib/commonjs/scripts/html/bodyHtml.js.map +1 -0
- package/lib/commonjs/scripts/html/bodyScript.js +78 -0
- package/lib/commonjs/scripts/html/bodyScript.js.map +1 -0
- package/lib/commonjs/sharedTypes/bookPayment.types.js +6 -0
- package/lib/commonjs/sharedTypes/bookPayment.types.js.map +1 -0
- package/lib/commonjs/sharedTypes/card.types.js +6 -0
- package/lib/commonjs/sharedTypes/card.types.js.map +1 -0
- package/lib/commonjs/sharedTypes/index.js +32 -0
- package/lib/commonjs/sharedTypes/index.js.map +1 -0
- package/lib/commonjs/sharedTypes/types.js +2 -0
- package/lib/commonjs/sharedTypes/types.js.map +1 -0
- package/lib/commonjs/styles/variables.js +17 -0
- package/lib/commonjs/styles/variables.js.map +1 -0
- package/lib/commonjs/unitSdkManager/UnitSdk.api.js +54 -0
- package/lib/commonjs/unitSdkManager/UnitSdk.api.js.map +1 -0
- package/lib/commonjs/unitSdkManager/UnitSdkManager.js +51 -0
- package/lib/commonjs/unitSdkManager/UnitSdkManager.js.map +1 -0
- package/lib/commonjs/webComponent/WebComponent.js +47 -15
- package/lib/commonjs/webComponent/WebComponent.js.map +1 -1
- package/lib/commonjs/webComponent/html.js +22 -45
- package/lib/commonjs/webComponent/html.js.map +1 -1
- package/lib/module/assets/images/close.png +0 -0
- package/lib/module/assets/images/index.js +2 -0
- package/lib/module/assets/images/index.js.map +1 -0
- package/lib/module/components/UNActivityComponent/UNActivityComponent.js +13 -0
- package/lib/module/components/UNActivityComponent/UNActivityComponent.js.map +1 -0
- package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js +10 -0
- package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -0
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js +23 -0
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -0
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js +26 -0
- package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js.map +1 -0
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js +2 -0
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js.map +1 -0
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js +163 -0
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -0
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.js +13 -0
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.js.map +1 -0
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js +29 -0
- package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js.map +1 -0
- package/lib/module/components/UNCardComponent/UNCardComponent.js +65 -0
- package/lib/module/components/UNCardComponent/UNCardComponent.js.map +1 -0
- package/lib/module/components/UNCardComponent/UNCardComponent.utils.js +24 -0
- package/lib/module/components/UNCardComponent/UNCardComponent.utils.js.map +1 -0
- package/lib/module/components/index.js +4 -2
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/custom.d.js +2 -0
- package/lib/module/custom.d.js.map +1 -0
- package/lib/module/helpers/{BottomSheet.js → BottomSheet/BottomSheet.js} +36 -82
- package/lib/module/helpers/BottomSheet/BottomSheet.js.map +1 -0
- package/lib/module/helpers/BottomSheet/BottomSheet.styles.js +70 -0
- package/lib/module/helpers/BottomSheet/BottomSheet.styles.js.map +1 -0
- package/lib/module/helpers/EventBus.js +4 -11
- package/lib/module/helpers/EventBus.js.map +1 -1
- package/lib/module/hooks/listenerToBus.js +18 -0
- package/lib/module/hooks/listenerToBus.js.map +1 -0
- package/lib/module/hooks/useAppStateListener.js +23 -0
- package/lib/module/hooks/useAppStateListener.js.map +1 -0
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/messages/nativeMessages/index.js +6 -0
- package/lib/module/messages/nativeMessages/index.js.map +1 -0
- package/lib/module/messages/webMessages/bookPaymentMessage.js +6 -0
- package/lib/module/messages/webMessages/bookPaymentMessage.js.map +1 -0
- package/lib/module/messages/webMessages/cardMessage.js +6 -0
- package/lib/module/messages/webMessages/cardMessage.js.map +1 -0
- package/lib/module/messages/webMessages/index.js +2 -0
- package/lib/module/messages/webMessages/index.js.map +1 -0
- package/lib/module/{webComponent → messages}/webMessages/pageMessage.js +0 -0
- package/lib/module/messages/webMessages/pageMessage.js.map +1 -0
- package/lib/module/{webComponent → messages}/webMessages/unitMessages.js +0 -0
- package/lib/module/messages/webMessages/unitMessages.js.map +1 -0
- package/lib/module/nativeComponent/UNNativeAddToWalletButton.js +4 -0
- package/lib/module/nativeComponent/UNNativeAddToWalletButton.js.map +1 -0
- package/lib/module/scripts/html/bodyHtml.js +42 -0
- package/lib/module/scripts/html/bodyHtml.js.map +1 -0
- package/lib/module/scripts/html/bodyScript.js +64 -0
- package/lib/module/scripts/html/bodyScript.js.map +1 -0
- package/lib/module/sharedTypes/bookPayment.types.js +2 -0
- package/lib/module/sharedTypes/bookPayment.types.js.map +1 -0
- package/lib/module/sharedTypes/card.types.js +2 -0
- package/lib/module/sharedTypes/card.types.js.map +1 -0
- package/lib/module/sharedTypes/index.js +3 -0
- package/lib/module/sharedTypes/index.js.map +1 -0
- package/lib/module/sharedTypes/types.js +2 -0
- package/lib/module/sharedTypes/types.js.map +1 -0
- package/lib/module/styles/variables.js +10 -0
- package/lib/module/styles/variables.js.map +1 -0
- package/lib/module/unitSdkManager/UnitSdk.api.js +37 -0
- package/lib/module/unitSdkManager/UnitSdk.api.js.map +1 -0
- package/lib/module/unitSdkManager/UnitSdkManager.js +38 -0
- package/lib/module/unitSdkManager/UnitSdkManager.js.map +1 -0
- package/lib/module/webComponent/WebComponent.js +46 -14
- package/lib/module/webComponent/WebComponent.js.map +1 -1
- package/lib/module/webComponent/html.js +18 -44
- package/lib/module/webComponent/html.js.map +1 -1
- package/lib/typescript/assets/images/index.d.ts +1 -0
- package/lib/typescript/components/UNActivityComponent/UNActivityComponent.d.ts +6 -0
- package/lib/typescript/components/UNActivityComponent/UNActivityComponent.utils.d.ts +2 -0
- package/lib/typescript/components/UNBookPaymentComponent/UNBookPaymentComponent.d.ts +11 -0
- package/lib/typescript/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.d.ts +3 -0
- package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.d.ts +1 -0
- package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.d.ts +7 -0
- package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.d.ts +9 -0
- package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.d.ts +5 -0
- package/lib/typescript/components/{Card/CardComponent.d.ts → UNCardComponent/UNCardComponent.d.ts} +3 -1
- package/lib/typescript/components/UNCardComponent/UNCardComponent.utils.d.ts +6 -0
- package/lib/typescript/components/index.d.ts +4 -2
- package/lib/typescript/helpers/{BottomSheet.d.ts → BottomSheet/BottomSheet.d.ts} +3 -0
- package/lib/typescript/helpers/BottomSheet/BottomSheet.styles.d.ts +63 -0
- package/lib/typescript/helpers/EventBus.d.ts +5 -7
- package/lib/typescript/hooks/listenerToBus.d.ts +7 -0
- package/lib/typescript/hooks/useAppStateListener.d.ts +1 -0
- package/lib/typescript/index.d.ts +2 -0
- package/lib/typescript/messages/nativeMessages/index.d.ts +3 -0
- package/lib/typescript/messages/webMessages/bookPaymentMessage.d.ts +8 -0
- package/lib/typescript/{webComponent → messages}/webMessages/cardMessage.d.ts +3 -2
- package/lib/typescript/messages/webMessages/index.d.ts +11 -0
- package/lib/typescript/{webComponent → messages}/webMessages/pageMessage.d.ts +0 -0
- package/lib/typescript/{webComponent → messages}/webMessages/unitMessages.d.ts +0 -0
- package/lib/typescript/nativeComponent/UNNativeAddToWalletButton.d.ts +6 -0
- package/lib/typescript/scripts/html/bodyHtml.d.ts +7 -0
- package/lib/typescript/scripts/html/bodyScript.d.ts +11 -0
- package/lib/typescript/sharedTypes/bookPayment.types.d.ts +26 -0
- package/lib/typescript/sharedTypes/card.types.d.ts +56 -0
- package/lib/typescript/sharedTypes/index.d.ts +2 -0
- package/lib/typescript/sharedTypes/types.d.ts +27 -0
- package/lib/typescript/styles/variables.d.ts +9 -0
- package/lib/typescript/unitSdkManager/UnitSdk.api.d.ts +3 -0
- package/lib/typescript/unitSdkManager/UnitSdkManager.d.ts +15 -0
- package/lib/typescript/webComponent/WebComponent.d.ts +9 -11
- package/lib/typescript/webComponent/html.d.ts +6 -1
- package/package.json +9 -5
- package/{unit-react-native-components.podspec → react-native-unit-components.podspec} +1 -1
- package/src/assets/images/close.png +0 -0
- package/src/assets/images/index.ts +1 -0
- package/src/components/UNActivityComponent/UNActivityComponent.tsx +21 -0
- package/src/components/UNActivityComponent/UNActivityComponent.utils.ts +11 -0
- package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.tsx +37 -0
- package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.ts +29 -0
- package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.ts +1 -0
- package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.ts +13 -0
- package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.tsx +167 -0
- package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.ts +34 -0
- package/src/components/UNCardComponent/UNCardComponent.tsx +73 -0
- package/src/components/UNCardComponent/UNCardComponent.utils.ts +28 -0
- package/src/components/index.ts +4 -2
- package/src/custom.d.ts +5 -0
- package/src/helpers/BottomSheet/BottomSheet.styles.ts +70 -0
- package/src/helpers/{BottomSheet.tsx → BottomSheet/BottomSheet.tsx} +74 -110
- package/src/helpers/EventBus.ts +13 -13
- package/src/hooks/listenerToBus.ts +23 -0
- package/src/hooks/useAppStateListener.ts +25 -0
- package/src/index.tsx +5 -1
- package/src/messages/nativeMessages/index.ts +3 -0
- package/src/messages/webMessages/bookPaymentMessage.ts +12 -0
- package/src/{webComponent → messages}/webMessages/cardMessage.ts +4 -2
- package/src/messages/webMessages/index.ts +21 -0
- package/src/{webComponent → messages}/webMessages/pageMessage.ts +1 -1
- package/src/{webComponent → messages}/webMessages/unitMessages.ts +1 -0
- package/src/nativeComponent/UNNativeAddToWalletButton.tsx +12 -0
- package/src/scripts/html/bodyHtml.ts +46 -0
- package/src/scripts/html/bodyScript.ts +67 -0
- package/src/sharedTypes/bookPayment.types.ts +27 -0
- package/src/sharedTypes/card.types.ts +59 -0
- package/src/sharedTypes/index.ts +2 -0
- package/src/sharedTypes/types.ts +35 -0
- package/src/styles/variables.ts +9 -0
- package/src/unitSdkManager/UnitSdk.api.ts +31 -0
- package/src/unitSdkManager/UnitSdkManager.ts +33 -0
- package/src/webComponent/WebComponent.tsx +55 -45
- package/src/webComponent/html.ts +22 -46
- package/android/src/main/java/com/unitreactnativecomponents/UnitReactNativeComponentsViewManager.kt +0 -19
- package/lib/commonjs/components/BottomSheet/BottomSheetComponent.js +0 -143
- package/lib/commonjs/components/BottomSheet/BottomSheetComponent.js.map +0 -1
- package/lib/commonjs/components/Card/CardComponent.js.map +0 -1
- package/lib/commonjs/helpers/BottomSheet.js.map +0 -1
- package/lib/commonjs/nativeComponenet/NativeComponentExample.js +0 -19
- package/lib/commonjs/nativeComponenet/NativeComponentExample.js.map +0 -1
- package/lib/commonjs/webComponent/webMessages/cardMessage.js.map +0 -1
- package/lib/commonjs/webComponent/webMessages/pageMessage.js.map +0 -1
- package/lib/commonjs/webComponent/webMessages/unitMessages.js.map +0 -1
- package/lib/module/components/BottomSheet/BottomSheetComponent.js +0 -118
- package/lib/module/components/BottomSheet/BottomSheetComponent.js.map +0 -1
- package/lib/module/components/Card/CardComponent.js +0 -75
- package/lib/module/components/Card/CardComponent.js.map +0 -1
- package/lib/module/helpers/BottomSheet.js.map +0 -1
- package/lib/module/nativeComponenet/NativeComponentExample.js +0 -10
- package/lib/module/nativeComponenet/NativeComponentExample.js.map +0 -1
- package/lib/module/webComponent/webMessages/cardMessage.js +0 -6
- package/lib/module/webComponent/webMessages/cardMessage.js.map +0 -1
- package/lib/module/webComponent/webMessages/pageMessage.js.map +0 -1
- package/lib/module/webComponent/webMessages/unitMessages.js.map +0 -1
- package/lib/typescript/components/BottomSheet/BottomSheetComponent.d.ts +0 -1
- package/lib/typescript/nativeComponenet/NativeComponentExample.d.ts +0 -7
- package/src/components/BottomSheet/BottomSheetComponent.tsx +0 -113
- package/src/components/Card/CardComponent.tsx +0 -75
- package/src/nativeComponenet/NativeComponentExample.tsx +0 -26
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare enum UNEnvironment {
|
|
2
|
+
sandbox = "sandbox",
|
|
3
|
+
production = "production"
|
|
4
|
+
}
|
|
5
|
+
export declare const UNIT_SCRIPT_URL: {
|
|
6
|
+
sandbox: string;
|
|
7
|
+
production: string;
|
|
8
|
+
};
|
|
9
|
+
export declare class UnitSDK {
|
|
10
|
+
protected static env?: UNEnvironment;
|
|
11
|
+
protected static theme?: string;
|
|
12
|
+
static init: (env: UNEnvironment, theme?: string) => Promise<void>;
|
|
13
|
+
static getEnv: () => UNEnvironment | undefined;
|
|
14
|
+
static getTheme: () => string | undefined;
|
|
15
|
+
}
|
|
@@ -1,23 +1,21 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { WebView } from 'react-native-webview';
|
|
3
|
-
import
|
|
4
|
-
import type {
|
|
5
|
-
import { UnitEvent, UnitMessage } from './webMessages/unitMessages';
|
|
6
|
-
export declare type WebViewMessageType = PageMessage | CardMessage | UnitMessage;
|
|
7
|
-
declare type WebViewEvent = PageEvent | UnitEvent | CardEvent;
|
|
8
|
-
export interface WebViewMessage {
|
|
9
|
-
type: WebViewMessageType;
|
|
10
|
-
details?: WebViewEvent;
|
|
11
|
-
}
|
|
3
|
+
import { PresentationMode } from '../scripts/html/bodyHtml';
|
|
4
|
+
import type { WebViewMessage } from '../messages/webMessages';
|
|
12
5
|
export interface WebComponentProps {
|
|
13
6
|
type: WebComponentType;
|
|
7
|
+
presentationMode?: PresentationMode;
|
|
14
8
|
params?: string;
|
|
15
|
-
onMessage
|
|
9
|
+
onMessage?: (message: WebViewMessage) => void;
|
|
16
10
|
script?: string;
|
|
11
|
+
isScrollable?: boolean;
|
|
12
|
+
handleScroll?: (event: any) => void;
|
|
13
|
+
width?: number;
|
|
17
14
|
}
|
|
18
15
|
export declare enum WebComponentType {
|
|
19
16
|
card = "unit-elements-card",
|
|
17
|
+
bookPayment = "unit-elements-book-payment",
|
|
18
|
+
activity = "unit-elements-activity",
|
|
20
19
|
slot = "unit-elements-sdk-slot"
|
|
21
20
|
}
|
|
22
21
|
export declare const WebComponent: React.ForwardRefExoticComponent<WebComponentProps & React.RefAttributes<WebView<{}>>>;
|
|
23
|
-
export {};
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
declare const
|
|
1
|
+
export declare const HTML_PLACEHOLDER: {
|
|
2
|
+
SCRIPT_UNIT: string;
|
|
3
|
+
BODY: string;
|
|
4
|
+
SCRIPT_FROM_NATIVE: string;
|
|
5
|
+
};
|
|
6
|
+
declare const htmlText: string;
|
|
2
7
|
export default htmlText;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-unit-components",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Unit React Native components",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"android",
|
|
14
14
|
"ios",
|
|
15
15
|
"cpp",
|
|
16
|
-
"
|
|
16
|
+
"react-native-unit-components.podspec",
|
|
17
17
|
"!lib/typescript/example",
|
|
18
18
|
"!android/build",
|
|
19
19
|
"!ios/build",
|
|
@@ -50,19 +50,23 @@
|
|
|
50
50
|
"@types/jest": "^28.1.2",
|
|
51
51
|
"@types/react": "~17.0.21",
|
|
52
52
|
"@types/react-native": "0.68.0",
|
|
53
|
+
"@typescript-eslint/eslint-plugin": "^5.45.0",
|
|
54
|
+
"@typescript-eslint/parser": "^5.45.0",
|
|
53
55
|
"commitlint": "^17.0.2",
|
|
54
|
-
"eslint": "^8.
|
|
56
|
+
"eslint": "^8.29.0",
|
|
57
|
+
"eslint-config-airbnb": "^18.0.1",
|
|
55
58
|
"eslint-config-prettier": "^8.5.0",
|
|
56
59
|
"eslint-plugin-prettier": "^4.0.0",
|
|
60
|
+
"eslint-plugin-react": "^7.31.11",
|
|
57
61
|
"jest": "^28.1.1",
|
|
58
62
|
"pod-install": "^0.1.0",
|
|
59
63
|
"prettier": "^2.0.5",
|
|
60
64
|
"react": "17.0.2",
|
|
61
65
|
"react-native": "0.68.2",
|
|
62
66
|
"react-native-builder-bob": "^0.18.3",
|
|
67
|
+
"react-native-webview": "11.23.1",
|
|
63
68
|
"release-it": "^15.0.0",
|
|
64
|
-
"typescript": "^4.5.2"
|
|
65
|
-
"react-native-webview": "11.23.1"
|
|
69
|
+
"typescript": "^4.5.2"
|
|
66
70
|
},
|
|
67
71
|
"resolutions": {
|
|
68
72
|
"@types/react": "17.0.21"
|
|
@@ -4,7 +4,7 @@ package = JSON.parse(File.read(File.join(__dir__, "package.json")))
|
|
|
4
4
|
folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32'
|
|
5
5
|
|
|
6
6
|
Pod::Spec.new do |s|
|
|
7
|
-
s.name = "
|
|
7
|
+
s.name = "react-native-unit-components"
|
|
8
8
|
s.version = package["version"]
|
|
9
9
|
s.summary = package["description"]
|
|
10
10
|
s.homepage = package["homepage"]
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as CloseIcon } from './close.png';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { PresentationMode } from '../../scripts/html/bodyHtml';
|
|
3
|
+
import { WebComponent, WebComponentType } from '../../webComponent/WebComponent';
|
|
4
|
+
import { getActivityParams } from './UNActivityComponent.utils';
|
|
5
|
+
|
|
6
|
+
export interface UNActivityComponentProps {
|
|
7
|
+
accountId: string;
|
|
8
|
+
customerToken: string;
|
|
9
|
+
theme?: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const UNActivityComponent = (props: UNActivityComponentProps) => {
|
|
13
|
+
return (
|
|
14
|
+
<WebComponent
|
|
15
|
+
type={WebComponentType.activity}
|
|
16
|
+
presentationMode={PresentationMode.Inherit}
|
|
17
|
+
params={getActivityParams(props)}
|
|
18
|
+
isScrollable={false}
|
|
19
|
+
/>
|
|
20
|
+
);
|
|
21
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { UnitSDK } from '../../unitSdkManager/UnitSdkManager';
|
|
2
|
+
import type { UNActivityComponentProps } from './UNActivityComponent';
|
|
3
|
+
|
|
4
|
+
export const getActivityParams = (props: UNActivityComponentProps) => {
|
|
5
|
+
return `
|
|
6
|
+
account-id="${props.accountId}"
|
|
7
|
+
customer-token="${props.customerToken}"
|
|
8
|
+
theme="${props.theme ?? UnitSDK.getTheme()}"
|
|
9
|
+
style="height: 100%"
|
|
10
|
+
`;
|
|
11
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { WebComponent, WebComponentType } from '../../webComponent/WebComponent';
|
|
3
|
+
import { PresentationMode } from '../../scripts/html/bodyHtml';
|
|
4
|
+
import { getBookPaymentParams, getBookPaymentScript } from './UNBookPaymentComponent.utils';
|
|
5
|
+
import type { WebViewMessage } from '../../messages/webMessages';
|
|
6
|
+
import { BookPaymentEvent, BookPaymentMessage } from '../../messages/webMessages/bookPaymentMessage';
|
|
7
|
+
import type { UNBookPaymentData } from '../../sharedTypes';
|
|
8
|
+
|
|
9
|
+
export interface UNBookPaymentComponentProps {
|
|
10
|
+
accountId: string;
|
|
11
|
+
customerToken: string;
|
|
12
|
+
isSameCustomer: boolean;
|
|
13
|
+
counterPartyAccountId: string;
|
|
14
|
+
counterPartyName: string;
|
|
15
|
+
theme?: string;
|
|
16
|
+
onPaymentCreated?: (data: UNBookPaymentData) => void;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export const UNBookPaymentComponent = (props: UNBookPaymentComponentProps) => {
|
|
20
|
+
const handleWebViewMessage = (message: WebViewMessage) => {
|
|
21
|
+
if (message.type === BookPaymentMessage.PAYMENT_CREATED && props.onPaymentCreated) {
|
|
22
|
+
const response = message.details as BookPaymentEvent;
|
|
23
|
+
props.onPaymentCreated(response.data);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
return (
|
|
28
|
+
<WebComponent
|
|
29
|
+
type={WebComponentType.bookPayment}
|
|
30
|
+
presentationMode={PresentationMode.Inherit}
|
|
31
|
+
params={getBookPaymentParams(props)}
|
|
32
|
+
script={getBookPaymentScript()}
|
|
33
|
+
onMessage={(message: WebViewMessage) => handleWebViewMessage(message)}
|
|
34
|
+
isScrollable={false}
|
|
35
|
+
/>
|
|
36
|
+
);
|
|
37
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { UNBookPaymentComponentProps } from './UNBookPaymentComponent';
|
|
2
|
+
|
|
3
|
+
import { BookPaymentMessage } from '../../messages/webMessages/bookPaymentMessage';
|
|
4
|
+
import { UnitSDK } from '../../unitSdkManager/UnitSdkManager';
|
|
5
|
+
|
|
6
|
+
export const getBookPaymentParams = (props: UNBookPaymentComponentProps) => {
|
|
7
|
+
return `
|
|
8
|
+
account-id="${props.accountId}"
|
|
9
|
+
customer-token="${props.customerToken}"
|
|
10
|
+
is-same-customer="${props.isSameCustomer}"
|
|
11
|
+
counterparty-account-id="${props.counterPartyAccountId}"
|
|
12
|
+
counterparty-name="${props.counterPartyName}"
|
|
13
|
+
theme="${props.theme ?? UnitSDK.getTheme()}"
|
|
14
|
+
style="height: 100%"
|
|
15
|
+
`;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const getBookPaymentScript = () => {
|
|
19
|
+
return `
|
|
20
|
+
window.addEventListener("${BookPaymentMessage.PAYMENT_CREATED}", (e) => {
|
|
21
|
+
const response = e.detail
|
|
22
|
+
response.then((data) => {
|
|
23
|
+
postMessageToSDK({ type: "${BookPaymentMessage.PAYMENT_CREATED}", details: { data: JSON.stringify(data.data) }})
|
|
24
|
+
}).catch((e) => {
|
|
25
|
+
console.log(e)
|
|
26
|
+
})
|
|
27
|
+
});
|
|
28
|
+
`;
|
|
29
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const BOTTOM_SHEET_MAX_PRECANTAGE_SIZE = 0.9;
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import React, { useEffect, useRef, useState } from 'react';
|
|
3
|
+
import type WebView from 'react-native-webview';
|
|
4
|
+
import { WebComponent, WebComponentType } from '../../webComponent/WebComponent';
|
|
5
|
+
import { Dimensions, Linking, View } from 'react-native';
|
|
6
|
+
import BottomSheet from '../../helpers/BottomSheet/BottomSheet';
|
|
7
|
+
import EventBus from '../../helpers/EventBus';
|
|
8
|
+
import { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';
|
|
9
|
+
import { RequestOpenLinkEvent, RequestRenderingData, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';
|
|
10
|
+
import { CardMessage, CardStatusChangedEvent } from '../../messages/webMessages/cardMessage';
|
|
11
|
+
import { useListenerToBus } from '../../hooks/listenerToBus';
|
|
12
|
+
import type { WebViewMessage } from '../../messages/webMessages';
|
|
13
|
+
import { getBottomSheetScript, handleHtmlFullHeight, renderingBottomSheetRequest, resetHtml } from './UNBottomSheetComponent.utils';
|
|
14
|
+
import { getStylesObject } from './UNBottomSheetComponent.styles';
|
|
15
|
+
import { PresentationMode } from '../../scripts/html/bodyHtml';
|
|
16
|
+
import { useAppStateListener } from '../../hooks/useAppStateListener';
|
|
17
|
+
|
|
18
|
+
export enum ScrollState {
|
|
19
|
+
onTop = 'onTop',
|
|
20
|
+
onlyWebView = 'webViewScroll',
|
|
21
|
+
onlyBottomSheet = 'onlyBottomSheet',
|
|
22
|
+
unScrollable = 'unScrollable'
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export const UNBottomSheetComponent = () => {
|
|
26
|
+
const [isBottomSheetActive, setIsBottomSheetActive] = useState(false);
|
|
27
|
+
const [height, setHeight] = useState(0);
|
|
28
|
+
|
|
29
|
+
const [renderingRequest, setRenderingRequest] = useState<string | null>(null);
|
|
30
|
+
const [scrollState, setScrollState] = useState<ScrollState>(ScrollState.onTop);
|
|
31
|
+
|
|
32
|
+
const [waitForLoadingNewComponent, setWaitForLoadingNewComponent] = useState(false);
|
|
33
|
+
const [newHeightMessage, setNewHeightMessage] = useState<WebViewMessage | null>(null);
|
|
34
|
+
|
|
35
|
+
const isAppActive = useAppStateListener();
|
|
36
|
+
|
|
37
|
+
const styles = getStylesObject();
|
|
38
|
+
|
|
39
|
+
const webRef = useRef<WebView>(null);
|
|
40
|
+
|
|
41
|
+
const listenerAction = (data: string) => {
|
|
42
|
+
setRenderingRequest(data);
|
|
43
|
+
setIsBottomSheetActive(true);
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
useEffect(() => {
|
|
47
|
+
if (!isAppActive) {
|
|
48
|
+
setIsBottomSheetActive(false);
|
|
49
|
+
}
|
|
50
|
+
}, [isAppActive]);
|
|
51
|
+
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
if (!webRef.current) return;
|
|
54
|
+
if (renderingRequest) {
|
|
55
|
+
renderingBottomSheetRequest(webRef.current, renderingRequest);
|
|
56
|
+
}
|
|
57
|
+
}, [webRef.current, renderingRequest]);
|
|
58
|
+
|
|
59
|
+
useEffect(() => {
|
|
60
|
+
if (!isBottomSheetActive) {
|
|
61
|
+
webRef.current && resetHtml(webRef.current);
|
|
62
|
+
setHeight(0);
|
|
63
|
+
setRenderingRequest(null);
|
|
64
|
+
setScrollState(ScrollState.onTop);
|
|
65
|
+
}
|
|
66
|
+
}, [isBottomSheetActive]);
|
|
67
|
+
|
|
68
|
+
useEffect(() => {
|
|
69
|
+
if (!waitForLoadingNewComponent && newHeightMessage) {
|
|
70
|
+
setWaitForLoadingNewComponent(false);
|
|
71
|
+
setNewHeight(newHeightMessage);
|
|
72
|
+
}
|
|
73
|
+
}, [waitForLoadingNewComponent, newHeightMessage]);
|
|
74
|
+
|
|
75
|
+
useListenerToBus([{ busEventKey: UnitMessage.UNIT_REQUEST_RENDERING, action: listenerAction }]);
|
|
76
|
+
|
|
77
|
+
const setNewHeight = (message: WebViewMessage) => {
|
|
78
|
+
if (renderingRequest) {
|
|
79
|
+
const nativePlace = (JSON.parse(renderingRequest) as RequestRenderingData).nativePlace;
|
|
80
|
+
if (nativePlace == 'overFullScreen') {
|
|
81
|
+
const bottomSheetNewHeight = handleHtmlFullHeight(webRef.current, Dimensions.get('window').height);
|
|
82
|
+
setHeight(bottomSheetNewHeight);
|
|
83
|
+
setScrollState(ScrollState.onTop);
|
|
84
|
+
} else {
|
|
85
|
+
setHeight((message.details as HeightEvent).height);
|
|
86
|
+
setScrollState(ScrollState.unScrollable);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
const onWebMessage = (message: WebViewMessage) => {
|
|
92
|
+
switch (message.type) {
|
|
93
|
+
case PageMessage.PAGE_HEIGHT:
|
|
94
|
+
renderingRequest && setNewHeightMessage(message);
|
|
95
|
+
break;
|
|
96
|
+
case UnitMessage.UNIT_REQUEST_RENDERING:
|
|
97
|
+
// eslint-disable-next-line no-case-declarations
|
|
98
|
+
const { data } = (message.details as RequestRenderingEvent);
|
|
99
|
+
if (data != renderingRequest) {
|
|
100
|
+
setHeight(0);
|
|
101
|
+
setRenderingRequest(data);
|
|
102
|
+
setWaitForLoadingNewComponent(true);
|
|
103
|
+
setTimeout(() => setWaitForLoadingNewComponent(false), 400);
|
|
104
|
+
}
|
|
105
|
+
break;
|
|
106
|
+
case CardMessage.CARD_STATUS_CHANGED:
|
|
107
|
+
EventBus.Instance.event(CardMessage.CARD_STATUS_CHANGED, (message.details as CardStatusChangedEvent).card);
|
|
108
|
+
break;
|
|
109
|
+
case UnitMessage.UNIT_REQUEST_CLOSE_FLOW:
|
|
110
|
+
setIsBottomSheetActive(false);
|
|
111
|
+
break;
|
|
112
|
+
case UnitMessage.UNIT_REQUEST_OPEN_LINK:
|
|
113
|
+
// eslint-disable-next-line no-case-declarations
|
|
114
|
+
const { href } = (message.details as RequestOpenLinkEvent);
|
|
115
|
+
Linking.openURL(href);
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
const onScrollWebView = (event: any) => {
|
|
121
|
+
if (scrollState === ScrollState.unScrollable) return;
|
|
122
|
+
|
|
123
|
+
const currY = event.nativeEvent.contentOffset.y;
|
|
124
|
+
|
|
125
|
+
if (ScrollState.onTop && currY < 5) {
|
|
126
|
+
setScrollState(ScrollState.onlyBottomSheet);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
if ( scrollState !== ScrollState.onlyWebView && scrollState === ScrollState.onTop && currY > 5) {
|
|
130
|
+
setScrollState(ScrollState.onlyWebView);
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
const handleWebViewScroll = () => {
|
|
135
|
+
if (scrollState === ScrollState.unScrollable) return;
|
|
136
|
+
setScrollState(ScrollState.onlyWebView);
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
return (
|
|
140
|
+
<>
|
|
141
|
+
<View
|
|
142
|
+
pointerEvents={isBottomSheetActive ? undefined : 'none'}
|
|
143
|
+
style={styles.container}
|
|
144
|
+
>
|
|
145
|
+
<BottomSheet
|
|
146
|
+
isOpen={isBottomSheetActive}
|
|
147
|
+
height={height}
|
|
148
|
+
onClose={() => setIsBottomSheetActive(false)}
|
|
149
|
+
onOpen={() => setIsBottomSheetActive(true)}
|
|
150
|
+
handleWebViewScroll={() => handleWebViewScroll()}
|
|
151
|
+
shouldEnableBottomSheetScroll={scrollState !== ScrollState.onlyWebView}
|
|
152
|
+
>
|
|
153
|
+
{ isAppActive && (
|
|
154
|
+
<WebComponent
|
|
155
|
+
ref={webRef}
|
|
156
|
+
type={WebComponentType.slot}
|
|
157
|
+
presentationMode={PresentationMode.CoverInjectedHeight}
|
|
158
|
+
script={getBottomSheetScript()}
|
|
159
|
+
onMessage={onWebMessage}
|
|
160
|
+
isScrollable={scrollState === ScrollState.onlyWebView || scrollState === ScrollState.onTop}
|
|
161
|
+
handleScroll={onScrollWebView}
|
|
162
|
+
/>)}
|
|
163
|
+
</BottomSheet>
|
|
164
|
+
</View>
|
|
165
|
+
</>
|
|
166
|
+
);
|
|
167
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type WebView from 'react-native-webview';
|
|
2
|
+
import { UnitMessage } from '../../messages/webMessages/unitMessages';
|
|
3
|
+
import { BOTTOM_SHEET_MAX_PRECANTAGE_SIZE } from './UNBottomSheetComponent.constants';
|
|
4
|
+
|
|
5
|
+
export const getBottomSheetScript = () => {
|
|
6
|
+
return `
|
|
7
|
+
window.addEventListener("${UnitMessage.UNIT_REQUEST_REFRESH}", (e) => {
|
|
8
|
+
postMessageToSDK({ type: "${UnitMessage.UNIT_REQUEST_REFRESH}", details: e.detail })
|
|
9
|
+
});
|
|
10
|
+
`;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export const renderingBottomSheetRequest = (currentWebView: WebView, renderingRequest: string) => {
|
|
14
|
+
currentWebView?.injectJavaScript(`
|
|
15
|
+
document.activeElement && document.activeElement.blur();
|
|
16
|
+
dispatchRenderingEvent('${renderingRequest}');
|
|
17
|
+
`);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export const resetHtml = (currentWebView: WebView) => {
|
|
21
|
+
currentWebView?.injectJavaScript(`
|
|
22
|
+
document.activeElement && document.activeElement.blur();
|
|
23
|
+
document.getElementById('webViewContainer').style.height = null;
|
|
24
|
+
`);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export const handleHtmlFullHeight = (currentWebView: WebView | null, windowHeight: number) => {
|
|
28
|
+
const bottomSheetHeight = windowHeight * BOTTOM_SHEET_MAX_PRECANTAGE_SIZE;
|
|
29
|
+
currentWebView && currentWebView?.injectJavaScript(`
|
|
30
|
+
document.getElementById('webViewContainer').style.height = '${bottomSheetHeight}px';
|
|
31
|
+
`);
|
|
32
|
+
|
|
33
|
+
return bottomSheetHeight;
|
|
34
|
+
};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import React, { useEffect, useRef, useState } from 'react';
|
|
2
|
+
import { Dimensions, View } from 'react-native';
|
|
3
|
+
import type WebView from 'react-native-webview';
|
|
4
|
+
import { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';
|
|
5
|
+
import { RequestRefreshEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';
|
|
6
|
+
import EventBus from '../../helpers/EventBus';
|
|
7
|
+
import { WebComponent, WebComponentType } from '../../webComponent/WebComponent';
|
|
8
|
+
import { useListenerToBus } from '../../hooks/listenerToBus';
|
|
9
|
+
import type { WebViewMessage } from '../../messages/webMessages';
|
|
10
|
+
import { getCardParams, getCardScript, injectRefreshEventIfNeeded } from './UNCardComponent.utils';
|
|
11
|
+
import { PresentationMode } from '../../scripts/html/bodyHtml';
|
|
12
|
+
import type { UNCardData } from '../../sharedTypes';
|
|
13
|
+
import { CardMessage } from '../../messages/webMessages/cardMessage';
|
|
14
|
+
|
|
15
|
+
export interface UNCardComponentProps {
|
|
16
|
+
cardId: string;
|
|
17
|
+
customerToken: string;
|
|
18
|
+
theme?: string;
|
|
19
|
+
onStatusChanged?: (card: UNCardData) => void;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export const UNCardComponent = (props: UNCardComponentProps) => {
|
|
23
|
+
const [height, setHeight] = useState(0);
|
|
24
|
+
const [requestRefreshEvent, setRequestRefreshEvent] = useState<RequestRefreshEvent | null>(null);
|
|
25
|
+
const windowWidth = Dimensions.get('window').width;
|
|
26
|
+
|
|
27
|
+
const webRef = useRef<WebView>(null);
|
|
28
|
+
|
|
29
|
+
const cardStatusChanged = (card: UNCardData) => {
|
|
30
|
+
if (props.onStatusChanged) {
|
|
31
|
+
props.onStatusChanged(card);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const requestRefresh = (data: RequestRefreshEvent) => {
|
|
36
|
+
setRequestRefreshEvent(data);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
useListenerToBus([
|
|
40
|
+
{ busEventKey: CardMessage.CARD_STATUS_CHANGED, action: cardStatusChanged },
|
|
41
|
+
{ busEventKey: UnitMessage.UNIT_REQUEST_REFRESH, action: requestRefresh },
|
|
42
|
+
]);
|
|
43
|
+
|
|
44
|
+
useEffect(() => {
|
|
45
|
+
injectRefreshEventIfNeeded(webRef.current, requestRefreshEvent, props.cardId);
|
|
46
|
+
}, [requestRefreshEvent]);
|
|
47
|
+
|
|
48
|
+
const handleMessage = (message: WebViewMessage) => {
|
|
49
|
+
switch (message.type) {
|
|
50
|
+
case UnitMessage.UNIT_REQUEST_RENDERING:
|
|
51
|
+
EventBus.Instance.event(UnitMessage.UNIT_REQUEST_RENDERING, (message.details as RequestRenderingEvent).data);
|
|
52
|
+
break;
|
|
53
|
+
case PageMessage.PAGE_HEIGHT:
|
|
54
|
+
setHeight((message.details as HeightEvent).height);
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
return (
|
|
60
|
+
<View style={{ height }}>
|
|
61
|
+
<WebComponent
|
|
62
|
+
ref={webRef}
|
|
63
|
+
type={WebComponentType.card}
|
|
64
|
+
presentationMode={PresentationMode.Default}
|
|
65
|
+
params={getCardParams(props)}
|
|
66
|
+
script={getCardScript()}
|
|
67
|
+
onMessage={message => handleMessage(message)}
|
|
68
|
+
width={windowWidth}
|
|
69
|
+
isScrollable={false}
|
|
70
|
+
/>
|
|
71
|
+
</View>
|
|
72
|
+
);
|
|
73
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type WebView from 'react-native-webview';
|
|
2
|
+
import type { UNCardComponentProps } from './UNCardComponent';
|
|
3
|
+
import { WebComponentType } from '../../webComponent/WebComponent';
|
|
4
|
+
import { RequestRefreshEvent, UnitMessage } from '../../messages/webMessages/unitMessages';
|
|
5
|
+
import { UnitSDK } from '../../unitSdkManager/UnitSdkManager';
|
|
6
|
+
|
|
7
|
+
export const getCardParams = (props: UNCardComponentProps) => {
|
|
8
|
+
return `
|
|
9
|
+
card-id="${props.cardId}"
|
|
10
|
+
customer-token="${props.customerToken}"
|
|
11
|
+
theme="${props.theme ?? UnitSDK.getTheme()}"
|
|
12
|
+
`;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export const getCardScript = () => {
|
|
16
|
+
return `
|
|
17
|
+
const dispatchRefreshEvent = (details) => {
|
|
18
|
+
const event = new CustomEvent("${UnitMessage.UNIT_REQUEST_REFRESH}",{ detail: JSON.parse(details) })
|
|
19
|
+
window.dispatchEvent(event)
|
|
20
|
+
}
|
|
21
|
+
`;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export const injectRefreshEventIfNeeded = (currentWeb: WebView | null, requestRefreshEvent: RequestRefreshEvent | null, cardId: string) => {
|
|
25
|
+
if (requestRefreshEvent && requestRefreshEvent.dependencies.includes(WebComponentType.card.valueOf()) && requestRefreshEvent.resourceId == cardId) {
|
|
26
|
+
currentWeb?.injectJavaScript(`dispatchRefreshEvent('${JSON.stringify(requestRefreshEvent)}')`);
|
|
27
|
+
}
|
|
28
|
+
};
|
package/src/components/index.ts
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export * from './
|
|
2
|
-
export * from './
|
|
1
|
+
export * from './UNCardComponent/UNCardComponent';
|
|
2
|
+
export * from './UNBottomSheetComponent/UNBottomSheetComponent';
|
|
3
|
+
export * from './UNBookPaymentComponent/UNBookPaymentComponent';
|
|
4
|
+
export * from './UNActivityComponent/UNActivityComponent';
|
package/src/custom.d.ts
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Dimensions, StyleSheet } from 'react-native';
|
|
2
|
+
import { BOTTOM_SHEET_MAX_PRECANTAGE_SIZE } from '../../components/UNBottomSheetComponent/UNBottomSheetComponent.constants';
|
|
3
|
+
import { VARIABLES } from '../../styles/variables';
|
|
4
|
+
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
6
|
+
export const getStylesObject = (fadeAnim: any) => {
|
|
7
|
+
return StyleSheet.create({
|
|
8
|
+
outsideContainer: {
|
|
9
|
+
position: 'absolute',
|
|
10
|
+
top: 0,
|
|
11
|
+
bottom: 0,
|
|
12
|
+
right: 0,
|
|
13
|
+
left: 0
|
|
14
|
+
},
|
|
15
|
+
animation: {
|
|
16
|
+
backgroundColor: 'black',
|
|
17
|
+
flex: 1,
|
|
18
|
+
opacity: fadeAnim,
|
|
19
|
+
},
|
|
20
|
+
container: {
|
|
21
|
+
position: 'relative',
|
|
22
|
+
flex: 1,
|
|
23
|
+
marginTop: Dimensions.get('window').height * (1 - BOTTOM_SHEET_MAX_PRECANTAGE_SIZE),
|
|
24
|
+
shadowColor: VARIABLES.COLORS.BLACK,
|
|
25
|
+
shadowOffset: {
|
|
26
|
+
width: 0,
|
|
27
|
+
height: 6,
|
|
28
|
+
},
|
|
29
|
+
shadowOpacity: 0.37,
|
|
30
|
+
shadowRadius: 7.49,
|
|
31
|
+
elevation: 12,
|
|
32
|
+
borderTopLeftRadius: 15,
|
|
33
|
+
borderTopRightRadius: 15,
|
|
34
|
+
backgroundColor: VARIABLES.COLORS.WHITE,
|
|
35
|
+
overflow: 'hidden'
|
|
36
|
+
},
|
|
37
|
+
lineContainer: {
|
|
38
|
+
borderTopLeftRadius: 30,
|
|
39
|
+
borderTopRightRadius: 30,
|
|
40
|
+
alignItems: 'center'
|
|
41
|
+
},
|
|
42
|
+
line: {
|
|
43
|
+
width: 35,
|
|
44
|
+
height: 4,
|
|
45
|
+
borderRadius: 2,
|
|
46
|
+
marginTop: 18,
|
|
47
|
+
backgroundColor: VARIABLES.COLORS.SILVER_FLAKE,
|
|
48
|
+
},
|
|
49
|
+
outerContent: {
|
|
50
|
+
flex: -1,
|
|
51
|
+
},
|
|
52
|
+
innerContent: {
|
|
53
|
+
flex: -1,
|
|
54
|
+
},
|
|
55
|
+
closeButton: {
|
|
56
|
+
position: 'absolute',
|
|
57
|
+
display: 'flex',
|
|
58
|
+
alignItems: 'center',
|
|
59
|
+
justifyContent: 'center',
|
|
60
|
+
width: 36,
|
|
61
|
+
height: 36,
|
|
62
|
+
backgroundColor: VARIABLES.COLORS.WHITE,
|
|
63
|
+
borderRadius: 18,
|
|
64
|
+
padding: 7,
|
|
65
|
+
top: 12,
|
|
66
|
+
right: 12,
|
|
67
|
+
zIndex: 100
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
};
|