playbook_ui 12.5.0.pre.alpha.phonerails1 → 12.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e827c4077969ef2258c6c650173ef5c8227d81aca0a0201c19ae0e136de1decb
4
- data.tar.gz: aec0d42668e214f8a32b4220704c76af66a2b55a43fbeb0efb28eb6832c45d9a
3
+ metadata.gz: 92319a3771d2aa0a3198e988dc95b91e977ee532db2884cd6197912cb045caae
4
+ data.tar.gz: caaa026385dd1d94a65175ba00ef818caab6a901c5bb0da90cd24920158e885f
5
5
  SHA512:
6
- metadata.gz: ed4ab9a7d46404031c54b2c4e22731d4260d00d2db11af3b280b03f92df607f1afd8a6f3b68d6b52aa6e8866605c5c7fa85c4598a4323b2dfbc6a9d5490ff196
7
- data.tar.gz: 23d61876cc9d04ea7b378b9ecc896b5d4f0a8d04b336a2b3f0fbf81c24189cc8ac86cc2f0eb65b3760d2da51c9699798a8dbe38c20a98744c3076b6f450706ab
6
+ metadata.gz: 7469df006da7d11b70de500123a4d260db2a2c8c0b79ee80766dde6a760eaa81c71b59880aad14ee48a7d9ee91b2c6237e766b8c046a19b088b61830b0e5f2b6
7
+ data.tar.gz: 7e0f3a0e05f403da3b31e8b21ab01ee92fb4139a5223af663a62f9672ff381009a75cd1a9f30ea57289e28ffda043f23cab7364eae1e54973e9f4922d8884f28
@@ -1,32 +1,32 @@
1
1
  /* @flow */
2
- import React, { useEffect, useRef, useState } from "react"
3
- import classnames from "classnames"
4
- import { buildAriaProps, buildCss, buildDataProps } from "../utilities/props"
5
- import { globalProps } from "../utilities/globalProps"
6
- import intlTelInput from "intl-tel-input"
7
- import "intl-tel-input/build/css/intlTelInput.css"
8
- import TextInput from "../pb_text_input/_text_input"
2
+ import React, { useEffect, useRef, useState } from 'react'
3
+ import classnames from 'classnames'
4
+ import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
5
+ import { globalProps } from '../utilities/globalProps'
6
+ import intlTelInput from 'intl-tel-input'
7
+ import 'intl-tel-input/build/css/intlTelInput.css'
8
+ import TextInput from '../pb_text_input/_text_input'
9
9
 
10
10
  declare global {
11
11
  interface Window {
12
- intlTelInputGlobals: any
12
+ intlTelInputGlobals: any,
13
13
  }
14
14
  }
15
15
 
16
16
  type PhoneNumberInputProps = {
17
- aria?: { [key: string]: string }
18
- className?: string
19
- data?: { [key: string]: string }
20
- disabled?: boolean
21
- id?: string
22
- initialCountry?: string
23
- isValid?: (valid: boolean) => void
24
- label?: string
25
- name?: string
26
- onChange?: (e: React.FormEvent<HTMLInputElement>) => void
27
- onlyCountries: string[]
28
- preferredCountries?: string[]
29
- value?: string
17
+ aria?: { [key: string]: string },
18
+ className?: string,
19
+ data?: { [key: string]: string },
20
+ disabled?: boolean,
21
+ id?: string,
22
+ initialCountry?: string,
23
+ isValid?: (valid: boolean) => void,
24
+ label?: string,
25
+ name?: string,
26
+ onChange?: (e: React.FormEvent<HTMLInputElement>) => void,
27
+ onlyCountries: string[],
28
+ preferredCountries?: string[],
29
+ value?: string,
30
30
  }
31
31
 
