react-native-country-select 0.3.2 → 0.3.4
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 +37 -36
- package/lib/components/CountryItem/index.tsx +54 -34
- package/lib/components/CountrySelect/index.tsx +59 -26
- package/lib/constants/countries.json +62 -30
- package/lib/index.d.ts +11 -5
- package/lib/index.tsx +3 -1
- package/lib/interface/country.ts +2 -1
- package/lib/interface/countryItemProps.ts +5 -0
- package/lib/interface/countrySelectProps.ts +3 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -330,42 +330,43 @@ export default function App() {
|
|
|
330
330
|
|
|
331
331
|
## CountrySelect Props ([countrySelectProps](https://github.com/AstrOOnauta/react-native-country-select/blob/main/lib/interface/countrySelectProps.ts))
|
|
332
332
|
|
|
333
|
-
| Prop | Type | Required | Default | Description
|
|
334
|
-
| ---------------------------- | ----------------------------------------------------------------------- | -------- | -------------------- |
|
|
335
|
-
| visible | boolean | Yes | false | Controls the visibility of the country picker modal
|
|
336
|
-
| onClose | () => void | Yes | - | Callback function called when the modal is closed
|
|
337
|
-
| onSelect | (country: [ICountry](lib/interfaces/country.ts)) => void | Yes | - | Callback function called when a country is selected
|
|
338
|
-
| modalType | 'bottomSheet' \| 'popup' | No | 'bottomSheet' | Type of modal to display
|
|
339
|
-
| countrySelectStyle | [ICountrySelectStyle](lib/interfaces/countrySelectStyles.ts) | No | - | Custom styles for the country picker
|
|
340
|
-
| isMultiSelect | boolean | No | false | Whether the user can select multiple options
|
|
341
|
-
| selectedCountries | [ICountry[]](lib/interfaces/country.ts) | No | - | Array of countries to show in multi select mode
|
|
342
|
-
| isFullScreen | boolean | No | false | Whether the modal should be full screen
|
|
343
|
-
| popularCountries | string[] | No | [] | Array of country codes to show in popular section
|
|
344
|
-
| visibleCountries | [ICountryCca2[]](lib/interfaces/countryCca2.ts) | No | [] | Array of country codes to show (whitelist)
|
|
345
|
-
| hiddenCountries | [ICountryCca2[]](lib/interfaces/countryCca2.ts) | No | [] | Array of country codes to hide (blacklist)
|
|
346
|
-
| theme | 'light' \| 'dark' | No | 'light' | Theme for the country picker
|
|
347
|
-
| language | [ICountrySelectLanguages](lib/interfaces/countrySelectLanguages.ts) | No | 'eng' | Language for country names (see supported languages below)
|
|
348
|
-
| showSearchInput | boolean | No | true | Whether to show the search input field
|
|
349
|
-
| showAlphabetFilter | boolean | No | false | Whether to show the alphabetic filter on modal
|
|
350
|
-
| searchPlaceholder | string | No | 'Search country...' | Placeholder text for search input
|
|
351
|
-
| searchPlaceholderTextColor | string | No | '#00000080' | Placeholder text color for search input
|
|
352
|
-
| searchSelectionColor | string | No | default | Highlight, selection handle and cursor color of the search input
|
|
353
|
-
| minBottomsheetHeight | number \| string | No | 30% | Minimum height for bottom sheet modal
|
|
354
|
-
| maxBottomsheetHeight | number \| string | No | 80% | Maximum height for bottom sheet modal
|
|
355
|
-
| initialBottomsheetHeight | number \| string | No | 50% | Initial height for bottom sheet modal
|
|
356
|
-
| disabledBackdropPress | boolean | No | false | Whether to disable backdrop press to close
|
|
357
|
-
| removedBackdrop | boolean | No | false | Whether to remove the backdrop completely
|
|
358
|
-
| onBackdropPress | () => void | No | - | Custom callback for backdrop press
|
|
359
|
-
| dragHandleIndicatorComponent | () => ReactElement | - | - | Custom component for drag handle indicator on bottom sheet
|
|
360
|
-
| countryItemComponent | (item: [ICountry](lib/interfaces/country.ts)) => ReactElement | No | - | Custom component for country items
|
|
361
|
-
| sectionTitleComponent | (item: [ISectionTitle](lib/interfaces/sectionTitle.ts)) => ReactElement | No | - | Custom component for section titles
|
|
362
|
-
| closeButtonComponent | () => ReactElement | No | - | Custom component for closeButton
|
|
363
|
-
|
|
|
364
|
-
|
|
|
365
|
-
|
|
|
366
|
-
|
|
|
367
|
-
|
|
|
368
|
-
|
|
|
333
|
+
| Prop | Type | Required | Default | Description |
|
|
334
|
+
| ---------------------------- | ----------------------------------------------------------------------- | -------- | -------------------- | -------------------------------------------------------------------------------------- |
|
|
335
|
+
| visible | boolean | Yes | false | Controls the visibility of the country picker modal |
|
|
336
|
+
| onClose | () => void | Yes | - | Callback function called when the modal is closed |
|
|
337
|
+
| onSelect | (country: [ICountry](lib/interfaces/country.ts)) => void | Yes | - | Callback function called when a country is selected |
|
|
338
|
+
| modalType | 'bottomSheet' \| 'popup' | No | 'bottomSheet' | Type of modal to display |
|
|
339
|
+
| countrySelectStyle | [ICountrySelectStyle](lib/interfaces/countrySelectStyles.ts) | No | - | Custom styles for the country picker |
|
|
340
|
+
| isMultiSelect | boolean | No | false | Whether the user can select multiple options |
|
|
341
|
+
| selectedCountries | [ICountry[]](lib/interfaces/country.ts) | No | - | Array of countries to show in multi select mode |
|
|
342
|
+
| isFullScreen | boolean | No | false | Whether the modal should be full screen |
|
|
343
|
+
| popularCountries | string[] | No | [] | Array of country codes to show in popular section |
|
|
344
|
+
| visibleCountries | [ICountryCca2[]](lib/interfaces/countryCca2.ts) | No | [] | Array of country codes to show (whitelist) |
|
|
345
|
+
| hiddenCountries | [ICountryCca2[]](lib/interfaces/countryCca2.ts) | No | [] | Array of country codes to hide (blacklist) |
|
|
346
|
+
| theme | 'light' \| 'dark' | No | 'light' | Theme for the country picker |
|
|
347
|
+
| language | [ICountrySelectLanguages](lib/interfaces/countrySelectLanguages.ts) | No | 'eng' | Language for country names (see supported languages below) |
|
|
348
|
+
| showSearchInput | boolean | No | true | Whether to show the search input field |
|
|
349
|
+
| showAlphabetFilter | boolean | No | false | Whether to show the alphabetic filter on modal |
|
|
350
|
+
| searchPlaceholder | string | No | 'Search country...' | Placeholder text for search input |
|
|
351
|
+
| searchPlaceholderTextColor | string | No | '#00000080' | Placeholder text color for search input |
|
|
352
|
+
| searchSelectionColor | string | No | default | Highlight, selection handle and cursor color of the search input |
|
|
353
|
+
| minBottomsheetHeight | number \| string | No | 30% | Minimum height for bottom sheet modal |
|
|
354
|
+
| maxBottomsheetHeight | number \| string | No | 80% | Maximum height for bottom sheet modal |
|
|
355
|
+
| initialBottomsheetHeight | number \| string | No | 50% | Initial height for bottom sheet modal |
|
|
356
|
+
| disabledBackdropPress | boolean | No | false | Whether to disable backdrop press to close |
|
|
357
|
+
| removedBackdrop | boolean | No | false | Whether to remove the backdrop completely |
|
|
358
|
+
| onBackdropPress | () => void | No | - | Custom callback for backdrop press |
|
|
359
|
+
| dragHandleIndicatorComponent | () => ReactElement | - | - | Custom component for drag handle indicator on bottom sheet |
|
|
360
|
+
| countryItemComponent | (item: [ICountry](lib/interfaces/country.ts)) => ReactElement | No | - | Custom component for country items |
|
|
361
|
+
| sectionTitleComponent | (item: [ISectionTitle](lib/interfaces/sectionTitle.ts)) => ReactElement | No | - | Custom component for section titles |
|
|
362
|
+
| closeButtonComponent | () => ReactElement | No | - | Custom component for closeButton |
|
|
363
|
+
| customFlag | (country: [ICountry](lib/interfaces/country.ts)) => ReactElement | No | - | Custom render function for country flags. Returns rendered element in selected country |
|
|
364
|
+
| showCloseButton | boolean | No | false | Whether to show the close button |
|
|
365
|
+
| popularCountriesTitle | string | No | 'Popular Countries' | Popular Countries section title |
|
|
366
|
+
| allCountriesTitle | string | No | 'All Countries' | All Countries section title |
|
|
367
|
+
| showsVerticalScrollIndicator | boolean | No | false | Displays a horizontal scroll indicator |
|
|
368
|
+
| countryNotFoundMessage | string | No | "No countries found" | Country not found in search |
|
|
369
|
+
| allowFontScaling | boolean | No | true | Whether to allow font scaling for text elements |
|
|
369
370
|
|
|
370
371
|
<br>
|
|
371
372
|
|
|
@@ -13,6 +13,8 @@ export const CountryItem = memo<ICountryItemProps>(
|
|
|
13
13
|
theme = 'light',
|
|
14
14
|
language = 'eng',
|
|
15
15
|
countrySelectStyle,
|
|
16
|
+
countryItemComponent,
|
|
17
|
+
customFlag,
|
|
16
18
|
accessibilityLabel,
|
|
17
19
|
accessibilityHint,
|
|
18
20
|
allowFontScaling = true,
|
|
@@ -33,45 +35,63 @@ export const CountryItem = memo<ICountryItemProps>(
|
|
|
33
35
|
translations.accessibilityHintCountryItem[language] +
|
|
34
36
|
` ${country.translations[language]?.common}`
|
|
35
37
|
}
|
|
36
|
-
style={[
|
|
37
|
-
styles.countryItem,
|
|
38
|
-
countrySelectStyle?.countryItem,
|
|
39
|
-
isSelected && styles.countryItemSelected,
|
|
40
|
-
]}
|
|
41
38
|
onPress={() => onSelect(country)}
|
|
42
39
|
>
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
>
|
|
48
|
-
{country.flag || country.cca2}
|
|
49
|
-
</Text>
|
|
50
|
-
<View style={[styles.countryInfo, countrySelectStyle?.countryInfo]}>
|
|
51
|
-
<Text
|
|
52
|
-
testID="countrySelectItemCallingCode"
|
|
40
|
+
{countryItemComponent ? (
|
|
41
|
+
countryItemComponent(country)
|
|
42
|
+
) : (
|
|
43
|
+
<View
|
|
53
44
|
style={[
|
|
54
|
-
styles.
|
|
55
|
-
countrySelectStyle?.
|
|
56
|
-
isSelected && styles.
|
|
45
|
+
styles.countryItem,
|
|
46
|
+
countrySelectStyle?.countryItem,
|
|
47
|
+
isSelected && styles.countryItemSelected,
|
|
57
48
|
]}
|
|
58
|
-
allowFontScaling={allowFontScaling}
|
|
59
49
|
>
|
|
60
|
-
{
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
50
|
+
{customFlag &&
|
|
51
|
+
customFlag(country) !== undefined &&
|
|
52
|
+
customFlag(country) !== null ? (
|
|
53
|
+
customFlag(country)
|
|
54
|
+
) : (
|
|
55
|
+
<Text
|
|
56
|
+
testID="countrySelectItemFlag"
|
|
57
|
+
style={[styles.flag, countrySelectStyle?.flag]}
|
|
58
|
+
allowFontScaling={allowFontScaling}
|
|
59
|
+
>
|
|
60
|
+
{country.flag || country.cca2}
|
|
61
|
+
</Text>
|
|
62
|
+
)}
|
|
63
|
+
<View
|
|
64
|
+
style={[
|
|
65
|
+
styles.countryInfo,
|
|
66
|
+
countrySelectStyle?.countryInfo,
|
|
67
|
+
]}
|
|
68
|
+
>
|
|
69
|
+
<Text
|
|
70
|
+
testID="countrySelectItemCallingCode"
|
|
71
|
+
style={[
|
|
72
|
+
styles.callingCode,
|
|
73
|
+
countrySelectStyle?.callingCode,
|
|
74
|
+
isSelected && styles.callingCodeSelected,
|
|
75
|
+
]}
|
|
76
|
+
allowFontScaling={allowFontScaling}
|
|
77
|
+
>
|
|
78
|
+
{country.idd.root}
|
|
79
|
+
</Text>
|
|
80
|
+
<Text
|
|
81
|
+
testID="countrySelectItemName"
|
|
82
|
+
style={[
|
|
83
|
+
styles.countryName,
|
|
84
|
+
countrySelectStyle?.countryName,
|
|
85
|
+
isSelected && styles.countryNameSelected,
|
|
86
|
+
]}
|
|
87
|
+
allowFontScaling={allowFontScaling}
|
|
88
|
+
>
|
|
89
|
+
{country?.translations[language]?.common}
|
|
90
|
+
</Text>
|
|
91
|
+
</View>
|
|
92
|
+
</View>
|
|
93
|
+
)}
|
|
74
94
|
</TouchableOpacity>
|
|
75
95
|
);
|
|
76
|
-
}
|
|
96
|
+
}
|
|
77
97
|
);
|
|
@@ -51,6 +51,7 @@ export const CountrySelect: React.FC<ICountrySelectProps> = ({
|
|
|
51
51
|
sectionTitleComponent,
|
|
52
52
|
countryItemComponent,
|
|
53
53
|
closeButtonComponent,
|
|
54
|
+
customFlag,
|
|
54
55
|
popularCountriesTitle,
|
|
55
56
|
allCountriesTitle,
|
|
56
57
|
showsVerticalScrollIndicator = false,
|
|
@@ -73,7 +74,9 @@ export const CountrySelect: React.FC<ICountrySelectProps> = ({
|
|
|
73
74
|
...props
|
|
74
75
|
}) => {
|
|
75
76
|
const [searchQuery, setSearchQuery] = useState('');
|
|
76
|
-
const [activeLetter, setActiveLetter] = useState<string | null>(
|
|
77
|
+
const [activeLetter, setActiveLetter] = useState<string | null>(
|
|
78
|
+
null
|
|
79
|
+
);
|
|
77
80
|
|
|
78
81
|
const flatListRef = useRef<FlatList<IListItem>>(null);
|
|
79
82
|
const isProgrammaticScroll = useRef(false);
|
|
@@ -118,8 +121,9 @@ export const CountrySelect: React.FC<ICountrySelectProps> = ({
|
|
|
118
121
|
}, [countriesList]);
|
|
119
122
|
|
|
120
123
|
const keyExtractor = useCallback(
|
|
121
|
-
(item: IListItem) =>
|
|
122
|
-
|
|
124
|
+
(item: IListItem) =>
|
|
125
|
+
'isSection' in item ? item.title : item.cca2,
|
|
126
|
+
[]
|
|
123
127
|
);
|
|
124
128
|
|
|
125
129
|
const handlePressLetter = useCallback(
|
|
@@ -132,7 +136,8 @@ export const CountrySelect: React.FC<ICountrySelectProps> = ({
|
|
|
132
136
|
for (let i = index; i < countriesList.length; i++) {
|
|
133
137
|
const item = countriesList[i];
|
|
134
138
|
if (!('isSection' in item)) {
|
|
135
|
-
const name =
|
|
139
|
+
const name =
|
|
140
|
+
(item as ICountry)?.translations[language]?.common || '';
|
|
136
141
|
if (name) {
|
|
137
142
|
computedLetter = name[0].toUpperCase();
|
|
138
143
|
}
|
|
@@ -149,7 +154,7 @@ export const CountrySelect: React.FC<ICountrySelectProps> = ({
|
|
|
149
154
|
viewPosition: 0,
|
|
150
155
|
});
|
|
151
156
|
},
|
|
152
|
-
[countriesList, language]
|
|
157
|
+
[countriesList, language]
|
|
153
158
|
);
|
|
154
159
|
|
|
155
160
|
const handleCloseModal = () => {
|
|
@@ -172,29 +177,38 @@ export const CountrySelect: React.FC<ICountrySelectProps> = ({
|
|
|
172
177
|
|
|
173
178
|
const isCountrySelected = useCallback(
|
|
174
179
|
(cca2: string) => selectedCountryCodes.has(cca2),
|
|
175
|
-
[selectedCountryCodes]
|
|
180
|
+
[selectedCountryCodes]
|
|
176
181
|
);
|
|
177
182
|
|
|
178
183
|
const handleSelectCountry = useCallback(
|
|
179
184
|
(country: ICountry) => {
|
|
185
|
+
const countryWithCustomFlag = customFlag
|
|
186
|
+
? {
|
|
187
|
+
...country,
|
|
188
|
+
customFlag: customFlag(country),
|
|
189
|
+
}
|
|
190
|
+
: country;
|
|
191
|
+
|
|
180
192
|
if (isMultiSelect) {
|
|
181
193
|
if (isCountrySelected(country.cca2)) {
|
|
182
194
|
(onSelect as (countries: ICountry[]) => void)(
|
|
183
|
-
selectedCountries.filter(c => c.cca2 !== country.cca2)
|
|
195
|
+
selectedCountries.filter((c) => c.cca2 !== country.cca2)
|
|
184
196
|
);
|
|
185
197
|
return;
|
|
186
198
|
}
|
|
187
199
|
(onSelect as (countries: ICountry[]) => void)([
|
|
188
200
|
...selectedCountries,
|
|
189
|
-
|
|
201
|
+
countryWithCustomFlag,
|
|
190
202
|
]);
|
|
191
203
|
return;
|
|
192
204
|
}
|
|
193
205
|
|
|
194
|
-
(onSelect as (country: ICountry) => void)(
|
|
206
|
+
(onSelect as (country: ICountry) => void)(
|
|
207
|
+
countryWithCustomFlag
|
|
208
|
+
);
|
|
195
209
|
onClose();
|
|
196
210
|
},
|
|
197
|
-
[isMultiSelect, isCountrySelected, selectedCountries]
|
|
211
|
+
[isMultiSelect, isCountrySelected, selectedCountries, customFlag]
|
|
198
212
|
);
|
|
199
213
|
|
|
200
214
|
const renderCloseButton = () => {
|
|
@@ -245,7 +259,8 @@ export const CountrySelect: React.FC<ICountrySelectProps> = ({
|
|
|
245
259
|
const it = v.item;
|
|
246
260
|
const idx = v.index ?? -1;
|
|
247
261
|
if (!('isSection' in it) && idx >= allCountriesStartIndex) {
|
|
248
|
-
const name =
|
|
262
|
+
const name =
|
|
263
|
+
(it as ICountry)?.translations[language]?.common || '';
|
|
249
264
|
if (name) {
|
|
250
265
|
updated = name[0].toUpperCase();
|
|
251
266
|
}
|
|
@@ -253,7 +268,7 @@ export const CountrySelect: React.FC<ICountrySelectProps> = ({
|
|
|
253
268
|
}
|
|
254
269
|
}
|
|
255
270
|
setActiveLetter(updated);
|
|
256
|
-
}
|
|
271
|
+
}
|
|
257
272
|
).current;
|
|
258
273
|
|
|
259
274
|
const renderFlatList = () => {
|
|
@@ -297,7 +312,9 @@ export const CountrySelect: React.FC<ICountrySelectProps> = ({
|
|
|
297
312
|
keyExtractor={keyExtractor}
|
|
298
313
|
renderItem={renderItem}
|
|
299
314
|
keyboardShouldPersistTaps="handled"
|
|
300
|
-
showsVerticalScrollIndicator={
|
|
315
|
+
showsVerticalScrollIndicator={
|
|
316
|
+
showsVerticalScrollIndicator || false
|
|
317
|
+
}
|
|
301
318
|
style={[styles.list, countrySelectStyle?.list]}
|
|
302
319
|
onViewableItemsChanged={onViewableItemsChanged}
|
|
303
320
|
onMomentumScrollEnd={() => {
|
|
@@ -309,7 +326,10 @@ export const CountrySelect: React.FC<ICountrySelectProps> = ({
|
|
|
309
326
|
}}
|
|
310
327
|
onScrollToIndexFailed={({ index, averageItemLength }) => {
|
|
311
328
|
// Simple recovery: estimate offset, then retry scrollToIndex after measurement
|
|
312
|
-
const estimatedOffset = Math.max(
|
|
329
|
+
const estimatedOffset = Math.max(
|
|
330
|
+
0,
|
|
331
|
+
(averageItemLength || 0) * index
|
|
332
|
+
);
|
|
313
333
|
flatListRef.current?.scrollToOffset({
|
|
314
334
|
offset: estimatedOffset,
|
|
315
335
|
animated: false,
|
|
@@ -336,7 +356,10 @@ export const CountrySelect: React.FC<ICountrySelectProps> = ({
|
|
|
336
356
|
<Text
|
|
337
357
|
testID="countrySelectSectionTitle"
|
|
338
358
|
accessibilityRole="header"
|
|
339
|
-
style={[
|
|
359
|
+
style={[
|
|
360
|
+
styles.sectionTitle,
|
|
361
|
+
countrySelectStyle?.sectionTitle,
|
|
362
|
+
]}
|
|
340
363
|
allowFontScaling={allowFontScaling}
|
|
341
364
|
>
|
|
342
365
|
{popularCountriesTitle && index === 0
|
|
@@ -348,12 +371,9 @@ export const CountrySelect: React.FC<ICountrySelectProps> = ({
|
|
|
348
371
|
);
|
|
349
372
|
}
|
|
350
373
|
|
|
351
|
-
if (countryItemComponent) {
|
|
352
|
-
return countryItemComponent(item as ICountry);
|
|
353
|
-
}
|
|
354
|
-
|
|
355
374
|
const countryItem = item as ICountry;
|
|
356
|
-
const selected =
|
|
375
|
+
const selected =
|
|
376
|
+
isMultiSelect && isCountrySelected(countryItem.cca2);
|
|
357
377
|
return (
|
|
358
378
|
<CountryItem
|
|
359
379
|
country={countryItem}
|
|
@@ -362,6 +382,8 @@ export const CountrySelect: React.FC<ICountrySelectProps> = ({
|
|
|
362
382
|
theme={theme as IThemeProps}
|
|
363
383
|
language={language}
|
|
364
384
|
countrySelectStyle={countrySelectStyle}
|
|
385
|
+
customFlag={customFlag}
|
|
386
|
+
countryItemComponent={countryItemComponent}
|
|
365
387
|
accessibilityLabel={accessibilityLabelCountryItem}
|
|
366
388
|
accessibilityHint={accessibilityHintCountryItem}
|
|
367
389
|
allowFontScaling={allowFontScaling}
|
|
@@ -375,7 +397,7 @@ export const CountrySelect: React.FC<ICountrySelectProps> = ({
|
|
|
375
397
|
sectionTitleComponent,
|
|
376
398
|
isMultiSelect,
|
|
377
399
|
isCountrySelected,
|
|
378
|
-
]
|
|
400
|
+
]
|
|
379
401
|
);
|
|
380
402
|
|
|
381
403
|
const renderAlphabetFilter = () => {
|
|
@@ -388,10 +410,18 @@ export const CountrySelect: React.FC<ICountrySelectProps> = ({
|
|
|
388
410
|
countries={countriesList}
|
|
389
411
|
allCountriesStartIndex={allCountriesStartIndex}
|
|
390
412
|
countrySelectStyle={countrySelectStyle}
|
|
391
|
-
accessibilityLabelAlphabetFilter={
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
413
|
+
accessibilityLabelAlphabetFilter={
|
|
414
|
+
accessibilityLabelAlphabetFilter
|
|
415
|
+
}
|
|
416
|
+
accessibilityHintAlphabetFilter={
|
|
417
|
+
accessibilityHintAlphabetFilter
|
|
418
|
+
}
|
|
419
|
+
accessibilityLabelAlphabetLetter={
|
|
420
|
+
accessibilityLabelAlphabetLetter
|
|
421
|
+
}
|
|
422
|
+
accessibilityHintAlphabetLetter={
|
|
423
|
+
accessibilityHintAlphabetLetter
|
|
424
|
+
}
|
|
395
425
|
allowFontScaling={allowFontScaling}
|
|
396
426
|
/>
|
|
397
427
|
);
|
|
@@ -400,7 +430,10 @@ export const CountrySelect: React.FC<ICountrySelectProps> = ({
|
|
|
400
430
|
const HeaderModal =
|
|
401
431
|
showSearchInput || showCloseButton ? (
|
|
402
432
|
<View
|
|
403
|
-
style={[
|
|
433
|
+
style={[
|
|
434
|
+
styles.searchContainer,
|
|
435
|
+
countrySelectStyle?.searchContainer,
|
|
436
|
+
]}
|
|
404
437
|
>
|
|
405
438
|
{(showCloseButton || isFullScreen) && renderCloseButton()}
|
|
406
439
|
{showSearchInput && renderSearchInput()}
|
|
@@ -1478,8 +1478,8 @@
|
|
|
1478
1478
|
"common": "Birle\u015fik Arap Emirlikleri"
|
|
1479
1479
|
},
|
|
1480
1480
|
"ukr": {
|
|
1481
|
-
"official": "\u041e\u0431",
|
|
1482
|
-
"common": "\u041e\u0431"
|
|
1481
|
+
"official": "\u041e\u0431\u02bc\u0454\u0434\u043d\u0430\u043d\u0456 \u0410\u0440\u0430\u0431\u0441\u044c\u043a\u0456 \u0415\u043c\u0456\u0440\u0430\u0442\u0438",
|
|
1482
|
+
"common": "\u041e\u0431\u02bc\u0454\u0434\u043d\u0430\u043d\u0456 \u0410\u0440\u0430\u0431\u0441\u044c\u043a\u0456 \u0415\u043c\u0456\u0440\u0430\u0442\u0438"
|
|
1483
1483
|
},
|
|
1484
1484
|
"urd": {
|
|
1485
1485
|
"official": "\u0645\u062a\u062d\u062f\u06c1 \u0639\u0631\u0628 \u0627\u0645\u0627\u0631\u0627\u062a",
|
|
@@ -2400,6 +2400,10 @@
|
|
|
2400
2400
|
"official": "Frans\u0131z G\u00fcney ve Antarktika Topraklar\u0131",
|
|
2401
2401
|
"common": "Frans\u0131z G\u00fcney ve Antarktika Topraklar\u0131"
|
|
2402
2402
|
},
|
|
2403
|
+
"ukr": {
|
|
2404
|
+
"official": "\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0456 \u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0456 \u0439 \u0410\u043d\u0442\u0430\u0440\u043a\u0442\u0438\u0447\u043d\u0456 \u0422\u0435\u0440\u0438\u0442\u043e\u0440\u0456\u0457",
|
|
2405
|
+
"common": "\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0456 \u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0456 \u0439 \u0410\u043d\u0442\u0430\u0440\u043a\u0442\u0438\u0447\u043d\u0456 \u0422\u0435\u0440\u0438\u0442\u043e\u0440\u0456\u0457"
|
|
2406
|
+
},
|
|
2403
2407
|
"urd": {
|
|
2404
2408
|
"official": "\u0633\u0631\u0632\u0645\u06cc\u0646\u0650 \u062c\u0646\u0648\u0628\u06cc \u0641\u0631\u0627\u0646\u0633\u06cc\u0633\u06cc\u06c1 \u0648 \u0627\u0646\u0679\u0627\u0631\u06a9\u0679\u06cc\u06a9\u06c1",
|
|
2405
2409
|
"common": "\u0633\u0631\u0632\u0645\u06cc\u0646 \u062c\u0646\u0648\u0628\u06cc \u0641\u0631\u0627\u0646\u0633\u06cc\u0633\u06cc\u06c1 \u0648 \u0627\u0646\u0679\u0627\u0631\u06a9\u0679\u06cc\u06a9\u0627"
|
|
@@ -6246,6 +6250,10 @@
|
|
|
6246
6250
|
"official": "Karayip Hollandas\u0131",
|
|
6247
6251
|
"common": "Karayip Hollandas\u0131"
|
|
6248
6252
|
},
|
|
6253
|
+
"ukr": {
|
|
6254
|
+
"official": "\u041a\u0430\u0440\u0438\u0431\u0441\u044c\u043a\u0456 \u041d\u0456\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0438",
|
|
6255
|
+
"common": "\u041a\u0430\u0440\u0438\u0431\u0441\u044c\u043a\u0456 \u041d\u0456\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0438"
|
|
6256
|
+
},
|
|
6249
6257
|
"urd": {
|
|
6250
6258
|
"official": "\u0628\u0648\u0646\u0627\u06cc\u0631\u060c \u0633\u06cc\u0646\u0679 \u0627\u06cc\u0648\u0633\u0679\u0627\u0626\u06cc\u0633 \u0627\u0648\u0631 \u0633\u0627\u0628\u0627",
|
|
6251
6259
|
"common": "\u06a9\u06cc\u0631\u06cc\u0628\u06cc\u0646 \u0646\u06cc\u062f\u0631\u0644\u06cc\u0646\u0688\u0632"
|
|
@@ -7173,6 +7181,10 @@
|
|
|
7173
7181
|
"official": "Bouvet Adas\u0131",
|
|
7174
7182
|
"common": "Bouvet Adas\u0131"
|
|
7175
7183
|
},
|
|
7184
|
+
"ukr": {
|
|
7185
|
+
"official": "\u041e\u0441\u0442\u0440\u0456\u0432 \u0411\u0443\u0432\u0435",
|
|
7186
|
+
"common": "\u041e\u0441\u0442\u0440\u0456\u0432 \u0411\u0443\u0432\u0435"
|
|
7187
|
+
},
|
|
7176
7188
|
"urd": {
|
|
7177
7189
|
"official": "\u062c\u0632\u06cc\u0631\u06c1 \u0628\u0648\u0648\u06c1",
|
|
7178
7190
|
"common": "\u062c\u0632\u06cc\u0631\u06c1 \u0628\u0648\u0648\u06c1"
|
|
@@ -8800,8 +8812,8 @@
|
|
|
8800
8812
|
"common": "Fildi\u015fi Sahili"
|
|
8801
8813
|
},
|
|
8802
8814
|
"ukr": {
|
|
8803
|
-
"official": "\u041a\u043e\u0442
|
|
8804
|
-
"common": "\u041a\u043e\u0442
|
|
8815
|
+
"official": "\u041a\u043e\u0442\u002d\u0434\u2019\u0406\u0432\u0443\u0430\u0440",
|
|
8816
|
+
"common": "\u041a\u043e\u0442\u002d\u0434\u2019\u0406\u0432\u0443\u0430\u0440"
|
|
8805
8817
|
},
|
|
8806
8818
|
"urd": {
|
|
8807
8819
|
"official": "\u062c\u0645\u06c1\u0648\u0631\u06cc\u06c1 \u06a9\u0648\u062a \u062f\u06cc\u0648\u0627\u063a",
|
|
@@ -9210,8 +9222,8 @@
|
|
|
9210
9222
|
"common": "Kongo Demokratik Cumhuriyeti"
|
|
9211
9223
|
},
|
|
9212
9224
|
"ukr": {
|
|
9213
|
-
"official": "\
|
|
9214
|
-
"common": "\
|
|
9225
|
+
"official": "\u0414\u0435\u043c\u043e\u043a\u0440\u0430\u0442\u0438\u0447\u043d\u0430\u0020\u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430\u0020\u041a\u043e\u043d\u0433\u043e",
|
|
9226
|
+
"common": "\u0414\u0435\u043c\u043e\u043a\u0440\u0430\u0442\u0438\u0447\u043d\u0430\u0020\u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430\u0020\u041a\u043e\u043d\u0433\u043e"
|
|
9215
9227
|
},
|
|
9216
9228
|
"urd": {
|
|
9217
9229
|
"official": "\u062c\u0645\u06c1\u0648\u0631\u06cc \u062c\u0645\u06c1\u0648\u0631\u06cc\u06c1 \u06a9\u0627\u0646\u06af\u0648",
|
|
@@ -10753,6 +10765,10 @@
|
|
|
10753
10765
|
"official": "Cura\u00e7ao",
|
|
10754
10766
|
"common": "Cura\u00e7ao"
|
|
10755
10767
|
},
|
|
10768
|
+
"ukr": {
|
|
10769
|
+
"official": "\u041a\u044e\u0440\u0430\u0441\u0430\u043e",
|
|
10770
|
+
"common": "\u041a\u044e\u0440\u0430\u0441\u0430\u043e"
|
|
10771
|
+
},
|
|
10756
10772
|
"urd": {
|
|
10757
10773
|
"official": "\u0645\u0645\u0644\u06a9\u062a\u0650 \u06a9\u06cc\u0648\u0631\u0627\u0633\u0627\u0624",
|
|
10758
10774
|
"common": "\u06a9\u06cc\u0648\u0631\u0627\u0633\u0627\u0624"
|
|
@@ -11698,7 +11714,7 @@
|
|
|
11698
11714
|
"common": "Almanya"
|
|
11699
11715
|
},
|
|
11700
11716
|
"ukr": {
|
|
11701
|
-
"official": "\u041d\u0456\u043c\u0435\u0447\u0447\u0438\u043d\u0430",
|
|
11717
|
+
"official": "\u0424\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430 \u041d\u0456\u043c\u0435\u0447\u0447\u0438\u043d\u0430",
|
|
11702
11718
|
"common": "\u041d\u0456\u043c\u0435\u0447\u0447\u0438\u043d\u0430"
|
|
11703
11719
|
},
|
|
11704
11720
|
"urd": {
|
|
@@ -13418,6 +13434,10 @@
|
|
|
13418
13434
|
"official": "Sahra Demokratik Arap Cumhuriyeti",
|
|
13419
13435
|
"common": "Sahra Demokratik Arap Cumhuriyeti"
|
|
13420
13436
|
},
|
|
13437
|
+
"ukr": {
|
|
13438
|
+
"official": "\u0417\u0430\u0445\u0456\u0434\u043d\u0430 \u0421\u0430\u0445\u0430\u0440\u0430",
|
|
13439
|
+
"common": "\u0417\u0430\u0445\u0456\u0434\u043d\u0430 \u0421\u0430\u0445\u0430\u0440\u0430"
|
|
13440
|
+
},
|
|
13421
13441
|
"urd": {
|
|
13422
13442
|
"official": "\u0635\u062d\u0631\u0627\u0648\u06cc \u0639\u0631\u0628 \u0639\u0648\u0627\u0645\u06cc \u062c\u0645\u06c1\u0648\u0631\u06cc\u06c1",
|
|
13423
13443
|
"common": "\u0645\u063a\u0631\u0628\u06cc \u0635\u062d\u0627\u0631\u0627"
|
|
@@ -15135,8 +15155,8 @@
|
|
|
15135
15155
|
"common": "Mikronezya"
|
|
15136
15156
|
},
|
|
15137
15157
|
"ukr": {
|
|
15138
|
-
"official": "\
|
|
15139
|
-
"common": "\
|
|
15158
|
+
"official": "\u0424\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0456\u0020\u0428\u0442\u0430\u0442\u0438\u0020\u041c\u0456\u043a\u0440\u043e\u043d\u0435\u0437\u0456\u0457",
|
|
15159
|
+
"common": "\u0424\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0456\u0020\u0428\u0442\u0430\u0442\u0438\u0020\u041c\u0456\u043a\u0440\u043e\u043d\u0435\u0437\u0456\u0457"
|
|
15140
15160
|
},
|
|
15141
15161
|
"urd": {
|
|
15142
15162
|
"official": "\u0631\u06cc\u0627\u0633\u062a\u06c1\u0627\u0626\u06d2 \u0648\u0641\u0627\u0642\u06cc\u06c1 \u0645\u0627\u0626\u06a9\u0631\u0648\u0646\u06cc\u0634\u06cc\u0627",
|
|
@@ -15509,8 +15529,8 @@
|
|
|
15509
15529
|
"common": "Birle\u015fik Krall\u0131k"
|
|
15510
15530
|
},
|
|
15511
15531
|
"ukr": {
|
|
15512
|
-
"official": "\
|
|
15513
|
-
"common": "\
|
|
15532
|
+
"official": "\u0421\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0435 \u041a\u043e\u0440\u043e\u043b\u0456\u0432\u0441\u0442\u0432\u043e \u0412\u0435\u043b\u0438\u043a\u043e\u0457 \u0411\u0440\u0438\u0442\u0430\u043d\u0456\u0457 \u0442\u0430 \u041f\u0456\u0432\u043d\u0456\u0447\u043d\u043e\u0457 \u0406\u0440\u043b\u0430\u043d\u0434\u0456\u0457",
|
|
15533
|
+
"common": "\u0412\u0435\u043b\u0438\u043a\u0430 \u0411\u0440\u0438\u0442\u0430\u043d\u0456\u044f"
|
|
15514
15534
|
},
|
|
15515
15535
|
"urd": {
|
|
15516
15536
|
"official": "\u0645\u0645\u0644\u06a9\u062a\u0650 \u0645\u062a\u062d\u062f\u06c1 \u0628\u0631\u0637\u0627\u0646\u06cc\u06c1 \u0639\u0638\u0645\u06cc \u0648 \u0634\u0645\u0627\u0644\u06cc \u0622\u0626\u0631\u0644\u06cc\u0646\u0688",
|
|
@@ -18912,6 +18932,10 @@
|
|
|
18912
18932
|
"official": "Heard Adas\u0131 ve McDonald Adalar\u0131",
|
|
18913
18933
|
"common": "Heard Adas\u0131 ve McDonald Adalar\u0131"
|
|
18914
18934
|
},
|
|
18935
|
+
"ukr": {
|
|
18936
|
+
"official": "\u041e\u0441\u0442\u0440\u0456\u0432 \u0413\u0435\u0440\u0434 \u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438 \u041c\u0430\u043a\u0434\u043e\u043d\u0430\u043b\u044c\u0434",
|
|
18937
|
+
"common": "\u041e\u0441\u0442\u0440\u0456\u0432 \u0413\u0435\u0440\u0434 \u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438 \u041c\u0430\u043a\u0434\u043e\u043d\u0430\u043b\u044c\u0434"
|
|
18938
|
+
},
|
|
18915
18939
|
"urd": {
|
|
18916
18940
|
"official": "\u062c\u0632\u06cc\u0631\u06c1 \u06c1\u0631\u0688 \u0648 \u062c\u0632\u0627\u0626\u0631 \u0645\u06a9\u0688\u0648\u0646\u0644\u0688",
|
|
18917
18941
|
"common": "\u062c\u0632\u06cc\u0631\u06c1 \u06c1\u0631\u0688 \u0648 \u062c\u0632\u0627\u0626\u0631 \u0645\u06a9\u0688\u0648\u0646\u0644\u0688"
|
|
@@ -19855,7 +19879,7 @@
|
|
|
19855
19879
|
"common": "Endonezya"
|
|
19856
19880
|
},
|
|
19857
19881
|
"ukr": {
|
|
19858
|
-
"official": "\u0406\u043d\u0434\u043e\u043d\u0435\u0437\u0456\u044f",
|
|
19882
|
+
"official": "\u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430 \u0406\u043d\u0434\u043e\u043d\u0435\u0437\u0456\u044f",
|
|
19859
19883
|
"common": "\u0406\u043d\u0434\u043e\u043d\u0435\u0437\u0456\u044f"
|
|
19860
19884
|
},
|
|
19861
19885
|
"urd": {
|
|
@@ -23356,8 +23380,8 @@
|
|
|
23356
23380
|
"common": "Kiribati"
|
|
23357
23381
|
},
|
|
23358
23382
|
"ukr": {
|
|
23359
|
-
"official": "
|
|
23360
|
-
"common": "
|
|
23383
|
+
"official": "\u041d\u0435\u0437\u0430\u043b\u0435\u0436\u043d\u0430 \u0456 \u0421\u0443\u0432\u0435\u0440\u0435\u043d\u043d\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430 \u041a\u0456\u0440\u0456\u0431\u0430\u0442\u0456",
|
|
23384
|
+
"common": "\u041a\u0456\u0440\u0456\u0431\u0430\u0442\u0456"
|
|
23361
23385
|
},
|
|
23362
23386
|
"urd": {
|
|
23363
23387
|
"official": "\u0633\u0644\u0637\u0646\u062a \u0622\u0632\u0627\u062f \u062c\u0645\u06c1\u0648\u0631\u06cc\u06c1 \u06a9\u06cc\u0631\u06cc\u0628\u0627\u062a\u06cc",
|
|
@@ -23917,6 +23941,10 @@
|
|
|
23917
23941
|
"zho": {
|
|
23918
23942
|
"official": "\u79d1\u7d22\u6c83\u5171\u548c\u56fd",
|
|
23919
23943
|
"common": "\u79d1\u7d22\u6c83"
|
|
23944
|
+
},
|
|
23945
|
+
"ukr": {
|
|
23946
|
+
"official": "\u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430 \u041a\u043e\u0441\u043e\u0432\u043e",
|
|
23947
|
+
"common": "\u041a\u043e\u0441\u043e\u0432\u043e"
|
|
23920
23948
|
}
|
|
23921
23949
|
},
|
|
23922
23950
|
"latlng": [42.666667, 21.166667],
|
|
@@ -24848,8 +24876,8 @@
|
|
|
24848
24876
|
"common": "Libya"
|
|
24849
24877
|
},
|
|
24850
24878
|
"ukr": {
|
|
24851
|
-
"official": "\u041b\u0456\u0432\u0456\
|
|
24852
|
-
"common": "\u041b\u0456\u0432\u0456\
|
|
24879
|
+
"official": "\u041b\u0456\u0432\u0456\u044f",
|
|
24880
|
+
"common": "\u041b\u0456\u0432\u0456\u044f"
|
|
24853
24881
|
},
|
|
24854
24882
|
"urd": {
|
|
24855
24883
|
"official": "\u0631\u06cc\u0627\u0633\u062a\u0650 \u0644\u06cc\u0628\u06cc\u0627",
|
|
@@ -28140,8 +28168,8 @@
|
|
|
28140
28168
|
"common": "Kuzey Makedonya"
|
|
28141
28169
|
},
|
|
28142
28170
|
"ukr": {
|
|
28143
|
-
"official": "\
|
|
28144
|
-
"common": "\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0456\u044f
|
|
28171
|
+
"official": "\u041f\u0456\u0432\u043d\u0456\u0447\u043d\u0430\u0020\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0456\u044f",
|
|
28172
|
+
"common": "\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0456\u044f"
|
|
28145
28173
|
},
|
|
28146
28174
|
"urd": {
|
|
28147
28175
|
"official": "\u062c\u0645\u06c1\u0648\u0631\u06cc\u06c1 \u0645\u0642\u062f\u0648\u0646\u06cc\u06c1",
|
|
@@ -28711,8 +28739,8 @@
|
|
|
28711
28739
|
"common": "Myanmar"
|
|
28712
28740
|
},
|
|
28713
28741
|
"ukr": {
|
|
28714
|
-
"official": "\u041c",
|
|
28715
|
-
"common": "\u041c"
|
|
28742
|
+
"official": "\u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430 \u0421\u043e\u044e\u0437\u0443 \u041c\u2019\u044f\u043d\u043c\u0430",
|
|
28743
|
+
"common": "\u041c\u2019\u044f\u043d\u043c\u0430"
|
|
28716
28744
|
},
|
|
28717
28745
|
"urd": {
|
|
28718
28746
|
"official": "\u0645\u062a\u062d\u062f\u06c1 \u062c\u0645\u06c1\u0648\u0631\u06cc\u06c1 \u0645\u06cc\u0627\u0646\u0645\u0627\u0631",
|
|
@@ -39368,8 +39396,8 @@
|
|
|
39368
39396
|
"common": "Saint Pierre ve Miquelon"
|
|
39369
39397
|
},
|
|
39370
39398
|
"ukr": {
|
|
39371
|
-
"official": "\u0421\u0435\u043d-\u041f",
|
|
39372
|
-
"common": "\u0421\u0435\u043d-\u041f"
|
|
39399
|
+
"official": "\u0421\u0435\u043d-\u041f'\u0454\u0440 \u0456 \u041c\u0456\u043a\u0435\u043b\u043e\u043d",
|
|
39400
|
+
"common": "\u0421\u0435\u043d-\u041f'\u0454\u0440 \u0456 \u041c\u0456\u043a\u0435\u043b\u043e\u043d"
|
|
39373
39401
|
},
|
|
39374
39402
|
"urd": {
|
|
39375
39403
|
"official": "\u0633\u06cc\u0646\u0679 \u067e\u06cc\u0626\u0631 \u0648 \u0645\u06cc\u06a9\u06cc\u0644\u0648\u0646",
|
|
@@ -39728,6 +39756,10 @@
|
|
|
39728
39756
|
"official": "G\u00fcney Sudan Cumhuriyeti",
|
|
39729
39757
|
"common": "G\u00fcney Sudan"
|
|
39730
39758
|
},
|
|
39759
|
+
"ukr": {
|
|
39760
|
+
"official": "\u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430 \u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0438\u0439 \u0421\u0443\u0434\u0430\u043d",
|
|
39761
|
+
"common": "\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0438\u0439 \u0421\u0443\u0434\u0430\u043d"
|
|
39762
|
+
},
|
|
39731
39763
|
"urd": {
|
|
39732
39764
|
"official": "\u062c\u0645\u06c1\u0648\u0631\u06cc\u06c1 \u062c\u0646\u0648\u0628\u06cc \u0633\u0648\u0688\u0627\u0646",
|
|
39733
39765
|
"common": "\u062c\u0646\u0648\u0628\u06cc \u0633\u0648\u0688\u0627\u0646"
|
|
@@ -40867,8 +40899,8 @@
|
|
|
40867
40899
|
"common": "Esvatini"
|
|
40868
40900
|
},
|
|
40869
40901
|
"ukr": {
|
|
40870
|
-
"official": "\
|
|
40871
|
-
"common": "\
|
|
40902
|
+
"official": "\u0415\u0441\u0432\u0430\u0442\u0456\u043d\u0456",
|
|
40903
|
+
"common": "\u0415\u0441\u0432\u0430\u0442\u0456\u043d\u0456"
|
|
40872
40904
|
},
|
|
40873
40905
|
"urd": {
|
|
40874
40906
|
"official": "\u0645\u0645\u0644\u06a9\u062a\u0650 \u0633\u0648\u0627\u0632\u06cc \u0644\u06cc\u0646\u0688",
|
|
@@ -44167,8 +44199,8 @@
|
|
|
44167
44199
|
"common": "Tayvan"
|
|
44168
44200
|
},
|
|
44169
44201
|
"ukr": {
|
|
44170
|
-
"official": "\u0422\u0430\u0439\u0432\u0430\u043d\u044c
|
|
44171
|
-
"common": "\u0422\u0430\u0439\u0432\u0430\u043d\u044c
|
|
44202
|
+
"official": "\u0422\u0430\u0439\u0432\u0430\u043d\u044c",
|
|
44203
|
+
"common": "\u0422\u0430\u0439\u0432\u0430\u043d\u044c"
|
|
44172
44204
|
},
|
|
44173
44205
|
"urd": {
|
|
44174
44206
|
"official": "\u062c\u0645\u06c1\u0648\u0631\u06cc\u06c1 \u0686\u06cc\u0646 (\u062a\u0627\u0626\u06cc\u0648\u0627\u0646)",
|
|
@@ -44364,8 +44396,8 @@
|
|
|
44364
44396
|
"common": "Tanzanya"
|
|
44365
44397
|
},
|
|
44366
44398
|
"ukr": {
|
|
44367
|
-
"official": "\u0422\u0430\u043d\u0437\u0430\u043d\u0456\u044f
|
|
44368
|
-
"common": "\u0422\u0430\u043d\u0437\u0430\u043d\u0456\u044f
|
|
44399
|
+
"official": "\u0422\u0430\u043d\u0437\u0430\u043d\u0456\u044f",
|
|
44400
|
+
"common": "\u0422\u0430\u043d\u0437\u0430\u043d\u0456\u044f"
|
|
44369
44401
|
},
|
|
44370
44402
|
"urd": {
|
|
44371
44403
|
"official": "\u0645\u062a\u062d\u062f\u06c1 \u062c\u0645\u06c1\u0648\u0631\u06cc\u06c1 \u062a\u0646\u0632\u0627\u0646\u06cc\u06c1",
|
|
@@ -46997,8 +47029,8 @@
|
|
|
46997
47029
|
"common": "Vietnam"
|
|
46998
47030
|
},
|
|
46999
47031
|
"ukr": {
|
|
47000
|
-
"official": "\u0412",
|
|
47001
|
-
"common": "\u0412"
|
|
47032
|
+
"official": "\u0412'\u0454\u0442\u043d\u0430\u043c",
|
|
47033
|
+
"common": "\u0412'\u0454\u0442\u043d\u0430\u043c"
|
|
47002
47034
|
},
|
|
47003
47035
|
"urd": {
|
|
47004
47036
|
"official": "\u0627\u0634\u062a\u0631\u0627\u06a9\u06cc \u062c\u0645\u06c1\u0648\u0631\u06cc\u06c1 \u0648\u06cc\u062a\u0646\u0627\u0645",
|
package/lib/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
ICountrySelectProps,
|
|
8
8
|
ICountrySelectStyle,
|
|
9
9
|
ICountrySelectLanguages,
|
|
10
|
+
ISectionTitle,
|
|
10
11
|
} from './interface';
|
|
11
12
|
|
|
12
13
|
declare function getAllCountries(): ICountry[];
|
|
@@ -16,21 +17,25 @@ declare function getCountryByCca2(cca2: string): ICountry | undefined;
|
|
|
16
17
|
declare function getCountryByCca3(cca3: string): ICountry | undefined;
|
|
17
18
|
|
|
18
19
|
declare function getCountriesByCallingCode(
|
|
19
|
-
callingCode: string
|
|
20
|
+
callingCode: string
|
|
20
21
|
): ICountry[] | undefined;
|
|
21
22
|
|
|
22
23
|
declare function getCountriesByName(
|
|
23
24
|
name: string,
|
|
24
|
-
language: ICountrySelectLanguages
|
|
25
|
+
language: ICountrySelectLanguages
|
|
25
26
|
): ICountry[] | undefined;
|
|
26
27
|
|
|
27
|
-
declare function getCountriesByRegion(
|
|
28
|
+
declare function getCountriesByRegion(
|
|
29
|
+
region: string
|
|
30
|
+
): ICountry[] | undefined;
|
|
28
31
|
|
|
29
32
|
declare function getCountriesBySubregion(
|
|
30
|
-
subregion: string
|
|
33
|
+
subregion: string
|
|
31
34
|
): ICountry[] | undefined;
|
|
32
35
|
|
|
33
|
-
declare function getContriesDependents(
|
|
36
|
+
declare function getContriesDependents(
|
|
37
|
+
cca2: string
|
|
38
|
+
): ICountry[] | undefined;
|
|
34
39
|
|
|
35
40
|
declare function getCountriesIndependents(): ICountry[] | undefined;
|
|
36
41
|
|
|
@@ -45,6 +50,7 @@ export {
|
|
|
45
50
|
ICountrySelectProps,
|
|
46
51
|
ICountrySelectStyle,
|
|
47
52
|
ICountrySelectLanguages,
|
|
53
|
+
ISectionTitle,
|
|
48
54
|
getAllCountries,
|
|
49
55
|
getCountryByCca2,
|
|
50
56
|
getCountryByCca3,
|
package/lib/index.tsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {CountrySelect} from './components';
|
|
1
|
+
import { CountrySelect } from './components';
|
|
2
2
|
import {
|
|
3
3
|
ICountry,
|
|
4
4
|
ICountryCca2,
|
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
ICountrySelectProps,
|
|
7
7
|
ICountrySelectStyle,
|
|
8
8
|
ICountrySelectLanguages,
|
|
9
|
+
ISectionTitle,
|
|
9
10
|
} from './interface';
|
|
10
11
|
import {
|
|
11
12
|
getAllCountries,
|
|
@@ -40,4 +41,5 @@ export type {
|
|
|
40
41
|
ICountrySelectProps,
|
|
41
42
|
ICountrySelectStyle,
|
|
42
43
|
ICountrySelectLanguages,
|
|
44
|
+
ISectionTitle,
|
|
43
45
|
};
|
package/lib/interface/country.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {ICountryCca2} from './countryCca2';
|
|
1
|
+
import { ICountryCca2 } from './countryCca2';
|
|
2
2
|
|
|
3
3
|
// Currency interface
|
|
4
4
|
export interface ICountryCurrency {
|
|
@@ -107,5 +107,6 @@ export interface ICountry {
|
|
|
107
107
|
borders: string[];
|
|
108
108
|
area: number;
|
|
109
109
|
flag: string;
|
|
110
|
+
customFlag?: React.ReactElement | null | undefined;
|
|
110
111
|
demonyms: ICountryDemonyms;
|
|
111
112
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
1
2
|
import { ICountry } from './country';
|
|
2
3
|
import { IThemeProps } from './theme';
|
|
3
4
|
import { ICountrySelectStyle } from './countrySelectStyles';
|
|
@@ -10,6 +11,10 @@ export interface ICountryItemProps {
|
|
|
10
11
|
onSelect: (country: ICountry) => void;
|
|
11
12
|
language: ICountrySelectLanguages;
|
|
12
13
|
countrySelectStyle?: ICountrySelectStyle;
|
|
14
|
+
customFlag?: (
|
|
15
|
+
country: ICountry
|
|
16
|
+
) => React.ReactElement | null | undefined;
|
|
17
|
+
countryItemComponent?: (country: ICountry) => React.ReactElement;
|
|
13
18
|
accessibilityLabel?: string;
|
|
14
19
|
accessibilityHint?: string;
|
|
15
20
|
allowFontScaling?: boolean;
|
|
@@ -34,6 +34,9 @@ interface ICountrySelectBaseProps extends ModalProps, IThemeProps {
|
|
|
34
34
|
countryItemComponent?: (item: ICountry) => React.ReactElement;
|
|
35
35
|
sectionTitleComponent?: (item: ISectionTitle) => React.ReactElement;
|
|
36
36
|
closeButtonComponent?: () => React.ReactElement;
|
|
37
|
+
customFlag?: (
|
|
38
|
+
country: ICountry
|
|
39
|
+
) => React.ReactElement | null | undefined;
|
|
37
40
|
popularCountriesTitle?: string;
|
|
38
41
|
allCountriesTitle?: string;
|
|
39
42
|
showsVerticalScrollIndicator?: boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-country-select",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.4",
|
|
4
4
|
"description": "🌍 React Native country picker with flags, search, TypeScript, i18n, and offline support. Lightweight, customizable, and designed with a modern UI.",
|
|
5
5
|
"main": "lib/index.tsx",
|
|
6
6
|
"types": "lib/index.d.ts",
|