related-ui-components 4.2.3 → 4.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/module/components/Input/CountryPickerView.js +4 -2
- package/lib/module/components/Input/CountryPickerView.js.map +1 -1
- package/lib/module/contexts/UniversalModalProvider.js +21 -14
- package/lib/module/contexts/UniversalModalProvider.js.map +1 -1
- package/lib/typescript/src/components/Input/CountryPickerView.d.ts +3 -2
- package/lib/typescript/src/components/Input/CountryPickerView.d.ts.map +1 -1
- package/lib/typescript/src/contexts/UniversalModalProvider.d.ts +4 -1
- package/lib/typescript/src/contexts/UniversalModalProvider.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/Input/CountryPickerView.tsx +6 -2
- package/src/contexts/UniversalModalProvider.tsx +27 -13
|
@@ -50,7 +50,8 @@ const CountryPickerView = ({
|
|
|
50
50
|
countryNameStyle,
|
|
51
51
|
countryCodeStyle,
|
|
52
52
|
searchPlaceholder = "Search...",
|
|
53
|
-
isNative
|
|
53
|
+
isNative,
|
|
54
|
+
style
|
|
54
55
|
}) => {
|
|
55
56
|
const {
|
|
56
57
|
theme
|
|
@@ -82,7 +83,7 @@ const CountryPickerView = ({
|
|
|
82
83
|
}), [onSelectCountry, memoizedNameStyle, memoizedCodeStyle]);
|
|
83
84
|
const FlatListComponent = isNative ? FlatList : BottomSheetFlatList;
|
|
84
85
|
return /*#__PURE__*/_jsxs(View, {
|
|
85
|
-
style: styles.popup,
|
|
86
|
+
style: [styles.popup, style],
|
|
86
87
|
children: [/*#__PURE__*/_jsx(Text, {
|
|
87
88
|
style: [styles.popupTitle, {
|
|
88
89
|
color: theme.text
|
|
@@ -103,6 +104,7 @@ const CountryPickerView = ({
|
|
|
103
104
|
},
|
|
104
105
|
initialNumToRender: 15,
|
|
105
106
|
maxToRenderPerBatch: 10,
|
|
107
|
+
nestedScrollEnabled: isNative,
|
|
106
108
|
showsVerticalScrollIndicator: false,
|
|
107
109
|
keyboardShouldPersistTaps: "handled",
|
|
108
110
|
ListEmptyComponent: /*#__PURE__*/_jsx(View, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useEffect","useCallback","useMemo","View","TouchableOpacity","StyleSheet","Keyboard","FlatList","BottomSheetFlatList","useTheme","iso2ToFlagEmoji","allCountries","CustomInput","ThemedText","Text","jsxs","_jsxs","jsx","_jsx","DEFAULT_COUNTRIES","map","c","code","dialCode","iso2","name","CountryRow","memo","item","onSelectCountry","nameStyle","codeStyle","handlePress","dismiss","style","styles","countryRow","onPress","children","flag","countryText","CountryPickerView","countries","listTitle","listTitleStyle","countryNameStyle","countryCodeStyle","searchPlaceholder","isNative","theme","searchQuery","setSearchQuery","filteredCountries","setFilteredCountries","lowercasedQuery","toLowerCase","trim","newFilteredData","filter","country","includes","memoizedNameStyle","countryName","color","text","memoizedCodeStyle","countryCode","helper","renderCountry","FlatListComponent","popup","popupTitle","placeholder","value","isBottomSheet","onChangeText","containerStyle","searchInputContainer","data","keyExtractor","renderItem","contentContainerStyle","paddingBottom","initialNumToRender","maxToRenderPerBatch","showsVerticalScrollIndicator","keyboardShouldPersistTaps","ListEmptyComponent","emptyListContainer","emptyListText","create","flex","width","paddingHorizontal","fontSize","fontWeight","marginBottom","paddingTop","flexDirection","alignItems","paddingVertical","marginLeft"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Input/CountryPickerView.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,EAAEC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACxE,SACEC,IAAI,EACJC,gBAAgB,EAChBC,UAAU,EAGVC,QAAQ,EACRC,QAAQ,
|
|
1
|
+
{"version":3,"names":["React","useState","useEffect","useCallback","useMemo","View","TouchableOpacity","StyleSheet","Keyboard","FlatList","BottomSheetFlatList","useTheme","iso2ToFlagEmoji","allCountries","CustomInput","ThemedText","Text","jsxs","_jsxs","jsx","_jsx","DEFAULT_COUNTRIES","map","c","code","dialCode","iso2","name","CountryRow","memo","item","onSelectCountry","nameStyle","codeStyle","handlePress","dismiss","style","styles","countryRow","onPress","children","flag","countryText","CountryPickerView","countries","listTitle","listTitleStyle","countryNameStyle","countryCodeStyle","searchPlaceholder","isNative","theme","searchQuery","setSearchQuery","filteredCountries","setFilteredCountries","lowercasedQuery","toLowerCase","trim","newFilteredData","filter","country","includes","memoizedNameStyle","countryName","color","text","memoizedCodeStyle","countryCode","helper","renderCountry","FlatListComponent","popup","popupTitle","placeholder","value","isBottomSheet","onChangeText","containerStyle","searchInputContainer","data","keyExtractor","renderItem","contentContainerStyle","paddingBottom","initialNumToRender","maxToRenderPerBatch","nestedScrollEnabled","showsVerticalScrollIndicator","keyboardShouldPersistTaps","ListEmptyComponent","emptyListContainer","emptyListText","create","flex","width","paddingHorizontal","fontSize","fontWeight","marginBottom","paddingTop","flexDirection","alignItems","paddingVertical","marginLeft"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Input/CountryPickerView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,7 +18,8 @@ const DefaultModalUI = ({
|
|
|
18
18
|
isVisible,
|
|
19
19
|
children,
|
|
20
20
|
options,
|
|
21
|
-
onClose
|
|
21
|
+
onClose,
|
|
22
|
+
onDismiss
|
|
22
23
|
}) => {
|
|
23
24
|
const insets = useSafeAreaInsets();
|
|
24
25
|
const [isRendered, setIsRendered] = useState(isVisible);
|
|
@@ -42,6 +43,7 @@ const DefaultModalUI = ({
|
|
|
42
43
|
opacity.value = withTiming(isVisible ? 1 : 0, animationConfig, finished => {
|
|
43
44
|
if (finished && !isVisible) {
|
|
44
45
|
runOnJS(setIsRendered)(false);
|
|
46
|
+
runOnJS(onDismiss)();
|
|
45
47
|
}
|
|
46
48
|
});
|
|
47
49
|
}, [isVisible, animationConfig, opacity]);
|
|
@@ -141,6 +143,7 @@ export const UniversalModalProvider = ({
|
|
|
141
143
|
content: null,
|
|
142
144
|
options: {}
|
|
143
145
|
});
|
|
146
|
+
const dismissCallbackRef = React.useRef(undefined);
|
|
144
147
|
const showModal = useCallback((content, options) => {
|
|
145
148
|
setState({
|
|
146
149
|
isVisible: true,
|
|
@@ -150,21 +153,24 @@ export const UniversalModalProvider = ({
|
|
|
150
153
|
}
|
|
151
154
|
});
|
|
152
155
|
}, []);
|
|
153
|
-
const hideModal = useCallback(
|
|
156
|
+
const hideModal = useCallback(options => {
|
|
157
|
+
dismissCallbackRef.current = options?.onDismiss;
|
|
154
158
|
setState(prev => ({
|
|
155
159
|
...prev,
|
|
156
160
|
isVisible: false
|
|
157
161
|
}));
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
162
|
+
}, []);
|
|
163
|
+
const handleDismiss = useCallback(() => {
|
|
164
|
+
setState(prev => {
|
|
165
|
+
if (prev.isVisible) return prev;
|
|
166
|
+
return {
|
|
167
|
+
...prev,
|
|
168
|
+
content: null
|
|
169
|
+
};
|
|
170
|
+
});
|
|
171
|
+
const callback = dismissCallbackRef.current;
|
|
172
|
+
dismissCallbackRef.current = undefined;
|
|
173
|
+
callback?.();
|
|
168
174
|
}, []);
|
|
169
175
|
const ModalUI = CustomModalComponent || DefaultModalUI;
|
|
170
176
|
const value = useMemo(() => ({
|
|
@@ -177,6 +183,7 @@ export const UniversalModalProvider = ({
|
|
|
177
183
|
isVisible: state.isVisible,
|
|
178
184
|
options: state.options,
|
|
179
185
|
onClose: hideModal,
|
|
186
|
+
onDismiss: handleDismiss,
|
|
180
187
|
children: state.content
|
|
181
188
|
})]
|
|
182
189
|
});
|
|
@@ -190,8 +197,8 @@ export const useModal = () => {
|
|
|
190
197
|
};
|
|
191
198
|
const styles = StyleSheet.create({
|
|
192
199
|
overlayWrapper: {
|
|
193
|
-
zIndex: 1000,
|
|
194
|
-
elevation: 1000
|
|
200
|
+
// zIndex: 1000,
|
|
201
|
+
// elevation: 1000,
|
|
195
202
|
},
|
|
196
203
|
backdrop: {
|
|
197
204
|
backgroundColor: "rgba(0, 0, 0, 0.6)"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","createContext","useCallback","useContext","useEffect","useMemo","useState","BackHandler","StyleSheet","TouchableOpacity","View","KeyboardAvoidingView","Animated","Easing","runOnJS","useAnimatedStyle","useSharedValue","withTiming","useSafeAreaInsets","jsx","_jsx","jsxs","_jsxs","ModalContext","undefined","DEFAULT_MODAL_HOST","DefaultModalUI","isVisible","children","options","onClose","insets","isRendered","setIsRendered","opacity","closeOnBackdropPress","closeOnBackButton","animationConfig","duration","easing","bezier","position","animateFrom","avoidKeyboard","backdropStyle","containerStyle","closeIconComponent","value","finished","backHandler","addEventListener","remove","backdropAnimatedStyle","closeIconAnimatedStyle","contentAnimatedStyle","transform","push","translateY","scale","justifyContent","paddingBottom","bottom","paddingTop","top","ContentWrapper","style","absoluteFill","styles","overlayWrapper","backdrop","activeOpacity","onPress","closeIconContainer","pointerEvents","hitSlop","left","right","behavior","keyboardVerticalOffset","keyboardView","baseContainer","UniversalModalProvider","portalHostName","CustomModalComponent","state","setState","content","showModal","hideModal","prev","
|
|
1
|
+
{"version":3,"names":["React","createContext","useCallback","useContext","useEffect","useMemo","useState","BackHandler","StyleSheet","TouchableOpacity","View","KeyboardAvoidingView","Animated","Easing","runOnJS","useAnimatedStyle","useSharedValue","withTiming","useSafeAreaInsets","jsx","_jsx","jsxs","_jsxs","ModalContext","undefined","DEFAULT_MODAL_HOST","DefaultModalUI","isVisible","children","options","onClose","onDismiss","insets","isRendered","setIsRendered","opacity","closeOnBackdropPress","closeOnBackButton","animationConfig","duration","easing","bezier","position","animateFrom","avoidKeyboard","backdropStyle","containerStyle","closeIconComponent","value","finished","backHandler","addEventListener","remove","backdropAnimatedStyle","closeIconAnimatedStyle","contentAnimatedStyle","transform","push","translateY","scale","justifyContent","paddingBottom","bottom","paddingTop","top","ContentWrapper","style","absoluteFill","styles","overlayWrapper","backdrop","activeOpacity","onPress","closeIconContainer","pointerEvents","hitSlop","left","right","behavior","keyboardVerticalOffset","keyboardView","baseContainer","UniversalModalProvider","portalHostName","CustomModalComponent","state","setState","content","dismissCallbackRef","useRef","showModal","hideModal","current","prev","handleDismiss","callback","ModalUI","Provider","useModal","context","Error","create","backgroundColor","alignItems","width","zIndex"],"sourceRoot":"..\\..\\..\\src","sources":["contexts/UniversalModalProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { StyleProp, TextStyle } from "react-native";
|
|
2
|
+
import { StyleProp, TextStyle, ViewStyle } from "react-native";
|
|
3
3
|
import { Country } from "./PhoneInput";
|
|
4
4
|
interface CountryPickerViewProps {
|
|
5
5
|
countries?: Country[];
|
|
@@ -10,8 +10,9 @@ interface CountryPickerViewProps {
|
|
|
10
10
|
countryCodeStyle?: StyleProp<TextStyle>;
|
|
11
11
|
searchPlaceholder?: string;
|
|
12
12
|
isNative?: boolean;
|
|
13
|
+
style?: StyleProp<ViewStyle>;
|
|
13
14
|
}
|
|
14
15
|
export declare const DEFAULT_COUNTRIES: Country[];
|
|
15
|
-
declare const CountryPickerView: ({ countries, onSelectCountry, listTitle, listTitleStyle, countryNameStyle, countryCodeStyle, searchPlaceholder, isNative }: CountryPickerViewProps) => React.JSX.Element;
|
|
16
|
+
declare const CountryPickerView: ({ countries, onSelectCountry, listTitle, listTitleStyle, countryNameStyle, countryCodeStyle, searchPlaceholder, isNative, style }: CountryPickerViewProps) => React.JSX.Element;
|
|
16
17
|
export default CountryPickerView;
|
|
17
18
|
//# sourceMappingURL=CountryPickerView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CountryPickerView.d.ts","sourceRoot":"","sources":["../../../../../src/components/Input/CountryPickerView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AACzE,OAAO,EAIL,SAAS,EACT,SAAS,
|
|
1
|
+
{"version":3,"file":"CountryPickerView.d.ts","sourceRoot":"","sources":["../../../../../src/components/Input/CountryPickerView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AACzE,OAAO,EAIL,SAAS,EACT,SAAS,EAGT,SAAS,EACV,MAAM,cAAc,CAAC;AAItB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAKvC,UAAU,sBAAsB;IAC9B,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;IACtB,eAAe,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,gBAAgB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACxC,gBAAgB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,eAAO,MAAM,iBAAiB,EAAE,OAAO,EAIpC,CAAC;AA+BJ,QAAA,MAAM,iBAAiB,GAAI,mIAUxB,sBAAsB,sBA4ExB,CAAC;AA6CF,eAAe,iBAAiB,CAAC"}
|
|
@@ -20,9 +20,12 @@ export interface ModalOptions {
|
|
|
20
20
|
/** Optional component to render as a close icon at the top right or left of the screen */
|
|
21
21
|
closeIconComponent?: ReactNode;
|
|
22
22
|
}
|
|
23
|
+
interface HideModalOptions {
|
|
24
|
+
onDismiss?: () => void;
|
|
25
|
+
}
|
|
23
26
|
interface ModalContextType {
|
|
24
27
|
showModal: (content: ReactNode, options?: ModalOptions) => void;
|
|
25
|
-
hideModal: () => void;
|
|
28
|
+
hideModal: (options?: HideModalOptions) => void;
|
|
26
29
|
}
|
|
27
30
|
interface ModalProviderProps {
|
|
28
31
|
children: ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UniversalModalProvider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/UniversalModalProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEZ,SAAS,EAMV,MAAM,OAAO,CAAC;AACf,OAAO,EAEL,SAAS,EAIT,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,OAAiB,EAMf,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AAIjC,MAAM,WAAW,YAAY;IAC3B,sEAAsE;IACtE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,6CAA6C;IAC7C,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,qCAAqC;IACrC,aAAa,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACrC,4DAA4D;IAC5D,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;IACvC,WAAW,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC1C,mDAAmD;IACnD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0FAA0F;IAC1F,kBAAkB,CAAC,EAAE,SAAS,CAAC;CAChC;AAED,UAAU,gBAAgB;IACxB,SAAS,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IAChE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"UniversalModalProvider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/UniversalModalProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEZ,SAAS,EAMV,MAAM,OAAO,CAAC;AACf,OAAO,EAEL,SAAS,EAIT,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,OAAiB,EAMf,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AAIjC,MAAM,WAAW,YAAY;IAC3B,sEAAsE;IACtE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,6CAA6C;IAC7C,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,qCAAqC;IACrC,aAAa,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACrC,4DAA4D;IAC5D,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;IACvC,WAAW,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC1C,mDAAmD;IACnD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0FAA0F;IAC1F,kBAAkB,CAAC,EAAE,SAAS,CAAC;CAChC;AAED,UAAU,gBAAgB;IACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,UAAU,gBAAgB;IACxB,SAAS,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IAChE,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACjD;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,YAAY,CAAC;IAC9B,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oEAAoE;IACpE,oBAAoB,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAC9B,SAAS,EAAE,OAAO,CAAC;QACnB,QAAQ,EAAE,SAAS,CAAC;QACpB,OAAO,EAAE,YAAY,CAAC;QACtB,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB,CAAC,CAAC;CACJ;AAMD,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAgKvD,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAgE/D,CAAC;AAEF,eAAO,MAAM,QAAQ,wBAMpB,CAAC"}
|
package/package.json
CHANGED
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
TextStyle,
|
|
8
8
|
Keyboard,
|
|
9
9
|
FlatList,
|
|
10
|
+
ViewStyle,
|
|
10
11
|
} from "react-native";
|
|
11
12
|
import { BottomSheetFlatList } from "@gorhom/bottom-sheet";
|
|
12
13
|
import { useTheme } from "../../theme";
|
|
@@ -25,6 +26,7 @@ interface CountryPickerViewProps {
|
|
|
25
26
|
countryCodeStyle?: StyleProp<TextStyle>;
|
|
26
27
|
searchPlaceholder?: string;
|
|
27
28
|
isNative?: boolean;
|
|
29
|
+
style?: StyleProp<ViewStyle>;
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
export const DEFAULT_COUNTRIES: Country[] = allCountries.map((c) => ({
|
|
@@ -70,7 +72,8 @@ const CountryPickerView = ({
|
|
|
70
72
|
countryNameStyle,
|
|
71
73
|
countryCodeStyle,
|
|
72
74
|
searchPlaceholder = "Search...",
|
|
73
|
-
isNative
|
|
75
|
+
isNative,
|
|
76
|
+
style
|
|
74
77
|
}: CountryPickerViewProps) => {
|
|
75
78
|
const { theme } = useTheme();
|
|
76
79
|
|
|
@@ -116,7 +119,7 @@ const CountryPickerView = ({
|
|
|
116
119
|
const FlatListComponent = isNative ? FlatList : BottomSheetFlatList
|
|
117
120
|
|
|
118
121
|
return (
|
|
119
|
-
<View style={styles.popup}>
|
|
122
|
+
<View style={[styles.popup, style]}>
|
|
120
123
|
<Text style={[styles.popupTitle, { color: theme.text}, listTitleStyle]}>
|
|
121
124
|
{listTitle}
|
|
122
125
|
</Text>
|
|
@@ -134,6 +137,7 @@ const CountryPickerView = ({
|
|
|
134
137
|
contentContainerStyle={{ paddingBottom: 16 }}
|
|
135
138
|
initialNumToRender={15}
|
|
136
139
|
maxToRenderPerBatch={10}
|
|
140
|
+
nestedScrollEnabled={isNative}
|
|
137
141
|
showsVerticalScrollIndicator={false}
|
|
138
142
|
keyboardShouldPersistTaps="handled"
|
|
139
143
|
ListEmptyComponent={
|
|
@@ -47,9 +47,13 @@ export interface ModalOptions {
|
|
|
47
47
|
closeIconComponent?: ReactNode;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
+
interface HideModalOptions {
|
|
51
|
+
onDismiss?: () => void;
|
|
52
|
+
}
|
|
53
|
+
|
|
50
54
|
interface ModalContextType {
|
|
51
55
|
showModal: (content: ReactNode, options?: ModalOptions) => void;
|
|
52
|
-
hideModal: () => void;
|
|
56
|
+
hideModal: (options?: HideModalOptions) => void;
|
|
53
57
|
}
|
|
54
58
|
|
|
55
59
|
interface ModalProviderProps {
|
|
@@ -79,7 +83,8 @@ const DefaultModalUI: React.FC<{
|
|
|
79
83
|
children: ReactNode;
|
|
80
84
|
options: ModalOptions;
|
|
81
85
|
onClose: () => void;
|
|
82
|
-
|
|
86
|
+
onDismiss: () => void;
|
|
87
|
+
}> = ({ isVisible, children, options, onClose, onDismiss }) => {
|
|
83
88
|
const insets = useSafeAreaInsets();
|
|
84
89
|
const [isRendered, setIsRendered] = useState(isVisible);
|
|
85
90
|
const opacity = useSharedValue(0);
|
|
@@ -108,6 +113,7 @@ const DefaultModalUI: React.FC<{
|
|
|
108
113
|
(finished) => {
|
|
109
114
|
if (finished && !isVisible) {
|
|
110
115
|
runOnJS(setIsRendered)(false);
|
|
116
|
+
runOnJS(onDismiss)();
|
|
111
117
|
}
|
|
112
118
|
},
|
|
113
119
|
);
|
|
@@ -244,26 +250,33 @@ export const UniversalModalProvider: React.FC<ModalProviderProps> = ({
|
|
|
244
250
|
options: {},
|
|
245
251
|
});
|
|
246
252
|
|
|
253
|
+
const dismissCallbackRef = React.useRef<(() => void) | undefined>(undefined);
|
|
254
|
+
|
|
247
255
|
const showModal = useCallback(
|
|
248
256
|
(content: ReactNode, options?: ModalOptions) => {
|
|
249
257
|
setState({
|
|
250
258
|
isVisible: true,
|
|
251
259
|
content,
|
|
252
|
-
options: {
|
|
260
|
+
options: { ...options },
|
|
253
261
|
});
|
|
254
262
|
},
|
|
255
263
|
[],
|
|
256
264
|
);
|
|
257
265
|
|
|
258
|
-
const hideModal = useCallback(() => {
|
|
266
|
+
const hideModal = useCallback((options?: HideModalOptions) => {
|
|
267
|
+
dismissCallbackRef.current = options?.onDismiss;
|
|
259
268
|
setState((prev) => ({ ...prev, isVisible: false }));
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
}
|
|
266
|
-
}
|
|
269
|
+
}, []);
|
|
270
|
+
|
|
271
|
+
const handleDismiss = useCallback(() => {
|
|
272
|
+
setState((prev) => {
|
|
273
|
+
if (prev.isVisible) return prev;
|
|
274
|
+
return { ...prev, content: null };
|
|
275
|
+
});
|
|
276
|
+
|
|
277
|
+
const callback = dismissCallbackRef.current;
|
|
278
|
+
dismissCallbackRef.current = undefined;
|
|
279
|
+
callback?.();
|
|
267
280
|
}, []);
|
|
268
281
|
|
|
269
282
|
const ModalUI = CustomModalComponent || DefaultModalUI;
|
|
@@ -280,6 +293,7 @@ export const UniversalModalProvider: React.FC<ModalProviderProps> = ({
|
|
|
280
293
|
isVisible={state.isVisible}
|
|
281
294
|
options={state.options}
|
|
282
295
|
onClose={hideModal}
|
|
296
|
+
onDismiss={handleDismiss}
|
|
283
297
|
>
|
|
284
298
|
{state.content}
|
|
285
299
|
</ModalUI>
|
|
@@ -297,8 +311,8 @@ export const useModal = () => {
|
|
|
297
311
|
|
|
298
312
|
const styles = StyleSheet.create({
|
|
299
313
|
overlayWrapper: {
|
|
300
|
-
zIndex: 1000,
|
|
301
|
-
elevation: 1000,
|
|
314
|
+
// zIndex: 1000,
|
|
315
|
+
// elevation: 1000,
|
|
302
316
|
},
|
|
303
317
|
backdrop: {
|
|
304
318
|
backgroundColor: "rgba(0, 0, 0, 0.6)",
|