react-native-international-phone-number 0.10.6 → 0.10.7

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
@@ -609,7 +609,24 @@ const countrySelectCloseButton = getByTestId('countrySelectCloseButton');
609
609
 
610
610
  ## Accessibility
611
611
 
612
- Ensure your app is inclusive and usable by everyone by leveraging built-in React Native accessibility features. The accessibility props are covered by this package.
612
+ Ensure your app is inclusive and usable by everyone by leveraging built-in React Native accessibility features. The accessibility props are covered and customizable by this package.
613
+
614
+ ### Custom Accessibility Props Available
615
+
616
+ - `accessibilityLabelPhoneInput`: Accessibility label for the phone input;
617
+ - `accessibilityHintPhoneInput`: Accessibility hint for the phone input;
618
+ - `accessibilityLabelCountriesButton`: Accessibility label for the countries button to open modal;
619
+ - `accessibilityHintCountriesButton`: Accessibility hint for the countries button to open modal;
620
+ - `accessibilityLabelBackdrop`: Accessibility label for the backdrop;
621
+ - `accessibilityHintBackdrop`: Accessibility hint for the backdrop;
622
+ - `accessibilityLabelCloseButton`: Accessibility label for the close button;
623
+ - `accessibilityHintCloseButton`: Accessibility hint for the close button;
624
+ - `accessibilityLabelSearchInput`: Accessibility label for the search input;
625
+ - `accessibilityHintSearchInput`: Accessibility hint for the search input;
626
+ - `accessibilityLabelCountriesList`: Accessibility label for the countries list;
627
+ - `accessibilityHintCountriesList`: Accessibility hint for the countries list;
628
+ - `accessibilityLabelCountryItem`: Accessibility label for individual country items;
629
+ - `accessibilityHintCountryItem`: Accessibility hint for individual country.
613
630
 
614
631
  <br>
615
632
 