32
32
  enum ValidationError {
@@ -35,20 +35,17 @@ enum ValidationError {
35
35
  }
36
36
 
37
37
  const formatToGlobalCountryName = (countryName: string) => {
38
- return countryName.split("(")[0].trim()
38
+ return countryName.split('(')[0].trim()
39
39
  }
40
40
 
41
41
  const formatAllCountries = () => {
42
42
  let countryData = window.intlTelInputGlobals.getCountryData()
43
-
44
43
  for (let i = 0; i < countryData.length; i++) {
45
44
  let country = countryData[i]
46
45
  country.name = formatToGlobalCountryName(country.name)
47
46
  }
48
47
  }
49
48
 
50
- formatAllCountries()
51
-
52
49
  const containOnlyNumbers = (value: string) => {
53
50
  return /^(\++)*(\d+)$/.test(value)
54
51
  }
@@ -59,33 +56,25 @@ const PhoneNumberInput = (props: PhoneNumberInputProps) => {
59
56
  className,
60
57
  data = {},
61
58
  disabled = false,
62
- id = "",
63
- initialCountry = "",
64
- isValid = () => {
65
- void 0
66
- },
67
- label = "",
68
- name = "",
69
- onChange = () => {
70
- void 0
71
- },
59
+ id = '',
60
+ initialCountry = '',
61
+ isValid = () => {void 0 },
62
+ label = '',
63
+ name = '',
64
+ onChange = () => { void 0 },
72
65
  onlyCountries = [],
73
66
  preferredCountries = [],
74
- value = "",
67
+ value = '',
75
68
  } = props
76
69
 
77
70
  const ariaProps = buildAriaProps(aria)
78
71
  const dataProps = buildDataProps(data)
79
- const classes = classnames(
80
- buildCss("pb_phone_number_input"),
81
- globalProps(props),
82
- className
83
- )
72
+ const classes = classnames(buildCss('pb_phone_number_input'), globalProps(props), className)
84
73
 
85
74
  const inputRef = useRef<HTMLInputElement>()
86
75
  const [inputValue, setInputValue] = useState(value)
87
76
  const [itiInit, setItiInit] = useState<any>()
88
- const [error, setError] = useState("")
77
+ const [error, setError] = useState('')
89
78
 
90
79
  const validateTooLongNumber = (itiInit: any) => {
91
80
  const error = itiInit.getValidationError()
@@ -94,7 +83,7 @@ const PhoneNumberInput = (props: PhoneNumberInputProps) => {
94
83
  const countryName = itiInit.getSelectedCountryData().name
95
84
  setError(`Invalid ${countryName} phone number (too long)`)
96
85
  } else {
97
- setError("")
86
+ setError('')
98
87
  }
99
88
  }
100
89
 
@@ -109,7 +98,7 @@ const PhoneNumberInput = (props: PhoneNumberInputProps) => {
109
98
 
110
99
  const validateOnlyNumbers = () => {
111
100
  if (inputValue && !containOnlyNumbers(inputValue)) {
112
- setError("Invalid phone number. Enter numbers only.")
101
+ setError('Invalid phone number. Enter numbers only.')
113
102
  }
114
103
  }
115
104
 
@@ -125,32 +114,29 @@ const PhoneNumberInput = (props: PhoneNumberInputProps) => {
125
114
  isValid(itiInit.isValidNumber())
126
115
  }
127
116
 
128
- // Separating Concerns as React Docs Recommend
129
- // This also Fixes things for our react_component rendering on the Rails Side
130
117
  useEffect(() => {
131
118
  formatAllCountries()
132
- }, [])
133
119
 
134
- useEffect(() => {
135
120
  const telInputInit = new intlTelInput(inputRef.current, {
136
- utilsScript:
137
- "https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.19/js/utils.js",
138
- separateDialCode: true,
139
- preferredCountries,
140
- allowDropdown: !disabled,
141
- initialCountry,
142
- onlyCountries,
143
- })
144
-
145
- inputRef.current.addEventListener("countrychange", () =>
146
- validateTooLongNumber(telInputInit)
121
+ utilsScript: 'https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.19/js/utils.js',
122
+ separateDialCode: true,
123
+ preferredCountries,
124
+ allowDropdown: !disabled,
125
+ initialCountry,
126
+ onlyCountries,
127
+ }
147
128
  )
148
-
129
+
130
+ inputRef.current.addEventListener("countrychange", () => validateTooLongNumber(telInputInit))
149
131
  setItiInit(telInputInit)
150
132
  }, [])
151
133
 
152
134
  return (
153
- <div {...ariaProps} {...dataProps} className={classes}>
135
+ <div
136
+ {...ariaProps}
137
+ {...dataProps}
138
+ className={classes}
139
+ >
154
140
  <TextInput
155
141
  disabled={disabled}
156
142
  error={error}
@@ -7,7 +7,4 @@ examples:
7
7
  - phone_number_input_only_countries: Limited Countries
8
8
 
9
9
  rails:
10
- - phone_number_input_default: Default
11
- - phone_number_input_preferred_countries: Preferred Countries
12
- - phone_number_input_initial_country: Initial Country
13
- - phone_number_input_only_countries: Limited Countries
10
+ - phone_number_input_default: Default
@@ -1 +1,15 @@
1
- <%= react_component("PhoneNumberInput", object.phone_number_input_options) %>
1
+ <%= react_component("PhoneNumberInput", object.phone_number_input_options) %>
2
+
3
+ <script>
4
+ const formatToGlobalCountryName = () => {
5
+ return countryName.split('(')[0].trim()
6
+ }
7
+
8
+ const formatAllCountries = () => {
9
+ let countryData = window.intlTelInputGlobals.getCountryData()
10
+ for (let i = 0; i < countryData.length; i++) {
11
+ let country = countryData[i]
12
+ country.name = formatToGlobalCountryName(country.name)
13
+ }
14
+ }
15
+ </script>
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Playbook
4
- PREVIOUS_VERSION = "12.5.0"
5
- VERSION = "12.5.0.pre.alpha.phonerails1"
4
+ PREVIOUS_VERSION = "12.4.0"
5
+ VERSION = "12.5.0"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playbook_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 12.5.0.pre.alpha.phonerails1
4
+ version: 12.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Power UX
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-03-01 00:00:00.000000000 Z
12
+ date: 2023-02-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -1561,13 +1561,10 @@ files:
1561
1561
  - app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_default.html.erb
1562
1562
  - app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_default.jsx
1563
1563
  - app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_default.md
1564
- - app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_initial_country.html.erb
1565
1564
  - app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_initial_country.jsx
1566
1565
  - app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_initial_country.md
1567
- - app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_only_countries.html.erb
1568
1566
  - app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_only_countries.jsx
1569
1567
  - app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_only_countries.md
1570
- - app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_preferred_countries.html.erb
1571
1568
  - app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_preferred_countries.jsx
1572
1569
  - app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_preferred_countries.md
1573
1570
  - app/pb_kits/playbook/pb_phone_number_input/docs/example.yml
@@ -2431,9 +2428,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
2431
2428
  version: '0'
2432
2429
  required_rubygems_version: !ruby/object:Gem::Requirement
2433
2430
  requirements:
2434
- - - ">"
2431
+ - - ">="
2435
2432
  - !ruby/object:Gem::Version
2436
- version: 1.3.1
2433
+ version: '0'
2437
2434
  requirements: []
2438
2435
  rubygems_version: 3.3.7
2439
2436
  signing_key:
@@ -1,3 +0,0 @@
1
- <%= pb_rails("phone_number_input", props: {
2
- initial_country: "br"
3
- }) %>
@@ -1,4 +0,0 @@
1
- <%= pb_rails("phone_number_input", props: {
2
- initial_country: "br",
3
- only_countries: ['us', 'br']
4
- }) %>
@@ -1,4 +0,0 @@
1
- <%= pb_rails("phone_number_input", props: {
2
- initial_country: "br",
3
- preferred_countries: ['us', 'br', 'ph', 'gb']
4
- }) %>