rn-custom-ui 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -0
- package/README.md +477 -0
- package/lib/module/assets/images/close.png +0 -0
- package/lib/module/components/CustomCheckbox/index.js +99 -0
- package/lib/module/components/CustomCheckbox/index.js.map +1 -0
- package/lib/module/components/CustomCheckbox/styles.js +213 -0
- package/lib/module/components/CustomCheckbox/styles.js.map +1 -0
- package/lib/module/components/CustomCheckbox/types.js +4 -0
- package/lib/module/components/CustomCheckbox/types.js.map +1 -0
- package/lib/module/components/closeButton/index.js +45 -0
- package/lib/module/components/closeButton/index.js.map +1 -0
- package/lib/module/components/closeButton/types.js +4 -0
- package/lib/module/components/closeButton/types.js.map +1 -0
- package/lib/module/components/customButton/index.js +176 -0
- package/lib/module/components/customButton/index.js.map +1 -0
- package/lib/module/components/customButton/styles.js +282 -0
- package/lib/module/components/customButton/styles.js.map +1 -0
- package/lib/module/components/customButton/types.js +4 -0
- package/lib/module/components/customButton/types.js.map +1 -0
- package/lib/module/components/customDropDown/DropDownBottomSheet.js +57 -0
- package/lib/module/components/customDropDown/DropDownBottomSheet.js.map +1 -0
- package/lib/module/components/customDropDown/DropDownList.js +51 -0
- package/lib/module/components/customDropDown/DropDownList.js.map +1 -0
- package/lib/module/components/customDropDown/DropDownListItem.js +38 -0
- package/lib/module/components/customDropDown/DropDownListItem.js.map +1 -0
- package/lib/module/components/customDropDown/DropDownListModal.js +63 -0
- package/lib/module/components/customDropDown/DropDownListModal.js.map +1 -0
- package/lib/module/components/customDropDown/index.js +143 -0
- package/lib/module/components/customDropDown/index.js.map +1 -0
- package/lib/module/components/customDropDown/styles.js +189 -0
- package/lib/module/components/customDropDown/styles.js.map +1 -0
- package/lib/module/components/customDropDown/types.js +4 -0
- package/lib/module/components/customDropDown/types.js.map +1 -0
- package/lib/module/components/customDropDown/utils.js +17 -0
- package/lib/module/components/customDropDown/utils.js.map +1 -0
- package/lib/module/components/customList/ListEmpty.js +33 -0
- package/lib/module/components/customList/ListEmpty.js.map +1 -0
- package/lib/module/components/customList/ListFooterLoader.js +14 -0
- package/lib/module/components/customList/ListFooterLoader.js.map +1 -0
- package/lib/module/components/customList/defaultKeyExtractor.js +9 -0
- package/lib/module/components/customList/defaultKeyExtractor.js.map +1 -0
- package/lib/module/components/customList/getFlashList.js +19 -0
- package/lib/module/components/customList/getFlashList.js.map +1 -0
- package/lib/module/components/customList/index.js +117 -0
- package/lib/module/components/customList/index.js.map +1 -0
- package/lib/module/components/customList/styles.js +45 -0
- package/lib/module/components/customList/styles.js.map +1 -0
- package/lib/module/components/customList/types.js +4 -0
- package/lib/module/components/customList/types.js.map +1 -0
- package/lib/module/components/customModal/ModalFooter.js +44 -0
- package/lib/module/components/customModal/ModalFooter.js.map +1 -0
- package/lib/module/components/customModal/index.js +132 -0
- package/lib/module/components/customModal/index.js.map +1 -0
- package/lib/module/components/customModal/styles.js +123 -0
- package/lib/module/components/customModal/styles.js.map +1 -0
- package/lib/module/components/customModal/types.js +4 -0
- package/lib/module/components/customModal/types.js.map +1 -0
- package/lib/module/components/customModal/useCustomModal.js +23 -0
- package/lib/module/components/customModal/useCustomModal.js.map +1 -0
- package/lib/module/components/customNumberPad/NumberPadKey.js +39 -0
- package/lib/module/components/customNumberPad/NumberPadKey.js.map +1 -0
- package/lib/module/components/customNumberPad/index.js +156 -0
- package/lib/module/components/customNumberPad/index.js.map +1 -0
- package/lib/module/components/customNumberPad/styles.js +131 -0
- package/lib/module/components/customNumberPad/styles.js.map +1 -0
- package/lib/module/components/customNumberPad/types.js +4 -0
- package/lib/module/components/customNumberPad/types.js.map +1 -0
- package/lib/module/components/customNumberPad/useNumberPadInput.js +44 -0
- package/lib/module/components/customNumberPad/useNumberPadInput.js.map +1 -0
- package/lib/module/components/customNumberPad/utils.js +38 -0
- package/lib/module/components/customNumberPad/utils.js.map +1 -0
- package/lib/module/components/customSlideTabs/AnimatedTabIndicator.js +66 -0
- package/lib/module/components/customSlideTabs/AnimatedTabIndicator.js.map +1 -0
- package/lib/module/components/customSlideTabs/TabBarItem.js +61 -0
- package/lib/module/components/customSlideTabs/TabBarItem.js.map +1 -0
- package/lib/module/components/customSlideTabs/TabScene.js +88 -0
- package/lib/module/components/customSlideTabs/TabScene.js.map +1 -0
- package/lib/module/components/customSlideTabs/index.js +277 -0
- package/lib/module/components/customSlideTabs/index.js.map +1 -0
- package/lib/module/components/customSlideTabs/styles.js +132 -0
- package/lib/module/components/customSlideTabs/styles.js.map +1 -0
- package/lib/module/components/customSlideTabs/tabBarScroll.js +65 -0
- package/lib/module/components/customSlideTabs/tabBarScroll.js.map +1 -0
- package/lib/module/components/customSlideTabs/types.js +4 -0
- package/lib/module/components/customSlideTabs/types.js.map +1 -0
- package/lib/module/components/loading/index.js +34 -0
- package/lib/module/components/loading/index.js.map +1 -0
- package/lib/module/customFunctions/array.js +61 -0
- package/lib/module/customFunctions/array.js.map +1 -0
- package/lib/module/customFunctions/async.js +62 -0
- package/lib/module/customFunctions/async.js.map +1 -0
- package/lib/module/customFunctions/date.js +109 -0
- package/lib/module/customFunctions/date.js.map +1 -0
- package/lib/module/customFunctions/general.js +29 -0
- package/lib/module/customFunctions/general.js.map +1 -0
- package/lib/module/customFunctions/id.js +20 -0
- package/lib/module/customFunctions/id.js.map +1 -0
- package/lib/module/customFunctions/index.js +29 -0
- package/lib/module/customFunctions/index.js.map +1 -0
- package/lib/module/customFunctions/number.js +94 -0
- package/lib/module/customFunctions/number.js.map +1 -0
- package/lib/module/customFunctions/object.js +39 -0
- package/lib/module/customFunctions/object.js.map +1 -0
- package/lib/module/customFunctions/string.js +63 -0
- package/lib/module/customFunctions/string.js.map +1 -0
- package/lib/module/customFunctions/types.js +2 -0
- package/lib/module/customFunctions/types.js.map +1 -0
- package/lib/module/customFunctions/validation.js +34 -0
- package/lib/module/customFunctions/validation.js.map +1 -0
- package/lib/module/customHooks/errors.js +61 -0
- package/lib/module/customHooks/errors.js.map +1 -0
- package/lib/module/customHooks/fetchJson.js +36 -0
- package/lib/module/customHooks/fetchJson.js.map +1 -0
- package/lib/module/customHooks/index.js +10 -0
- package/lib/module/customHooks/index.js.map +1 -0
- package/lib/module/customHooks/internal.js +49 -0
- package/lib/module/customHooks/internal.js.map +1 -0
- package/lib/module/customHooks/types.js +2 -0
- package/lib/module/customHooks/types.js.map +1 -0
- package/lib/module/customHooks/useApi.js +91 -0
- package/lib/module/customHooks/useApi.js.map +1 -0
- package/lib/module/customHooks/useLazyApi.js +80 -0
- package/lib/module/customHooks/useLazyApi.js.map +1 -0
- package/lib/module/customHooks/useMutation.js +69 -0
- package/lib/module/customHooks/useMutation.js.map +1 -0
- package/lib/module/customHooks/usePaginatedApi.js +127 -0
- package/lib/module/customHooks/usePaginatedApi.js.map +1 -0
- package/lib/module/customHooks/usePollingApi.js +37 -0
- package/lib/module/customHooks/usePollingApi.js.map +1 -0
- package/lib/module/index.js +13 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/multiply.js +6 -0
- package/lib/module/multiply.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/components/CustomCheckbox/index.d.ts +5 -0
- package/lib/typescript/src/components/CustomCheckbox/index.d.ts.map +1 -0
- package/lib/typescript/src/components/CustomCheckbox/styles.d.ts +67 -0
- package/lib/typescript/src/components/CustomCheckbox/styles.d.ts.map +1 -0
- package/lib/typescript/src/components/CustomCheckbox/types.d.ts +28 -0
- package/lib/typescript/src/components/CustomCheckbox/types.d.ts.map +1 -0
- package/lib/typescript/src/components/closeButton/index.d.ts +4 -0
- package/lib/typescript/src/components/closeButton/index.d.ts.map +1 -0
- package/lib/typescript/src/components/closeButton/types.d.ts +8 -0
- package/lib/typescript/src/components/closeButton/types.d.ts.map +1 -0
- package/lib/typescript/src/components/customButton/index.d.ts +5 -0
- package/lib/typescript/src/components/customButton/index.d.ts.map +1 -0
- package/lib/typescript/src/components/customButton/styles.d.ts +231 -0
- package/lib/typescript/src/components/customButton/styles.d.ts.map +1 -0
- package/lib/typescript/src/components/customButton/types.d.ts +46 -0
- package/lib/typescript/src/components/customButton/types.d.ts.map +1 -0
- package/lib/typescript/src/components/customDropDown/DropDownBottomSheet.d.ts +18 -0
- package/lib/typescript/src/components/customDropDown/DropDownBottomSheet.d.ts.map +1 -0
- package/lib/typescript/src/components/customDropDown/DropDownList.d.ts +17 -0
- package/lib/typescript/src/components/customDropDown/DropDownList.d.ts.map +1 -0
- package/lib/typescript/src/components/customDropDown/DropDownListItem.d.ts +15 -0
- package/lib/typescript/src/components/customDropDown/DropDownListItem.d.ts.map +1 -0
- package/lib/typescript/src/components/customDropDown/DropDownListModal.d.ts +19 -0
- package/lib/typescript/src/components/customDropDown/DropDownListModal.d.ts.map +1 -0
- package/lib/typescript/src/components/customDropDown/index.d.ts +5 -0
- package/lib/typescript/src/components/customDropDown/index.d.ts.map +1 -0
- package/lib/typescript/src/components/customDropDown/styles.d.ts +190 -0
- package/lib/typescript/src/components/customDropDown/styles.d.ts.map +1 -0
- package/lib/typescript/src/components/customDropDown/types.d.ts +37 -0
- package/lib/typescript/src/components/customDropDown/types.d.ts.map +1 -0
- package/lib/typescript/src/components/customDropDown/utils.d.ts +4 -0
- package/lib/typescript/src/components/customDropDown/utils.d.ts.map +1 -0
- package/lib/typescript/src/components/customList/ListEmpty.d.ts +10 -0
- package/lib/typescript/src/components/customList/ListEmpty.d.ts.map +1 -0
- package/lib/typescript/src/components/customList/ListFooterLoader.d.ts +3 -0
- package/lib/typescript/src/components/customList/ListFooterLoader.d.ts.map +1 -0
- package/lib/typescript/src/components/customList/defaultKeyExtractor.d.ts +2 -0
- package/lib/typescript/src/components/customList/defaultKeyExtractor.d.ts.map +1 -0
- package/lib/typescript/src/components/customList/getFlashList.d.ts +6 -0
- package/lib/typescript/src/components/customList/getFlashList.d.ts.map +1 -0
- package/lib/typescript/src/components/customList/index.d.ts +11 -0
- package/lib/typescript/src/components/customList/index.d.ts.map +1 -0
- package/lib/typescript/src/components/customList/styles.d.ts +42 -0
- package/lib/typescript/src/components/customList/styles.d.ts.map +1 -0
- package/lib/typescript/src/components/customList/types.d.ts +33 -0
- package/lib/typescript/src/components/customList/types.d.ts.map +1 -0
- package/lib/typescript/src/components/customModal/ModalFooter.d.ts +12 -0
- package/lib/typescript/src/components/customModal/ModalFooter.d.ts.map +1 -0
- package/lib/typescript/src/components/customModal/index.d.ts +6 -0
- package/lib/typescript/src/components/customModal/index.d.ts.map +1 -0
- package/lib/typescript/src/components/customModal/styles.d.ts +83 -0
- package/lib/typescript/src/components/customModal/styles.d.ts.map +1 -0
- package/lib/typescript/src/components/customModal/types.d.ts +36 -0
- package/lib/typescript/src/components/customModal/types.d.ts.map +1 -0
- package/lib/typescript/src/components/customModal/useCustomModal.d.ts +8 -0
- package/lib/typescript/src/components/customModal/useCustomModal.d.ts.map +1 -0
- package/lib/typescript/src/components/customNumberPad/NumberPadKey.d.ts +23 -0
- package/lib/typescript/src/components/customNumberPad/NumberPadKey.d.ts.map +1 -0
- package/lib/typescript/src/components/customNumberPad/index.d.ts +7 -0
- package/lib/typescript/src/components/customNumberPad/index.d.ts.map +1 -0
- package/lib/typescript/src/components/customNumberPad/styles.d.ts +37 -0
- package/lib/typescript/src/components/customNumberPad/styles.d.ts.map +1 -0
- package/lib/typescript/src/components/customNumberPad/types.d.ts +47 -0
- package/lib/typescript/src/components/customNumberPad/types.d.ts.map +1 -0
- package/lib/typescript/src/components/customNumberPad/useNumberPadInput.d.ts +16 -0
- package/lib/typescript/src/components/customNumberPad/useNumberPadInput.d.ts.map +1 -0
- package/lib/typescript/src/components/customNumberPad/utils.d.ts +4 -0
- package/lib/typescript/src/components/customNumberPad/utils.d.ts.map +1 -0
- package/lib/typescript/src/components/customSlideTabs/AnimatedTabIndicator.d.ts +16 -0
- package/lib/typescript/src/components/customSlideTabs/AnimatedTabIndicator.d.ts.map +1 -0
- package/lib/typescript/src/components/customSlideTabs/TabBarItem.d.ts +23 -0
- package/lib/typescript/src/components/customSlideTabs/TabBarItem.d.ts.map +1 -0
- package/lib/typescript/src/components/customSlideTabs/TabScene.d.ts +21 -0
- package/lib/typescript/src/components/customSlideTabs/TabScene.d.ts.map +1 -0
- package/lib/typescript/src/components/customSlideTabs/index.d.ts +5 -0
- package/lib/typescript/src/components/customSlideTabs/index.d.ts.map +1 -0
- package/lib/typescript/src/components/customSlideTabs/styles.d.ts +130 -0
- package/lib/typescript/src/components/customSlideTabs/styles.d.ts.map +1 -0
- package/lib/typescript/src/components/customSlideTabs/tabBarScroll.d.ts +15 -0
- package/lib/typescript/src/components/customSlideTabs/tabBarScroll.d.ts.map +1 -0
- package/lib/typescript/src/components/customSlideTabs/types.d.ts +68 -0
- package/lib/typescript/src/components/customSlideTabs/types.d.ts.map +1 -0
- package/lib/typescript/src/components/loading/index.d.ts +7 -0
- package/lib/typescript/src/components/loading/index.d.ts.map +1 -0
- package/lib/typescript/src/customFunctions/array.d.ts +7 -0
- package/lib/typescript/src/customFunctions/array.d.ts.map +1 -0
- package/lib/typescript/src/customFunctions/async.d.ts +9 -0
- package/lib/typescript/src/customFunctions/async.d.ts.map +1 -0
- package/lib/typescript/src/customFunctions/date.d.ts +18 -0
- package/lib/typescript/src/customFunctions/date.d.ts.map +1 -0
- package/lib/typescript/src/customFunctions/general.d.ts +7 -0
- package/lib/typescript/src/customFunctions/general.d.ts.map +1 -0
- package/lib/typescript/src/customFunctions/id.d.ts +4 -0
- package/lib/typescript/src/customFunctions/id.d.ts.map +1 -0
- package/lib/typescript/src/customFunctions/index.d.ts +26 -0
- package/lib/typescript/src/customFunctions/index.d.ts.map +1 -0
- package/lib/typescript/src/customFunctions/number.d.ts +15 -0
- package/lib/typescript/src/customFunctions/number.d.ts.map +1 -0
- package/lib/typescript/src/customFunctions/object.d.ts +6 -0
- package/lib/typescript/src/customFunctions/object.d.ts.map +1 -0
- package/lib/typescript/src/customFunctions/string.d.ts +20 -0
- package/lib/typescript/src/customFunctions/string.d.ts.map +1 -0
- package/lib/typescript/src/customFunctions/types.d.ts +22 -0
- package/lib/typescript/src/customFunctions/types.d.ts.map +1 -0
- package/lib/typescript/src/customFunctions/validation.d.ts +11 -0
- package/lib/typescript/src/customFunctions/validation.d.ts.map +1 -0
- package/lib/typescript/src/customHooks/errors.d.ts +16 -0
- package/lib/typescript/src/customHooks/errors.d.ts.map +1 -0
- package/lib/typescript/src/customHooks/fetchJson.d.ts +5 -0
- package/lib/typescript/src/customHooks/fetchJson.d.ts.map +1 -0
- package/lib/typescript/src/customHooks/index.d.ts +9 -0
- package/lib/typescript/src/customHooks/index.d.ts.map +1 -0
- package/lib/typescript/src/customHooks/internal.d.ts +12 -0
- package/lib/typescript/src/customHooks/internal.d.ts.map +1 -0
- package/lib/typescript/src/customHooks/types.d.ts +49 -0
- package/lib/typescript/src/customHooks/types.d.ts.map +1 -0
- package/lib/typescript/src/customHooks/useApi.d.ts +13 -0
- package/lib/typescript/src/customHooks/useApi.d.ts.map +1 -0
- package/lib/typescript/src/customHooks/useLazyApi.d.ts +14 -0
- package/lib/typescript/src/customHooks/useLazyApi.d.ts.map +1 -0
- package/lib/typescript/src/customHooks/useMutation.d.ts +15 -0
- package/lib/typescript/src/customHooks/useMutation.d.ts.map +1 -0
- package/lib/typescript/src/customHooks/usePaginatedApi.d.ts +19 -0
- package/lib/typescript/src/customHooks/usePaginatedApi.d.ts.map +1 -0
- package/lib/typescript/src/customHooks/usePollingApi.d.ts +13 -0
- package/lib/typescript/src/customHooks/usePollingApi.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +11 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/multiply.d.ts +2 -0
- package/lib/typescript/src/multiply.d.ts.map +1 -0
- package/package.json +181 -0
- package/src/assets/images/close.png +0 -0
- package/src/components/CustomCheckbox/index.tsx +143 -0
- package/src/components/CustomCheckbox/styles.ts +146 -0
- package/src/components/CustomCheckbox/types.ts +33 -0
- package/src/components/closeButton/index.tsx +40 -0
- package/src/components/closeButton/types.ts +13 -0
- package/src/components/customButton/index.tsx +288 -0
- package/src/components/customButton/styles.ts +247 -0
- package/src/components/customButton/types.ts +71 -0
- package/src/components/customDropDown/DropDownBottomSheet.tsx +70 -0
- package/src/components/customDropDown/DropDownList.tsx +88 -0
- package/src/components/customDropDown/DropDownListItem.tsx +74 -0
- package/src/components/customDropDown/DropDownListModal.tsx +86 -0
- package/src/components/customDropDown/index.tsx +213 -0
- package/src/components/customDropDown/styles.ts +184 -0
- package/src/components/customDropDown/types.ts +48 -0
- package/src/components/customDropDown/utils.ts +24 -0
- package/src/components/customList/ListEmpty.tsx +36 -0
- package/src/components/customList/ListFooterLoader.tsx +11 -0
- package/src/components/customList/defaultKeyExtractor.ts +7 -0
- package/src/components/customList/getFlashList.ts +26 -0
- package/src/components/customList/index.tsx +142 -0
- package/src/components/customList/styles.ts +43 -0
- package/src/components/customList/types.ts +60 -0
- package/src/components/customModal/ModalFooter.tsx +57 -0
- package/src/components/customModal/index.tsx +166 -0
- package/src/components/customModal/styles.ts +131 -0
- package/src/components/customModal/types.ts +48 -0
- package/src/components/customModal/useCustomModal.ts +25 -0
- package/src/components/customNumberPad/NumberPadKey.tsx +81 -0
- package/src/components/customNumberPad/index.tsx +204 -0
- package/src/components/customNumberPad/styles.ts +146 -0
- package/src/components/customNumberPad/types.ts +53 -0
- package/src/components/customNumberPad/useNumberPadInput.ts +56 -0
- package/src/components/customNumberPad/utils.ts +54 -0
- package/src/components/customSlideTabs/AnimatedTabIndicator.tsx +103 -0
- package/src/components/customSlideTabs/TabBarItem.tsx +118 -0
- package/src/components/customSlideTabs/TabScene.tsx +136 -0
- package/src/components/customSlideTabs/index.tsx +385 -0
- package/src/components/customSlideTabs/styles.ts +136 -0
- package/src/components/customSlideTabs/tabBarScroll.ts +92 -0
- package/src/components/customSlideTabs/types.ts +87 -0
- package/src/components/loading/index.tsx +34 -0
- package/src/customFunctions/array.ts +83 -0
- package/src/customFunctions/async.ts +85 -0
- package/src/customFunctions/date.ts +158 -0
- package/src/customFunctions/general.ts +35 -0
- package/src/customFunctions/id.ts +25 -0
- package/src/customFunctions/index.ts +91 -0
- package/src/customFunctions/number.ts +139 -0
- package/src/customFunctions/object.ts +59 -0
- package/src/customFunctions/string.ts +119 -0
- package/src/customFunctions/types.ts +25 -0
- package/src/customFunctions/validation.ts +49 -0
- package/src/customHooks/errors.ts +87 -0
- package/src/customHooks/fetchJson.ts +49 -0
- package/src/customHooks/index.ts +20 -0
- package/src/customHooks/internal.ts +67 -0
- package/src/customHooks/types.ts +71 -0
- package/src/customHooks/useApi.ts +107 -0
- package/src/customHooks/useLazyApi.ts +92 -0
- package/src/customHooks/useMutation.ts +97 -0
- package/src/customHooks/usePaginatedApi.ts +168 -0
- package/src/customHooks/usePollingApi.ts +48 -0
- package/src/index.tsx +63 -0
- package/src/multiply.tsx +3 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useMemo, useState } from 'react';
|
|
4
|
+
import { applyNumberPadKey } from "./utils.js";
|
|
5
|
+
export const useNumberPadInput = ({
|
|
6
|
+
initialValue = '',
|
|
7
|
+
maxLength,
|
|
8
|
+
allowDecimal = false,
|
|
9
|
+
decimalPlaces
|
|
10
|
+
} = {}) => {
|
|
11
|
+
const [value, setValue] = useState(initialValue);
|
|
12
|
+
const handleChange = useCallback(nextValue => {
|
|
13
|
+
setValue(nextValue);
|
|
14
|
+
}, []);
|
|
15
|
+
const handleKeyPress = useCallback(key => {
|
|
16
|
+
setValue(current => {
|
|
17
|
+
const next = applyNumberPadKey(current, key, {
|
|
18
|
+
maxLength,
|
|
19
|
+
allowDecimal,
|
|
20
|
+
decimalPlaces
|
|
21
|
+
});
|
|
22
|
+
return next ?? current;
|
|
23
|
+
});
|
|
24
|
+
}, [allowDecimal, decimalPlaces, maxLength]);
|
|
25
|
+
const clear = useCallback(() => {
|
|
26
|
+
setValue('');
|
|
27
|
+
}, []);
|
|
28
|
+
const numberPadProps = useMemo(() => ({
|
|
29
|
+
value,
|
|
30
|
+
onChange: handleChange,
|
|
31
|
+
maxLength,
|
|
32
|
+
allowDecimal,
|
|
33
|
+
decimalPlaces
|
|
34
|
+
}), [allowDecimal, decimalPlaces, handleChange, maxLength, value]);
|
|
35
|
+
return {
|
|
36
|
+
value,
|
|
37
|
+
setValue,
|
|
38
|
+
clear,
|
|
39
|
+
handleChange,
|
|
40
|
+
handleKeyPress,
|
|
41
|
+
numberPadProps
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=useNumberPadInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useMemo","useState","applyNumberPadKey","useNumberPadInput","initialValue","maxLength","allowDecimal","decimalPlaces","value","setValue","handleChange","nextValue","handleKeyPress","key","current","next","clear","numberPadProps","onChange"],"sourceRoot":"../../../../src","sources":["components/customNumberPad/useNumberPadInput.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAEtD,SAASC,iBAAiB,QAAQ,YAAS;AAG3C,OAAO,MAAMC,iBAAiB,GAAGA,CAAC;EAChCC,YAAY,GAAG,EAAE;EACjBC,SAAS;EACTC,YAAY,GAAG,KAAK;EACpBC;AACwB,CAAC,GAAG,CAAC,CAAC,KAAK;EACnC,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGR,QAAQ,CAACG,YAAY,CAAC;EAEhD,MAAMM,YAAY,GAAGX,WAAW,CAAEY,SAAiB,IAAK;IACtDF,QAAQ,CAACE,SAAS,CAAC;EACrB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,cAAc,GAAGb,WAAW,CAC/Bc,GAAW,IAAK;IACfJ,QAAQ,CAAEK,OAAO,IAAK;MACpB,MAAMC,IAAI,GAAGb,iBAAiB,CAACY,OAAO,EAAED,GAAG,EAAE;QAC3CR,SAAS;QACTC,YAAY;QACZC;MACF,CAAC,CAAC;MAEF,OAAOQ,IAAI,IAAID,OAAO;IACxB,CAAC,CAAC;EACJ,CAAC,EACD,CAACR,YAAY,EAAEC,aAAa,EAAEF,SAAS,CACzC,CAAC;EAED,MAAMW,KAAK,GAAGjB,WAAW,CAAC,MAAM;IAC9BU,QAAQ,CAAC,EAAE,CAAC;EACd,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMQ,cAAc,GAAGjB,OAAO,CAC5B,OAAO;IACLQ,KAAK;IACLU,QAAQ,EAAER,YAAY;IACtBL,SAAS;IACTC,YAAY;IACZC;EACF,CAAC,CAAC,EACF,CAACD,YAAY,EAAEC,aAAa,EAAEG,YAAY,EAAEL,SAAS,EAAEG,KAAK,CAC9D,CAAC;EAED,OAAO;IACLA,KAAK;IACLC,QAAQ;IACRO,KAAK;IACLN,YAAY;IACZE,cAAc;IACdK;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export const NUMBER_PAD_ROWS = [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']];
|
|
4
|
+
export const applyNumberPadKey = (value, key, options = {}) => {
|
|
5
|
+
const {
|
|
6
|
+
maxLength,
|
|
7
|
+
allowDecimal = false,
|
|
8
|
+
decimalPlaces
|
|
9
|
+
} = options;
|
|
10
|
+
if (key === 'backspace') {
|
|
11
|
+
return value.slice(0, -1);
|
|
12
|
+
}
|
|
13
|
+
if (key === '.') {
|
|
14
|
+
if (!allowDecimal || value.includes('.')) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
const next = value ? `${value}.` : '0.';
|
|
18
|
+
return maxLength && next.length > maxLength ? null : next;
|
|
19
|
+
}
|
|
20
|
+
if (!/^\d$/.test(key)) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
const next = `${value}${key}`;
|
|
24
|
+
if (maxLength && next.length > maxLength) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
if (allowDecimal && decimalPlaces != null && value.includes('.')) {
|
|
28
|
+
const [, decimalPart = ''] = value.split('.');
|
|
29
|
+
if (decimalPart.length >= decimalPlaces) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (value === '0' && key !== '.') {
|
|
34
|
+
return key;
|
|
35
|
+
}
|
|
36
|
+
return next;
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NUMBER_PAD_ROWS","applyNumberPadKey","value","key","options","maxLength","allowDecimal","decimalPlaces","slice","includes","next","length","test","decimalPart","split"],"sourceRoot":"../../../../src","sources":["components/customNumberPad/utils.ts"],"mappings":";;AAEA,OAAO,MAAMA,eAAe,GAAG,CAC7B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACf,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CACP;AAEV,OAAO,MAAMC,iBAAiB,GAAGA,CAC/BC,KAAa,EACbC,GAAW,EACXC,OAGC,GAAG,CAAC,CAAC,KACY;EAClB,MAAM;IAAEC,SAAS;IAAEC,YAAY,GAAG,KAAK;IAAEC;EAAc,CAAC,GAAGH,OAAO;EAElE,IAAID,GAAG,KAAK,WAAW,EAAE;IACvB,OAAOD,KAAK,CAACM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAC3B;EAEA,IAAIL,GAAG,KAAK,GAAG,EAAE;IACf,IAAI,CAACG,YAAY,IAAIJ,KAAK,CAACO,QAAQ,CAAC,GAAG,CAAC,EAAE;MACxC,OAAO,IAAI;IACb;IAEA,MAAMC,IAAI,GAAGR,KAAK,GAAG,GAAGA,KAAK,GAAG,GAAG,IAAI;IACvC,OAAOG,SAAS,IAAIK,IAAI,CAACC,MAAM,GAAGN,SAAS,GAAG,IAAI,GAAGK,IAAI;EAC3D;EAEA,IAAI,CAAC,MAAM,CAACE,IAAI,CAACT,GAAG,CAAC,EAAE;IACrB,OAAO,IAAI;EACb;EAEA,MAAMO,IAAI,GAAG,GAAGR,KAAK,GAAGC,GAAG,EAAE;EAE7B,IAAIE,SAAS,IAAIK,IAAI,CAACC,MAAM,GAAGN,SAAS,EAAE;IACxC,OAAO,IAAI;EACb;EAEA,IAAIC,YAAY,IAAIC,aAAa,IAAI,IAAI,IAAIL,KAAK,CAACO,QAAQ,CAAC,GAAG,CAAC,EAAE;IAChE,MAAM,GAAGI,WAAW,GAAG,EAAE,CAAC,GAAGX,KAAK,CAACY,KAAK,CAAC,GAAG,CAAC;IAC7C,IAAID,WAAW,CAACF,MAAM,IAAIJ,aAAa,EAAE;MACvC,OAAO,IAAI;IACb;EACF;EAEA,IAAIL,KAAK,KAAK,GAAG,IAAIC,GAAG,KAAK,GAAG,EAAE;IAChC,OAAOA,GAAG;EACZ;EAEA,OAAOO,IAAI;AACb,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useEffect, useRef } from 'react';
|
|
4
|
+
import { Animated } from 'react-native';
|
|
5
|
+
import { styles } from "./styles.js";
|
|
6
|
+
import { getIndicatorAtProgress } from "./tabBarScroll.js";
|
|
7
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
const AnimatedTabIndicator = ({
|
|
9
|
+
metrics,
|
|
10
|
+
pagerScrollX,
|
|
11
|
+
tabBarScrollX,
|
|
12
|
+
pageWidth,
|
|
13
|
+
initialScrollX = 0,
|
|
14
|
+
showPill = true,
|
|
15
|
+
showUnderline = true,
|
|
16
|
+
pillStyle,
|
|
17
|
+
underlineStyle
|
|
18
|
+
}) => {
|
|
19
|
+
const indicatorLeft = useRef(new Animated.Value(0)).current;
|
|
20
|
+
const indicatorWidth = useRef(new Animated.Value(0)).current;
|
|
21
|
+
const hasMetrics = metrics.some(metric => metric.width > 0);
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
if (!hasMetrics || pageWidth <= 0) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const updateIndicator = scrollValue => {
|
|
27
|
+
const progress = scrollValue / pageWidth;
|
|
28
|
+
const {
|
|
29
|
+
left,
|
|
30
|
+
width
|
|
31
|
+
} = getIndicatorAtProgress(progress, metrics);
|
|
32
|
+
indicatorLeft.setValue(left);
|
|
33
|
+
indicatorWidth.setValue(width);
|
|
34
|
+
};
|
|
35
|
+
updateIndicator(initialScrollX);
|
|
36
|
+
const listenerId = pagerScrollX.addListener(({
|
|
37
|
+
value
|
|
38
|
+
}) => {
|
|
39
|
+
updateIndicator(value);
|
|
40
|
+
});
|
|
41
|
+
return () => {
|
|
42
|
+
pagerScrollX.removeListener(listenerId);
|
|
43
|
+
};
|
|
44
|
+
}, [hasMetrics, indicatorLeft, indicatorWidth, initialScrollX, metrics, pageWidth, pagerScrollX]);
|
|
45
|
+
if (!hasMetrics) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
const animatedLeft = Animated.subtract(indicatorLeft, tabBarScrollX);
|
|
49
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
50
|
+
children: [showPill && /*#__PURE__*/_jsx(Animated.View, {
|
|
51
|
+
pointerEvents: "none",
|
|
52
|
+
style: [styles.indicatorPill, pillStyle, {
|
|
53
|
+
left: animatedLeft,
|
|
54
|
+
width: indicatorWidth
|
|
55
|
+
}]
|
|
56
|
+
}), showUnderline && /*#__PURE__*/_jsx(Animated.View, {
|
|
57
|
+
pointerEvents: "none",
|
|
58
|
+
style: [styles.indicatorUnderline, underlineStyle, {
|
|
59
|
+
left: animatedLeft,
|
|
60
|
+
width: indicatorWidth
|
|
61
|
+
}]
|
|
62
|
+
})]
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
export default AnimatedTabIndicator;
|
|
66
|
+
//# sourceMappingURL=AnimatedTabIndicator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","Animated","styles","getIndicatorAtProgress","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","AnimatedTabIndicator","metrics","pagerScrollX","tabBarScrollX","pageWidth","initialScrollX","showPill","showUnderline","pillStyle","underlineStyle","indicatorLeft","Value","current","indicatorWidth","hasMetrics","some","metric","width","updateIndicator","scrollValue","progress","left","setValue","listenerId","addListener","value","removeListener","animatedLeft","subtract","children","View","pointerEvents","style","indicatorPill","indicatorUnderline"],"sourceRoot":"../../../../src","sources":["components/customSlideTabs/AnimatedTabIndicator.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,SAASC,QAAQ,QAAwC,cAAc;AAEvE,SAASC,MAAM,QAAQ,aAAU;AACjC,SAASC,sBAAsB,QAA8B,mBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAc9E,MAAMC,oBAAoB,GAAGA,CAAC;EAC5BC,OAAO;EACPC,YAAY;EACZC,aAAa;EACbC,SAAS;EACTC,cAAc,GAAG,CAAC;EAClBC,QAAQ,GAAG,IAAI;EACfC,aAAa,GAAG,IAAI;EACpBC,SAAS;EACTC;AACyB,CAAC,KAAK;EAC/B,MAAMC,aAAa,GAAGpB,MAAM,CAAC,IAAIC,QAAQ,CAACoB,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAC3D,MAAMC,cAAc,GAAGvB,MAAM,CAAC,IAAIC,QAAQ,CAACoB,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAC5D,MAAME,UAAU,GAAGb,OAAO,CAACc,IAAI,CAAEC,MAAM,IAAKA,MAAM,CAACC,KAAK,GAAG,CAAC,CAAC;EAE7D5B,SAAS,CAAC,MAAM;IACd,IAAI,CAACyB,UAAU,IAAIV,SAAS,IAAI,CAAC,EAAE;MACjC;IACF;IAEA,MAAMc,eAAe,GAAIC,WAAmB,IAAK;MAC/C,MAAMC,QAAQ,GAAGD,WAAW,GAAGf,SAAS;MACxC,MAAM;QAAEiB,IAAI;QAAEJ;MAAM,CAAC,GAAGxB,sBAAsB,CAAC2B,QAAQ,EAAEnB,OAAO,CAAC;MACjES,aAAa,CAACY,QAAQ,CAACD,IAAI,CAAC;MAC5BR,cAAc,CAACS,QAAQ,CAACL,KAAK,CAAC;IAChC,CAAC;IAEDC,eAAe,CAACb,cAAc,CAAC;IAE/B,MAAMkB,UAAU,GAAGrB,YAAY,CAACsB,WAAW,CAAC,CAAC;MAAEC;IAAM,CAAC,KAAK;MACzDP,eAAe,CAACO,KAAK,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO,MAAM;MACXvB,YAAY,CAACwB,cAAc,CAACH,UAAU,CAAC;IACzC,CAAC;EACH,CAAC,EAAE,CACDT,UAAU,EACVJ,aAAa,EACbG,cAAc,EACdR,cAAc,EACdJ,OAAO,EACPG,SAAS,EACTF,YAAY,CACb,CAAC;EAEF,IAAI,CAACY,UAAU,EAAE;IACf,OAAO,IAAI;EACb;EAEA,MAAMa,YAAY,GAAGpC,QAAQ,CAACqC,QAAQ,CAAClB,aAAa,EAAEP,aAAa,CAAC;EAEpE,oBACEJ,KAAA,CAAAF,SAAA;IAAAgC,QAAA,GACGvB,QAAQ,iBACPX,IAAA,CAACJ,QAAQ,CAACuC,IAAI;MACZC,aAAa,EAAC,MAAM;MACpBC,KAAK,EAAE,CACLxC,MAAM,CAACyC,aAAa,EACpBzB,SAAS,EACT;QACEa,IAAI,EAAEM,YAAY;QAClBV,KAAK,EAAEJ;MACT,CAAC;IACD,CACH,CACF,EACAN,aAAa,iBACZZ,IAAA,CAACJ,QAAQ,CAACuC,IAAI;MACZC,aAAa,EAAC,MAAM;MACpBC,KAAK,EAAE,CACLxC,MAAM,CAAC0C,kBAAkB,EACzBzB,cAAc,EACd;QACEY,IAAI,EAAEM,YAAY;QAClBV,KAAK,EAAEJ;MACT,CAAC;IACD,CACH,CACF;EAAA,CACD,CAAC;AAEP,CAAC;AAED,eAAeb,oBAAoB","ignoreList":[]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Image, Pressable, Text, View } from 'react-native';
|
|
4
|
+
import { styles } from "./styles.js";
|
|
5
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
|
+
const TabBarItem = ({
|
|
7
|
+
item,
|
|
8
|
+
index,
|
|
9
|
+
isActive,
|
|
10
|
+
showUnderline = true,
|
|
11
|
+
useAnimatedIndicator = true,
|
|
12
|
+
onPress,
|
|
13
|
+
onMeasure,
|
|
14
|
+
renderTab,
|
|
15
|
+
tabStyle,
|
|
16
|
+
activeTabStyle,
|
|
17
|
+
tabTextStyle,
|
|
18
|
+
activeTabTextStyle,
|
|
19
|
+
tabImageStyle,
|
|
20
|
+
activeTabImageStyle,
|
|
21
|
+
underlineStyle
|
|
22
|
+
}) => {
|
|
23
|
+
const Icon = item.LeftIcon;
|
|
24
|
+
const handleLayout = event => {
|
|
25
|
+
onMeasure?.(index, event.nativeEvent.layout.width);
|
|
26
|
+
};
|
|
27
|
+
return /*#__PURE__*/_jsxs(Pressable, {
|
|
28
|
+
accessibilityRole: "tab",
|
|
29
|
+
accessibilityState: {
|
|
30
|
+
selected: isActive
|
|
31
|
+
},
|
|
32
|
+
accessibilityLabel: item.title,
|
|
33
|
+
onLayout: handleLayout,
|
|
34
|
+
onPress: () => onPress(index),
|
|
35
|
+
style: [styles.tabItem, useAnimatedIndicator && styles.tabItemTransparent, tabStyle, !useAnimatedIndicator && isActive && styles.tabItemActive, !useAnimatedIndicator && isActive && activeTabStyle],
|
|
36
|
+
children: [renderTab ? renderTab(item, index, isActive) : /*#__PURE__*/_jsxs(View, {
|
|
37
|
+
style: styles.tabContent,
|
|
38
|
+
children: [item.image && /*#__PURE__*/_jsx(Image, {
|
|
39
|
+
resizeMode: "contain",
|
|
40
|
+
source: item.image,
|
|
41
|
+
style: [styles.tabImage, tabImageStyle, isActive && styles.tabImageActive, isActive && activeTabImageStyle]
|
|
42
|
+
}), Icon && /*#__PURE__*/_jsx(Icon, {
|
|
43
|
+
size: 18,
|
|
44
|
+
color: isActive ? '#0D6EFD' : '#6C757D'
|
|
45
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
46
|
+
style: [styles.tabText, tabTextStyle, isActive && styles.tabTextActive, isActive && activeTabTextStyle],
|
|
47
|
+
children: item.title
|
|
48
|
+
}), item.badge != null && /*#__PURE__*/_jsx(View, {
|
|
49
|
+
style: styles.badge,
|
|
50
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
51
|
+
style: styles.badgeText,
|
|
52
|
+
children: item.badge
|
|
53
|
+
})
|
|
54
|
+
})]
|
|
55
|
+
}), showUnderline && isActive && !renderTab && !useAnimatedIndicator && /*#__PURE__*/_jsx(View, {
|
|
56
|
+
style: [styles.underline, underlineStyle]
|
|
57
|
+
})]
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
export default TabBarItem;
|
|
61
|
+
//# sourceMappingURL=TabBarItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Image","Pressable","Text","View","styles","jsx","_jsx","jsxs","_jsxs","TabBarItem","item","index","isActive","showUnderline","useAnimatedIndicator","onPress","onMeasure","renderTab","tabStyle","activeTabStyle","tabTextStyle","activeTabTextStyle","tabImageStyle","activeTabImageStyle","underlineStyle","Icon","LeftIcon","handleLayout","event","nativeEvent","layout","width","accessibilityRole","accessibilityState","selected","accessibilityLabel","title","onLayout","style","tabItem","tabItemTransparent","tabItemActive","children","tabContent","image","resizeMode","source","tabImage","tabImageActive","size","color","tabText","tabTextActive","badge","badgeText","underline"],"sourceRoot":"../../../../src","sources":["components/customSlideTabs/TabBarItem.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useEffect, useRef } from 'react';
|
|
4
|
+
import { Text, View } from 'react-native';
|
|
5
|
+
import { useApi } from "../../customHooks/useApi.js";
|
|
6
|
+
import { styles } from "./styles.js";
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
const TabScene = ({
|
|
9
|
+
tab,
|
|
10
|
+
index,
|
|
11
|
+
isActive,
|
|
12
|
+
shouldMount,
|
|
13
|
+
fetchSceneData,
|
|
14
|
+
fetchWhenActive,
|
|
15
|
+
refetchOnRevisit,
|
|
16
|
+
keepPreviousSceneData,
|
|
17
|
+
renderScene,
|
|
18
|
+
renderSceneHeader,
|
|
19
|
+
showSceneHeading = true,
|
|
20
|
+
sceneStyle,
|
|
21
|
+
sceneHeaderStyle,
|
|
22
|
+
sceneHeadingStyle,
|
|
23
|
+
sceneSubtitleStyle
|
|
24
|
+
}) => {
|
|
25
|
+
const hasFetchedRef = useRef(false);
|
|
26
|
+
const shouldFetch = Boolean(fetchSceneData) && fetchWhenActive && isActive && shouldMount && (refetchOnRevisit || !hasFetchedRef.current);
|
|
27
|
+
const api = useApi(signal => fetchSceneData(tab, index, signal), {
|
|
28
|
+
enabled: shouldFetch && Boolean(fetchSceneData),
|
|
29
|
+
keepPreviousData: keepPreviousSceneData,
|
|
30
|
+
deps: [tab.key, index]
|
|
31
|
+
});
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
if (api.isSuccess) {
|
|
34
|
+
hasFetchedRef.current = true;
|
|
35
|
+
}
|
|
36
|
+
}, [api.isSuccess]);
|
|
37
|
+
if (!shouldMount) {
|
|
38
|
+
return /*#__PURE__*/_jsx(View, {
|
|
39
|
+
style: [styles.scene, sceneStyle],
|
|
40
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
41
|
+
style: styles.scenePlaceholder,
|
|
42
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
43
|
+
style: styles.scenePlaceholderText,
|
|
44
|
+
children: "Swipe to open this tab"
|
|
45
|
+
})
|
|
46
|
+
})
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
const sceneState = {
|
|
50
|
+
tab,
|
|
51
|
+
index,
|
|
52
|
+
isActive,
|
|
53
|
+
data: api.data,
|
|
54
|
+
error: api.error,
|
|
55
|
+
isIdle: api.isIdle,
|
|
56
|
+
isLoading: api.isLoading,
|
|
57
|
+
isSuccess: api.isSuccess,
|
|
58
|
+
isError: api.isError,
|
|
59
|
+
refetch: api.refetch,
|
|
60
|
+
reset: api.reset
|
|
61
|
+
};
|
|
62
|
+
const heading = tab.heading ?? tab.title;
|
|
63
|
+
const hasDefaultHeader = showSceneHeading && (heading || tab.subtitle);
|
|
64
|
+
const renderHeader = () => {
|
|
65
|
+
if (renderSceneHeader) {
|
|
66
|
+
return renderSceneHeader(sceneState);
|
|
67
|
+
}
|
|
68
|
+
if (!hasDefaultHeader) {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
72
|
+
style: [styles.sceneHeader, sceneHeaderStyle],
|
|
73
|
+
children: [!!heading && /*#__PURE__*/_jsx(Text, {
|
|
74
|
+
style: [styles.sceneHeading, sceneHeadingStyle],
|
|
75
|
+
children: heading
|
|
76
|
+
}), !!tab.subtitle && /*#__PURE__*/_jsx(Text, {
|
|
77
|
+
style: [styles.sceneSubtitle, sceneSubtitleStyle],
|
|
78
|
+
children: tab.subtitle
|
|
79
|
+
})]
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
83
|
+
style: [styles.scene, sceneStyle],
|
|
84
|
+
children: [renderHeader(), renderScene(sceneState)]
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
export default TabScene;
|
|
88
|
+
//# sourceMappingURL=TabScene.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","Text","View","useApi","styles","jsx","_jsx","jsxs","_jsxs","TabScene","tab","index","isActive","shouldMount","fetchSceneData","fetchWhenActive","refetchOnRevisit","keepPreviousSceneData","renderScene","renderSceneHeader","showSceneHeading","sceneStyle","sceneHeaderStyle","sceneHeadingStyle","sceneSubtitleStyle","hasFetchedRef","shouldFetch","Boolean","current","api","signal","enabled","keepPreviousData","deps","key","isSuccess","style","scene","children","scenePlaceholder","scenePlaceholderText","sceneState","data","error","isIdle","isLoading","isError","refetch","reset","heading","title","hasDefaultHeader","subtitle","renderHeader","sceneHeader","sceneHeading","sceneSubtitle"],"sourceRoot":"../../../../src","sources":["components/customSlideTabs/TabScene.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
4
|
+
import { Animated, Dimensions, FlatList, View } from 'react-native';
|
|
5
|
+
import AnimatedTabIndicator from "./AnimatedTabIndicator.js";
|
|
6
|
+
import TabBarItem from "./TabBarItem.js";
|
|
7
|
+
import TabScene from "./TabScene.js";
|
|
8
|
+
import { styles } from "./styles.js";
|
|
9
|
+
import { buildTabLayoutMetrics, getCenteredTabScrollOffset, getCenteredTabScrollOffsetFromProgress, getMaxTabScrollOffset } from "./tabBarScroll.js";
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
+
const CustomSlideTabs = ({
|
|
12
|
+
tabs,
|
|
13
|
+
renderScene,
|
|
14
|
+
fetchSceneData,
|
|
15
|
+
initialIndex = 0,
|
|
16
|
+
lazy = true,
|
|
17
|
+
fetchWhenActive = true,
|
|
18
|
+
refetchOnRevisit = false,
|
|
19
|
+
keepPreviousSceneData = true,
|
|
20
|
+
onTabChange,
|
|
21
|
+
renderTab,
|
|
22
|
+
renderSceneHeader,
|
|
23
|
+
showSceneHeading = true,
|
|
24
|
+
animatedIndicator = true,
|
|
25
|
+
showUnderline = true,
|
|
26
|
+
tabBarStyle,
|
|
27
|
+
tabStyle,
|
|
28
|
+
activeTabStyle,
|
|
29
|
+
tabTextStyle,
|
|
30
|
+
activeTabTextStyle,
|
|
31
|
+
tabImageStyle,
|
|
32
|
+
activeTabImageStyle,
|
|
33
|
+
underlineStyle,
|
|
34
|
+
indicatorPillStyle,
|
|
35
|
+
sceneHeadingStyle,
|
|
36
|
+
sceneSubtitleStyle,
|
|
37
|
+
sceneHeaderStyle,
|
|
38
|
+
sceneContainerStyle,
|
|
39
|
+
sceneStyle,
|
|
40
|
+
pageWidth
|
|
41
|
+
}) => {
|
|
42
|
+
const [selectedIndex, setSelectedIndex] = useState(initialIndex);
|
|
43
|
+
const [visitedIndexes, setVisitedIndexes] = useState(() => new Set([initialIndex]));
|
|
44
|
+
const [containerWidth, setContainerWidth] = useState(pageWidth ?? Dimensions.get('window').width);
|
|
45
|
+
const [tabWidthsVersion, setTabWidthsVersion] = useState(0);
|
|
46
|
+
const tabListRef = useRef(null);
|
|
47
|
+
const pagerRef = useRef(null);
|
|
48
|
+
const tabWidthsRef = useRef([]);
|
|
49
|
+
const tabBarWidthRef = useRef(0);
|
|
50
|
+
const tabBarScrollXRef = useRef(0);
|
|
51
|
+
const tabLayoutMetricsRef = useRef(buildTabLayoutMetrics([]));
|
|
52
|
+
const pagerScrollX = useRef(new Animated.Value(0)).current;
|
|
53
|
+
const tabBarScrollX = useRef(new Animated.Value(0)).current;
|
|
54
|
+
const resolvedWidth = pageWidth ?? containerWidth;
|
|
55
|
+
const tabWidthsSnapshot = useMemo(() => tabs.map((_, index) => tabWidthsVersion >= 0 ? tabWidthsRef.current[index] : undefined), [tabWidthsVersion, tabs]);
|
|
56
|
+
const tabLayoutMetrics = useMemo(() => {
|
|
57
|
+
const metrics = buildTabLayoutMetrics(tabWidthsSnapshot);
|
|
58
|
+
tabLayoutMetricsRef.current = metrics;
|
|
59
|
+
return metrics;
|
|
60
|
+
}, [tabWidthsSnapshot]);
|
|
61
|
+
const applyTabBarScroll = useCallback((offset, animated) => {
|
|
62
|
+
const maxOffset = getMaxTabScrollOffset(tabLayoutMetricsRef.current, tabBarWidthRef.current);
|
|
63
|
+
const safeOffset = Math.min(maxOffset, Math.max(0, offset));
|
|
64
|
+
tabListRef.current?.scrollToOffset({
|
|
65
|
+
offset: safeOffset,
|
|
66
|
+
animated
|
|
67
|
+
});
|
|
68
|
+
tabBarScrollXRef.current = safeOffset;
|
|
69
|
+
tabBarScrollX.setValue(safeOffset);
|
|
70
|
+
}, [tabBarScrollX]);
|
|
71
|
+
const scrollTabBarToIndex = useCallback((index, animated) => {
|
|
72
|
+
const nextOffset = getCenteredTabScrollOffset(index, tabLayoutMetricsRef.current, tabBarWidthRef.current);
|
|
73
|
+
if (nextOffset == null) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
applyTabBarScroll(nextOffset, animated);
|
|
77
|
+
}, [applyTabBarScroll]);
|
|
78
|
+
const scrollTabBarToProgress = useCallback((progress, animated) => {
|
|
79
|
+
const nextOffset = getCenteredTabScrollOffsetFromProgress(progress, tabLayoutMetricsRef.current, tabBarWidthRef.current);
|
|
80
|
+
if (nextOffset == null) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
applyTabBarScroll(nextOffset, animated);
|
|
84
|
+
}, [applyTabBarScroll]);
|
|
85
|
+
const handleTabMeasure = useCallback((index, width) => {
|
|
86
|
+
if (tabWidthsRef.current[index] === width) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
tabWidthsRef.current[index] = width;
|
|
90
|
+
setTabWidthsVersion(current => current + 1);
|
|
91
|
+
}, []);
|
|
92
|
+
const scrollPagerToIndex = useCallback((index, animated = true) => {
|
|
93
|
+
pagerRef.current?.scrollToIndex({
|
|
94
|
+
index,
|
|
95
|
+
animated
|
|
96
|
+
});
|
|
97
|
+
}, []);
|
|
98
|
+
const selectTab = useCallback((index, animated = true) => {
|
|
99
|
+
if (index < 0 || index >= tabs.length) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
setSelectedIndex(index);
|
|
103
|
+
setVisitedIndexes(current => {
|
|
104
|
+
const next = new Set(current);
|
|
105
|
+
next.add(index);
|
|
106
|
+
return next;
|
|
107
|
+
});
|
|
108
|
+
scrollPagerToIndex(index, animated);
|
|
109
|
+
onTabChange?.(index, tabs[index]);
|
|
110
|
+
}, [onTabChange, scrollPagerToIndex, tabs]);
|
|
111
|
+
const onPagerMomentumEnd = useCallback(event => {
|
|
112
|
+
const offsetX = event.nativeEvent.contentOffset.x;
|
|
113
|
+
const nextIndex = Math.round(offsetX / resolvedWidth);
|
|
114
|
+
const safeIndex = Math.max(0, Math.min(nextIndex, tabs.length - 1));
|
|
115
|
+
if (safeIndex !== selectedIndex) {
|
|
116
|
+
setSelectedIndex(safeIndex);
|
|
117
|
+
setVisitedIndexes(current => {
|
|
118
|
+
const next = new Set(current);
|
|
119
|
+
next.add(safeIndex);
|
|
120
|
+
return next;
|
|
121
|
+
});
|
|
122
|
+
onTabChange?.(safeIndex, tabs[safeIndex]);
|
|
123
|
+
}
|
|
124
|
+
}, [onTabChange, resolvedWidth, selectedIndex, tabs]);
|
|
125
|
+
const onContainerLayout = useCallback(event => {
|
|
126
|
+
if (!pageWidth) {
|
|
127
|
+
setContainerWidth(event.nativeEvent.layout.width);
|
|
128
|
+
}
|
|
129
|
+
}, [pageWidth]);
|
|
130
|
+
const onTabBarLayout = useCallback(event => {
|
|
131
|
+
tabBarWidthRef.current = event.nativeEvent.layout.width;
|
|
132
|
+
scrollTabBarToIndex(selectedIndex, false);
|
|
133
|
+
}, [scrollTabBarToIndex, selectedIndex]);
|
|
134
|
+
const onTabBarScroll = useMemo(() => Animated.event([{
|
|
135
|
+
nativeEvent: {
|
|
136
|
+
contentOffset: {
|
|
137
|
+
x: tabBarScrollX
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}], {
|
|
141
|
+
useNativeDriver: false,
|
|
142
|
+
listener: event => {
|
|
143
|
+
tabBarScrollXRef.current = event.nativeEvent.contentOffset.x;
|
|
144
|
+
}
|
|
145
|
+
}), [tabBarScrollX]);
|
|
146
|
+
const onPagerScroll = useMemo(() => Animated.event([{
|
|
147
|
+
nativeEvent: {
|
|
148
|
+
contentOffset: {
|
|
149
|
+
x: pagerScrollX
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}], {
|
|
153
|
+
useNativeDriver: false,
|
|
154
|
+
listener: event => {
|
|
155
|
+
if (resolvedWidth <= 0) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
const progress = event.nativeEvent.contentOffset.x / resolvedWidth;
|
|
159
|
+
scrollTabBarToProgress(progress, false);
|
|
160
|
+
}
|
|
161
|
+
}), [pagerScrollX, resolvedWidth, scrollTabBarToProgress]);
|
|
162
|
+
useEffect(() => {
|
|
163
|
+
pagerScrollX.setValue(initialIndex * resolvedWidth);
|
|
164
|
+
}, [initialIndex, pagerScrollX, resolvedWidth]);
|
|
165
|
+
useEffect(() => {
|
|
166
|
+
tabWidthsRef.current = [];
|
|
167
|
+
setTabWidthsVersion(current => current + 1);
|
|
168
|
+
}, [tabs]);
|
|
169
|
+
useEffect(() => {
|
|
170
|
+
scrollPagerToIndex(initialIndex, false);
|
|
171
|
+
scrollTabBarToIndex(initialIndex, false);
|
|
172
|
+
}, [initialIndex, scrollPagerToIndex, scrollTabBarToIndex]);
|
|
173
|
+
useEffect(() => {
|
|
174
|
+
if (tabLayoutMetrics.some(metric => metric.width > 0)) {
|
|
175
|
+
scrollTabBarToIndex(selectedIndex, false);
|
|
176
|
+
}
|
|
177
|
+
}, [tabLayoutMetrics, scrollTabBarToIndex, selectedIndex]);
|
|
178
|
+
const tabBarData = useMemo(() => tabs, [tabs]);
|
|
179
|
+
const renderPagerItem = useCallback(({
|
|
180
|
+
item,
|
|
181
|
+
index
|
|
182
|
+
}) => /*#__PURE__*/_jsx(View, {
|
|
183
|
+
style: {
|
|
184
|
+
width: resolvedWidth
|
|
185
|
+
},
|
|
186
|
+
children: /*#__PURE__*/_jsx(TabScene, {
|
|
187
|
+
tab: item,
|
|
188
|
+
index: index,
|
|
189
|
+
isActive: selectedIndex === index,
|
|
190
|
+
shouldMount: !lazy || visitedIndexes.has(index),
|
|
191
|
+
fetchSceneData: fetchSceneData,
|
|
192
|
+
fetchWhenActive: fetchWhenActive,
|
|
193
|
+
refetchOnRevisit: refetchOnRevisit,
|
|
194
|
+
keepPreviousSceneData: keepPreviousSceneData,
|
|
195
|
+
renderScene: renderScene,
|
|
196
|
+
renderSceneHeader: renderSceneHeader,
|
|
197
|
+
showSceneHeading: showSceneHeading,
|
|
198
|
+
sceneStyle: sceneStyle,
|
|
199
|
+
sceneHeaderStyle: sceneHeaderStyle,
|
|
200
|
+
sceneHeadingStyle: sceneHeadingStyle,
|
|
201
|
+
sceneSubtitleStyle: sceneSubtitleStyle
|
|
202
|
+
})
|
|
203
|
+
}), [fetchSceneData, fetchWhenActive, keepPreviousSceneData, lazy, refetchOnRevisit, renderScene, renderSceneHeader, resolvedWidth, sceneHeaderStyle, sceneHeadingStyle, sceneStyle, sceneSubtitleStyle, selectedIndex, showSceneHeading, visitedIndexes]);
|
|
204
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
205
|
+
style: styles.container,
|
|
206
|
+
onLayout: onContainerLayout,
|
|
207
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
208
|
+
style: [styles.tabBar, tabBarStyle],
|
|
209
|
+
onLayout: onTabBarLayout,
|
|
210
|
+
children: [animatedIndicator && /*#__PURE__*/_jsx(AnimatedTabIndicator, {
|
|
211
|
+
metrics: tabLayoutMetrics,
|
|
212
|
+
pagerScrollX: pagerScrollX,
|
|
213
|
+
tabBarScrollX: tabBarScrollX,
|
|
214
|
+
pageWidth: resolvedWidth,
|
|
215
|
+
initialScrollX: selectedIndex * resolvedWidth,
|
|
216
|
+
showPill: true,
|
|
217
|
+
showUnderline: showUnderline,
|
|
218
|
+
pillStyle: indicatorPillStyle,
|
|
219
|
+
underlineStyle: underlineStyle
|
|
220
|
+
}), /*#__PURE__*/_jsx(FlatList, {
|
|
221
|
+
ref: tabListRef,
|
|
222
|
+
horizontal: true,
|
|
223
|
+
showsHorizontalScrollIndicator: false,
|
|
224
|
+
data: tabBarData,
|
|
225
|
+
keyExtractor: item => item.key,
|
|
226
|
+
contentContainerStyle: styles.tabBarContent,
|
|
227
|
+
scrollEventThrottle: 16,
|
|
228
|
+
onScroll: onTabBarScroll,
|
|
229
|
+
renderItem: ({
|
|
230
|
+
item,
|
|
231
|
+
index
|
|
232
|
+
}) => /*#__PURE__*/_jsx(TabBarItem, {
|
|
233
|
+
item: item,
|
|
234
|
+
index: index,
|
|
235
|
+
isActive: selectedIndex === index,
|
|
236
|
+
showUnderline: showUnderline,
|
|
237
|
+
useAnimatedIndicator: animatedIndicator,
|
|
238
|
+
renderTab: renderTab,
|
|
239
|
+
tabStyle: tabStyle,
|
|
240
|
+
activeTabStyle: activeTabStyle,
|
|
241
|
+
tabTextStyle: tabTextStyle,
|
|
242
|
+
activeTabTextStyle: activeTabTextStyle,
|
|
243
|
+
tabImageStyle: tabImageStyle,
|
|
244
|
+
activeTabImageStyle: activeTabImageStyle,
|
|
245
|
+
underlineStyle: underlineStyle,
|
|
246
|
+
onMeasure: handleTabMeasure,
|
|
247
|
+
onPress: selectTab
|
|
248
|
+
})
|
|
249
|
+
})]
|
|
250
|
+
}), /*#__PURE__*/_jsx(Animated.FlatList, {
|
|
251
|
+
ref: pagerRef,
|
|
252
|
+
horizontal: true,
|
|
253
|
+
pagingEnabled: true,
|
|
254
|
+
bounces: false,
|
|
255
|
+
scrollEventThrottle: 16,
|
|
256
|
+
showsHorizontalScrollIndicator: false,
|
|
257
|
+
data: tabBarData,
|
|
258
|
+
keyExtractor: item => `scene-${item.key}`,
|
|
259
|
+
style: [styles.pager, sceneContainerStyle],
|
|
260
|
+
getItemLayout: (_, index) => ({
|
|
261
|
+
length: resolvedWidth,
|
|
262
|
+
offset: resolvedWidth * index,
|
|
263
|
+
index
|
|
264
|
+
}),
|
|
265
|
+
onScroll: onPagerScroll,
|
|
266
|
+
onMomentumScrollEnd: onPagerMomentumEnd,
|
|
267
|
+
onScrollToIndexFailed: ({
|
|
268
|
+
index
|
|
269
|
+
}) => {
|
|
270
|
+
setTimeout(() => scrollPagerToIndex(index), 100);
|
|
271
|
+
},
|
|
272
|
+
renderItem: renderPagerItem
|
|
273
|
+
})]
|
|
274
|
+
});
|
|
275
|
+
};
|
|
276
|
+
export default CustomSlideTabs;
|
|
277
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","Animated","Dimensions","FlatList","View","AnimatedTabIndicator","TabBarItem","TabScene","styles","buildTabLayoutMetrics","getCenteredTabScrollOffset","getCenteredTabScrollOffsetFromProgress","getMaxTabScrollOffset","jsx","_jsx","jsxs","_jsxs","CustomSlideTabs","tabs","renderScene","fetchSceneData","initialIndex","lazy","fetchWhenActive","refetchOnRevisit","keepPreviousSceneData","onTabChange","renderTab","renderSceneHeader","showSceneHeading","animatedIndicator","showUnderline","tabBarStyle","tabStyle","activeTabStyle","tabTextStyle","activeTabTextStyle","tabImageStyle","activeTabImageStyle","underlineStyle","indicatorPillStyle","sceneHeadingStyle","sceneSubtitleStyle","sceneHeaderStyle","sceneContainerStyle","sceneStyle","pageWidth","selectedIndex","setSelectedIndex","visitedIndexes","setVisitedIndexes","Set","containerWidth","setContainerWidth","get","width","tabWidthsVersion","setTabWidthsVersion","tabListRef","pagerRef","tabWidthsRef","tabBarWidthRef","tabBarScrollXRef","tabLayoutMetricsRef","pagerScrollX","Value","current","tabBarScrollX","resolvedWidth","tabWidthsSnapshot","map","_","index","undefined","tabLayoutMetrics","metrics","applyTabBarScroll","offset","animated","maxOffset","safeOffset","Math","min","max","scrollToOffset","setValue","scrollTabBarToIndex","nextOffset","scrollTabBarToProgress","progress","handleTabMeasure","scrollPagerToIndex","scrollToIndex","selectTab","length","next","add","onPagerMomentumEnd","event","offsetX","nativeEvent","contentOffset","x","nextIndex","round","safeIndex","onContainerLayout","layout","onTabBarLayout","onTabBarScroll","useNativeDriver","listener","onPagerScroll","some","metric","tabBarData","renderPagerItem","item","style","children","tab","isActive","shouldMount","has","container","onLayout","tabBar","initialScrollX","showPill","pillStyle","ref","horizontal","showsHorizontalScrollIndicator","data","keyExtractor","key","contentContainerStyle","tabBarContent","scrollEventThrottle","onScroll","renderItem","useAnimatedIndicator","onMeasure","onPress","pagingEnabled","bounces","pager","getItemLayout","onMomentumScrollEnd","onScrollToIndexFailed","setTimeout"],"sourceRoot":"../../../../src","sources":["components/customSlideTabs/index.tsx"],"mappings":"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","ignoreList":[]}
|