package/lib/index.js CHANGED
@@ -15,7 +15,13 @@ import parsePhoneNumber, {
15
15
 
16
16
  import getCountryByPhoneNumber from './utils/getCountryByPhoneNumber';
17
17
  import isValidPhoneNumber from './utils/isValidPhoneNumber';
18
- import {getPhoneNumberInputPlaceholder} from './utils/getPlaceholders';
18
+ import {
19
+ getCountriesButtonAccessibilityHint,
20
+ getCountriesButtonAccessibilityLabel,
21
+ getPhoneNumberInputAccessibilityHint,
22
+ getPhoneNumberInputAccessibilityLabel,
23
+ getPhoneNumberInputPlaceholder,
24
+ } from './utils/getTranslations';
19
25
  import {
20
26
  getCaretStyle,
21
27
  getContainerStyle,
@@ -69,6 +75,20 @@ const PhoneInput = forwardRef(
69
75
  showModalSearchInput,
70
76
  showModalCloseButton,
71
77
  showModalScrollIndicator,
78
+ accessibilityLabelPhoneInput,
79
+ accessibilityHintPhoneInput,
80
+ accessibilityLabelCountriesButton,
81
+ accessibilityHintCountriesButton,
82
+ accessibilityLabelBackdrop,
83
+ accessibilityHintBackdrop,
84
+ accessibilityLabelCloseButton,
85
+ accessibilityHintCloseButton,
86
+ accessibilityLabelSearchInput,
87
+ accessibilityHintSearchInput,
88
+ accessibilityLabelCountriesList,
89
+ accessibilityHintCountriesList,
90
+ accessibilityLabelCountryItem,
91
+ accessibilityHintCountryItem,
72
92
  ...rest
73
93
  },
74
94
  ref,
@@ -133,6 +153,20 @@ const PhoneInput = forwardRef(
133
153
  showModalSearchInput,
134
154
  showModalCloseButton,
135
155
  showModalScrollIndicator,
156
+ accessibilityLabelPhoneInput,
157
+ accessibilityHintPhoneInput,
158
+ accessibilityLabelCountriesButton,
159
+ accessibilityHintCountriesButton,
160
+ accessibilityLabelBackdrop,
161
+ accessibilityHintBackdrop,
162
+ accessibilityLabelCloseButton,
163
+ accessibilityHintCloseButton,
164
+ accessibilityLabelSearchInput,
165
+ accessibilityHintSearchInput,
166
+ accessibilityLabelCountriesList,
167
+ accessibilityHintCountriesList,
168
+ accessibilityLabelCountryItem,
169
+ accessibilityHintCountryItem,
136
170
  ...rest,
137
171
  },
138
172
  };
@@ -392,8 +426,14 @@ const PhoneInput = forwardRef(
392
426
  <TouchableOpacity
393
427
  testID="countryPickerFlagContainerButton"
394
428
  accessibillityRole="button"
395
- accessibilityLabel="Countries button"
396
- accessibilityHint="Click to open the countries modal"
429
+ accessibilityLabel={
430
+ accessibilityLabelCountriesButton ||
431
+ getCountriesButtonAccessibilityLabel(language || 'eng')
432
+ }
433
+ accessibilityHint={
434
+ accessibilityHintCountriesButton ||
435
+ getCountriesButtonAccessibilityHint(language || 'eng')
436
+ }
397
437
  activeOpacity={disabled || modalDisabled ? 1 : 0.6}
398
438
  onPress={() => (disabled || modalDisabled ? null : setShow(true))}
399
439
  style={getFlagContainerStyle(theme, phoneInputStyles?.flagContainer)}>
@@ -415,7 +455,7 @@ const PhoneInput = forwardRef(
415
455
  placeholder={
416
456
  placeholder === '' || placeholder
417
457
  ? placeholder
418
- : getPhoneNumberInputPlaceholder(language || 'en')
458
+ : getPhoneNumberInputPlaceholder(language || 'eng')
419
459
  }
420
460
  placeholderTextColor={
421
461
  phoneInputPlaceholderTextColor ||
@@ -432,8 +472,14 @@ const PhoneInput = forwardRef(
432
472
  ref={textInputRef}
433
473
  testID="countryPickerPhoneInput"
434
474
  accessibillityRole="input"
435
- accessibilityLabel="Phone Number input"
436
- accessibilityHint="Write the phone number"
475
+ accessibilityLabel={
476
+ accessibilityLabelPhoneInput ||
477
+ getPhoneNumberInputAccessibilityLabel(language || 'eng')
478
+ }
479
+ accessibilityHint={
480
+ accessibilityHintPhoneInput ||
481
+ getPhoneNumberInputAccessibilityHint(language || 'eng')
482
+ }
437
483
  {...rest}
438
484
  />
439
485
  );
@@ -495,6 +541,18 @@ const PhoneInput = forwardRef(
495
541
  removedBackdrop={removedModalBackdrop}
496
542
  showSearchInput={showModalSearchInput}
497
543
  countryNotFoundMessage={modalNotFoundCountryMessage}
544
+ accessibilityLabelBackdrop={accessibilityLabelBackdrop}
545
+ accessibilityHintBackdrop={accessibilityHintBackdrop}
546
+ accessibilityLabelCloseButton={accessibilityLabelCloseButton}
547
+ accessibilityHintCloseButton={accessibilityHintCloseButton}
548
+ accessibilityLabelSearchInput={accessibilityLabelSearchInput}
549
+ accessibilityHintSearchInput={accessibilityHintSearchInput}
550
+ accessibilityLabelCountriesList={
551
+ accessibilityLabelCountriesList
552
+ }
553
+ accessibilityHintCountriesList={accessibilityHintCountriesList}
554
+ accessibilityLabelCountryItem={accessibilityLabelCountryItem}
555
+ accessibilityHintCountryItem={accessibilityHintCountryItem}
498
556
  />
499
557
  </>
500
558
  ) : null}
@@ -49,6 +49,20 @@ interface BasePhoneInput extends TextInputProps {
49
49
  showModalSearchInput?: boolean;
50
50
  showModalCloseButton?: boolean;
51
51
  showModalScrollIndicator?: boolean;
52
+ accessibilityLabelPhoneInput?: string;
53
+ accessibilityHintPhoneInput?: string;
54
+ accessibilityLabelCountriesButton?: string;
55
+ accessibilityHintCountriesButton?: string;
56
+ accessibilityLabelBackdrop?: string;
57
+ accessibilityHintBackdrop?: string;
58
+ accessibilityLabelCloseButton?: string;
59
+ accessibilityHintCloseButton?: string;
60
+ accessibilityLabelSearchInput?: string;
61
+ accessibilityHintSearchInput?: string;
62
+ accessibilityLabelCountriesList?: string;
63
+ accessibilityHintCountriesList?: string;
64
+ accessibilityLabelCountryItem?: string;
65
+ accessibilityHintCountryItem?: string;
52
66
  }
53
67
 
54
68
  interface IPhoneInputPropsWithoutRef extends BasePhoneInput {
@@ -0,0 +1,354 @@
1
+ export function getPhoneNumberInputPlaceholder(language) {
2
+ switch (language) {
3
+ case 'ara':
4
+ return 'أدخل رقم الهاتف';
5
+ case 'bel':
6
+ return 'Увядзіце свой нумар тэлефона';
7
+ case 'bre':
8
+ return 'Roit ho niver pellgomz';
9
+ case 'bul':
10
+ return 'Въведете телефонния си номер';
11
+ case 'ces':
12
+ return 'Vložte své telefonní číslo';
13
+ case 'deu':
14
+ return 'Geben Sie Ihre Rufnummer ein';
15
+ case 'ell':
16
+ return 'Εισάγετε τον αριθμό τηλεφώνου σας';
17
+ case 'eng':
18
+ return 'Insert your phone number';
19
+ case 'est':
20
+ return 'Sisestage oma telefoninumber';
21
+ case 'fin':
22
+ return 'Syötä puhelinnumerosi';
23
+ case 'fra':
24
+ return 'Insérez votre numéro de téléphone';
25
+ case 'heb':
26
+ return 'הכנס את מספר הטלפון שלך';
27
+ case 'hrv':
28
+ return 'Unesite svoj broj telefona';
29
+ case 'hun':
30
+ return 'Adja meg a telefonszámát';
31
+ case 'ita':
32
+ return 'Inserire il numero di telefono';
33
+ case 'jpn':
34
+ return '電話番号を入力してください';
35
+ case 'kor':
36
+ return '전화번호를 입력하세요';
37
+ case 'nld':
38
+ return 'Voer uw telefoonnummer in';
39
+ case 'per':
40
+ return 'شماره تلفن خود را وارد کنید';
41
+ case 'pol':
42
+ return 'Wprowadź swój numer telefonu';
43
+ case 'por':
44
+ return 'Insira seu número de telefone';
45
+ case 'ron':
46
+ return 'Introduceți numărul dvs. de telefon';
47
+ case 'rus':
48
+ return 'Вставьте свой номер телефона';
49
+ case 'slk':
50
+ return 'Zadajte svoje telefónne číslo';
51
+ case 'spa':
52
+ return 'Introduzca su número de teléfono';
53
+ case 'srp':
54
+ return 'Унесите свој број телефона';
55
+ case 'swe':
56
+ return 'Ange ditt telefonnummer';
57
+ case 'tur':
58
+ return 'Telefon numarası girin';
59
+ case 'ukr':
60
+ return 'Введіть свій номер телефону';
61
+ case 'urd':
62
+ return 'اپنا فون نمبر درج کریں';
63
+ case 'zho':
64
+ return '输入电话号码';
65
+ case 'zho-Hans':
66
+ return '输入电话号码';
67
+ case 'zho-Hant':
68
+ return '輸入電話號碼';
69
+ }
70
+ }
71
+
72
+ export function getPhoneNumberInputAccessibilityLabel(language) {
73
+ switch (language) {
74
+ case 'ara':
75
+ return 'حقل إدخال رقم الهاتف';
76
+ case 'bel':
77
+ return 'Поле для ўводу нумара тэлефона';
78
+ case 'bre':
79
+ return 'Maezienn niver pellgomz';
80
+ case 'bul':
81
+ return 'Поле за телефонен номер';
82
+ case 'ces':
83
+ return 'Pole pro telefonní číslo';
84
+ case 'deu':
85
+ return 'Telefonnummer-Eingabefeld';
86
+ case 'ell':
87
+ return 'Πεδίο εισαγωγής αριθμού τηλεφώνου';
88
+ case 'eng':
89
+ return 'Phone Number input';
90
+ case 'est':
91
+ return 'Telefoninumbri sisestusväli';
92
+ case 'fin':
93
+ return 'Puhelinnumeron syöttökenttä';
94
+ case 'fra':
95
+ return 'Champ numéro de téléphone';
96
+ case 'heb':
97
+ return 'שדה קלט מספר טלפון';
98
+ case 'hrv':
99
+ return 'Polje za unos broja telefona';
100
+ case 'hun':
101
+ return 'Telefonszám mező';
102
+ case 'ita':
103
+ return 'Campo numero di telefono';
104
+ case 'jpn':
105
+ return '電話番号入力欄';
106
+ case 'kor':
107
+ return '전화번호 입력란';
108
+ case 'nld':
109
+ return 'Telefoonnummer veld';
110
+ case 'per':
111
+ return 'فیلد ورود شماره تلفن';
112
+ case 'pol':
113
+ return 'Pole numeru telefonu';
114
+ case 'por':
115
+ return 'Campo do número de telefone';
116
+ case 'ron':
117
+ return 'Câmp număr de telefon';
118
+ case 'rus':
119
+ return 'Поле для ввода номера телефона';
120
+ case 'slk':
121
+ return 'Pole telefónneho čísla';
122
+ case 'spa':
123
+ return 'Campo del número de teléfono';
124
+ case 'srp':
125
+ return 'Поље за број телефона';
126
+ case 'swe':
127
+ return 'Telefonnummerfält';
128
+ case 'tur':
129
+ return 'Telefon numarası girişi';
130
+ case 'ukr':
131
+ return 'Поле номера телефону';
132
+ case 'urd':
133
+ return 'فون نمبر ان پٹ';
134
+ case 'zho':
135
+ return '电话号码输入框';
136
+ case 'zho-Hans':
137
+ return '电话号码输入框';
138
+ case 'zho-Hant':
139
+ return '電話號碼輸入欄位';
140
+ }
141
+ }
142
+
143
+ export function getPhoneNumberInputAccessibilityHint(language) {
144
+ switch (language) {
145
+ case 'ara':
146
+ return 'اكتب رقم الهاتف';
147
+ case 'bel':
148
+ return 'Увядзіце нумар тэлефона';
149
+ case 'bre':
150
+ return 'Skrivit an niver pellgomz';
151
+ case 'bul':
152
+ return 'Напишете телефонен номер';
153
+ case 'ces':
154
+ return 'Napište telefonní číslo';
155
+ case 'deu':
156
+ return 'Schreiben Sie die Telefonnummer';
157
+ case 'ell':
158
+ return 'Γράψτε τον αριθμό τηλεφώνου';
159
+ case 'eng':
160
+ return 'Write the phone number';
161
+ case 'est':
162
+ return 'Kirjutage telefoninumber';
163
+ case 'fin':
164
+ return 'Kirjoita puhelinnumero';
165
+ case 'fra':
166
+ return 'Écrivez le numéro de téléphone';
167
+ case 'heb':
168
+ return 'כתוב את מספר הטלפון';
169
+ case 'hrv':
170
+ return 'Upišite broj telefona';
171
+ case 'hun':
172
+ return 'Írja be a telefonszámot';
173
+ case 'ita':
174
+ return 'Scrivi il numero di telefono';
175
+ case 'jpn':
176
+ return '電話番号を入力してください';
177
+ case 'kor':
178
+ return '전화번호를 입력하세요';
179
+ case 'nld':
180
+ return 'Schrijf het telefoonnummer';
181
+ case 'per':
182
+ return 'شماره تلفن را وارد کنید';
183
+ case 'pol':
184
+ return 'Wpisz numer telefonu';
185
+ case 'por':
186
+ return 'Digite o número de telefone';
187
+ case 'ron':
188
+ return 'Scrieți numărul de telefon';
189
+ case 'rus':
190
+ return 'Введите номер телефона';
191
+ case 'slk':
192
+ return 'Napíšte telefónne číslo';
193
+ case 'spa':
194
+ return 'Escriba el número de teléfono';
195
+ case 'srp':
196
+ return 'Упишите број телефона';
197
+ case 'swe':
198
+ return 'Skriv telefonnumret';
199
+ case 'tur':
200
+ return 'Telefon numarasını yazın';
201
+ case 'ukr':
202
+ return 'Введіть номер телефону';
203
+ case 'urd':
204
+ return 'فون نمبر لکھیں';
205
+ case 'zho':
206
+ return '输入电话号码';
207
+ case 'zho-Hans':
208
+ return '输入电话号码';
209
+ case 'zho-Hant':
210
+ return '輸入電話號碼';
211
+ }
212
+ }
213
+
214
+ export function getCountriesButtonAccessibilityLabel(language) {
215
+ switch (language) {
216
+ case 'ara':
217
+ return 'زر البلدان';
218
+ case 'bel':
219
+ return 'Кнопка выбару краіны';
220
+ case 'bre':
221
+ return 'Nozelen broioù';
222
+ case 'bul':
223
+ return 'Бутон държави';
224
+ case 'ces':
225
+ return 'Tlačítko zemí';
226
+ case 'deu':
227
+ return 'Länder-Button';
228
+ case 'ell':
229
+ return 'Κουμπί χωρών';
230
+ case 'eng':
231
+ return 'Countries button';
232
+ case 'est':
233
+ return 'Riikide nupp';
234
+ case 'fin':
235
+ return 'Maat-painike';
236
+ case 'fra':
237
+ return 'Bouton pays';
238
+ case 'heb':
239
+ return 'כפתור מדינות';
240
+ case 'hrv':
241
+ return 'Gumb zemlje';
242
+ case 'hun':
243
+ return 'Országok gomb';
244
+ case 'ita':
245
+ return 'Pulsante paesi';
246
+ case 'jpn':
247
+ return '国ボタン';
248
+ case 'kor':
249
+ return '국가 버튼';
250
+ case 'nld':
251
+ return 'Landenknop';
252
+ case 'per':
253
+ return 'دکمه کشورها';
254
+ case 'pol':
255
+ return 'Przycisk krajów';
256
+ case 'por':
257
+ return 'Botão de países';
258
+ case 'ron':
259
+ return 'Buton țări';
260
+ case 'rus':
261
+ return 'Кнопка выбора страны';
262
+ case 'slk':
263
+ return 'Tlačidlo krajín';
264
+ case 'spa':
265
+ return 'Botón de países';
266
+ case 'srp':
267
+ return 'Дугме за земље';
268
+ case 'swe':
269
+ return 'Länderknapp';
270
+ case 'tur':
271
+ return 'Ülkeler butonu';
272
+ case 'ukr':
273
+ return 'Кнопка країн';
274
+ case 'urd':
275
+ return 'ممالک کا بٹن';
276
+ case 'zho':
277
+ return '国家按钮';
278
+ case 'zho-Hans':
279
+ return '国家按钮';
280
+ case 'zho-Hant':
281
+ return '國家按鈕';
282
+ }
283
+ }
284
+
285
+ export function getCountriesButtonAccessibilityHint(language) {
286
+ switch (language) {
287
+ case 'ara':
288
+ return 'انقر لفتح نافذة البلدان';
289
+ case 'bel':
290
+ return 'Націсніце, каб адкрыць акно з краінамі';
291
+ case 'bre':
292
+ return 'Klikit evit digeriñ ar prenestr broioù';
293
+ case 'bul':
294
+ return 'Щракнете, за да отворите прозореца с държави';
295
+ case 'ces':
296
+ return 'Klikněte pro otevření okna se zeměmi';
297
+ case 'deu':
298
+ return 'Klicken Sie, um das Länder-Modal zu öffnen';
299
+ case 'ell':
300
+ return 'Κάντε κλικ για να ανοίξετε το παράθυρο χωρών';
301
+ case 'eng':
302
+ return 'Click to open the countries modal';
303
+ case 'est':
304
+ return 'Klõpsake riikide akna avamiseks';
305
+ case 'fin':
306
+ return 'Napsauta avataksesi maat-ikkunan';
307
+ case 'fra':
308
+ return 'Cliquez pour ouvrir la fenêtre des pays';
309
+ case 'heb':
310
+ return 'לחץ כדי לפתוח את חלון המדינות';
311
+ case 'hrv':
312
+ return 'Kliknite za otvaranje prozora zemalja';
313
+ case 'hun':
314
+ return 'Kattintson az országok ablak megnyitásához';
315
+ case 'ita':
316
+ return 'Clicca per aprire la finestra dei paesi';
317
+ case 'jpn':
318
+ return '国一覧のモーダルを開くにはクリック';
319
+ case 'kor':
320
+ return '국가 모달을 열려면 클릭하세요';
321
+ case 'nld':
322
+ return 'Klik om het landenvenster te openen';
323
+ case 'per':
324
+ return 'برای باز کردن پنجره کشورها کلیک کنید';
325
+ case 'pol':
326
+ return 'Kliknij, aby otworzyć okno krajów';
327
+ case 'por':
328
+ return 'Clique para abrir o modal de países';
329
+ case 'ron':
330
+ return 'Faceți clic pentru a deschide fereastra țărilor';
331
+ case 'rus':
332
+ return 'Нажмите, чтобы открыть окно выбора страны';
333
+ case 'slk':
334
+ return 'Kliknutím otvoríte okno krajín';
335
+ case 'spa':
336
+ return 'Haga clic para abrir el modal de países';
337
+ case 'srp':
338
+ return 'Кликните да отворите прозор са земљама';
339
+ case 'swe':
340
+ return 'Klicka för att öppna landsfönstret';
341
+ case 'tur':
342
+ return 'Ülkeler penceresini açmak için tıklayın';
343
+ case 'ukr':
344
+ return 'Натисніть, щоб відкрити вікно країн';
345
+ case 'urd':
346
+ return 'ممالک کی ونڈو کھولنے کے لیے کلک کریں';
347
+ case 'zho':
348
+ return '点击打开国家选择窗口';
349
+ case 'zho-Hans':
350
+ return '点击打开国家选择窗口';
351
+ case 'zho-Hant':
352
+ return '點擊開啟國家選擇視窗';
353
+ }
354
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-native-international-phone-number",
3
3
  "author": "AstrOOnauta (https://github.com/AstrOOnauta)",
4
- "version": "0.10.6",
4
+ "version": "0.10.7",
5
5
  "description": "International mobile phone input component with mask for React Native",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
@@ -44,7 +44,7 @@
44
44
  "react-native": "*"
45
45
  },
46
46
  "dependencies": {
47
- "react-native-country-select": "0.2.3",
47
+ "react-native-country-select": "0.2.4",
48
48
  "libphonenumber-js": "1.12.17"
49
49
  },
50
50
  "devDependencies": {
@@ -1,44 +0,0 @@
1
- export function getPhoneNumberInputPlaceholder(language) {
2
- switch (language) {
3
- case 'en':
4
- return 'Insert your phone number';
5
- case 'ru':
6
- return 'Вставьте свой номер телефона';
7
- case 'pl':
8
- return 'Wprowadź swój numer telefonu';
9
- case 'ua':
10
- return 'Введіть свій номер телефону';
11
- case 'cz':
12
- return 'Vložte své telefonní číslo';
13
- case 'by':
14
- return 'Увядзіце свой нумар тэлефона';
15
- case 'pt':
16
- return 'Insira seu número de telefone';
17
- case 'es':
18
- return 'Introduzca su número de teléfono';
19
- case 'ro':
20
- return 'Introduceți numărul dvs. de telefon';
21
- case 'bg':
22
- return 'Въведете телефонния си номер';
23
- case 'de':
24
- return 'Geben Sie Ihre Rufnummer ein';
25
- case 'fr':
26
- return 'Insérez votre numéro de téléphone';
27
- case 'nl':
28
- return 'Voer uw telefoonnummer in';
29
- case 'it':
30
- return 'Inserire il numero di telefono';
31
- case 'cn':
32
- return '输入电话号码';
33
- case 'ee':
34
- return 'Sisestage oma telefoninumber';
35
- case 'jp':
36
- return '電話番号を入力してください';
37
- case 'he':
38
- return 'הכנס את מספר הטלפון שלך';
39
- case 'ar':
40
- return 'أدخل رقم الهاتف';
41
- case 'tr':
42
- return 'Telefon numarası girin';
43
- }
44
- }