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 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
- | showCloseButton | boolean | No | false | Whether to show the close button |
364
- | popularCountriesTitle | string | No | 'Popular Countries' | Popular Countries section title |
365
- | allCountriesTitle | string | No | 'All Countries' | All Countries section title |
366
- | showsVerticalScrollIndicator | boolean | No | false | Displays a horizontal scroll indicator |
367
- | countryNotFoundMessage | string | No | "No countries found" | Country not found in search |
368
- | allowFontScaling | boolean | No | true | Whether to allow font scaling for text elements |
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
- <Text
44
- testID="countrySelectItemFlag"
45
- style={[styles.flag, countrySelectStyle?.flag]}
46
- allowFontScaling={allowFontScaling}
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.callingCode,
55
- countrySelectStyle?.callingCode,
56
- isSelected && styles.callingCodeSelected,
45
+ styles.countryItem,
46
+ countrySelectStyle?.countryItem,
47
+ isSelected && styles.countryItemSelected,
57
48
  ]}
58
- allowFontScaling={allowFontScaling}
59
49
  >
60
- {country.idd.root}
61
- </Text>
62
- <Text
63
- testID="countrySelectItemName"
64
- style={[
65
- styles.countryName,
66
- countrySelectStyle?.countryName,
67
- isSelected && styles.countryNameSelected,
68
- ]}
69
- allowFontScaling={allowFontScaling}
70
- >
71
- {country?.translations[language]?.common}
72
- </Text>
73
- </View>
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>(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) => ('isSection' in item ? item.title : item.cca2),
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 = (item as ICountry)?.translations[language]?.common || '';
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
- country,
201
+ countryWithCustomFlag,
190
202
  ]);
191
203
  return;
192
204
  }
193
205
 
194
- (onSelect as (country: ICountry) => void)(country);
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 = (it as ICountry)?.translations[language]?.common || '';
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={showsVerticalScrollIndicator || false}
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(0, (averageItemLength || 0) * index);
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={[styles.sectionTitle, countrySelectStyle?.sectionTitle]}
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 = isMultiSelect && isCountrySelected(countryItem.cca2);
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={accessibilityLabelAlphabetFilter}
392
- accessibilityHintAlphabetFilter={accessibilityHintAlphabetFilter}
393
- accessibilityLabelAlphabetLetter={accessibilityLabelAlphabetLetter}
394
- accessibilityHintAlphabetLetter={accessibilityHintAlphabetLetter}
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={[styles.searchContainer, countrySelectStyle?.searchContainer]}
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-\u0434",
8804
- "common": "\u041a\u043e\u0442-\u0434"
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": "\u041a\u043e\u043d\u0433\u043e, \u0414\u0435\u043c\u043e\u043a\u0440\u0430\u0442\u0438\u0447\u043d\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430",
9214
- "common": "\u041a\u043e\u043d\u0433\u043e, \u0414\u0435\u043c\u043e\u043a\u0440\u0430\u0442\u0438\u0447\u043d\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430"
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": "\u041c\u0456\u043a\u0440\u043e\u043d\u0435\u0437\u0456\u044f, \u0424\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0456 \u0428\u0442\u0430\u0442\u0438",
15139
- "common": "\u041c\u0456\u043a\u0440\u043e\u043d\u0435\u0437\u0456\u044f, \u0424\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0456 \u0428\u0442\u0430\u0442\u0438"
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": "\u041e\u0431",
15513
- "common": "\u041e\u0431"
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": "Kiribati",
23360
- "common": "Kiribati"
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\u0439\u0441\u044c\u043a\u0430 \u0410\u0440\u0430\u0431\u0441\u044c\u043a\u0430 \u0414\u0436\u0430\u043c\u0430\u0445\u0456\u0440\u0456\u044f",
24852
- "common": "\u041b\u0456\u0432\u0456\u0439\u0441\u044c\u043a\u0430 \u0410\u0440\u0430\u0431\u0441\u044c\u043a\u0430 \u0414\u0436\u0430\u043c\u0430\u0445\u0456\u0440\u0456\u044f"
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": "\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0456\u044f, \u043a\u043e\u043b\u0438\u0448\u043d\u044f \u044e\u0433\u043e\u0441\u043b\u0430\u0432\u0441\u044c\u043a\u0430 \u0440\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430",
28144
- "common": "\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0456\u044f, \u043a\u043e\u043b\u0438\u0448\u043d\u044f \u044e\u0433\u043e\u0441\u043b\u0430\u0432\u0441\u044c\u043a\u0430 \u0440\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430"
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": "\u0421\u0432\u0430\u0437\u0456\u043b\u0435\u043d\u0434",
40871
- "common": "\u0421\u0432\u0430\u0437\u0456\u043b\u0435\u043d\u0434"
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, \u043f\u0440\u043e\u0432\u0456\u043d\u0446\u0456\u044f \u041a\u0438\u0442\u0430\u044e",
44171
- "common": "\u0422\u0430\u0439\u0432\u0430\u043d\u044c, \u043f\u0440\u043e\u0432\u0456\u043d\u0446\u0456\u044f \u041a\u0438\u0442\u0430\u044e"
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, \u041e\u0431",
44368
- "common": "\u0422\u0430\u043d\u0437\u0430\u043d\u0456\u044f, \u041e\u0431"
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(region: string): ICountry[] | undefined;
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(cca2: string): ICountry[] | undefined;
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
  };
@@ -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.2",
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",