foxit-component 1.0.5-alpha.10 → 1.0.5-alpha.11

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.
@@ -14,6 +14,7 @@ export interface PhoneInputProps extends Omit<InputProps, 'addonBefore' | 'value
14
14
  defaultValue?: PhoneInputFieldValue;
15
15
  areaCodeOptions?: AreaCodeOption[];
16
16
  flagBaseUrl?: string;
17
+ selectPlaceholder?: string;
17
18
  onChange?: (value: PhoneInputValue) => void;
18
19
  }
19
20
  declare const PhoneInput: React.FC<PhoneInputProps>;
@@ -85,7 +85,7 @@ var filterAreaCodeOption = function (candidate, inputValue) {
85
85
  normalizedDialCode.includes(normalizedKeyword));
86
86
  };
87
87
  var PhoneAreaCodeSelectBase = function (_a) {
88
- var options = _a.options, value = _a.value, disabled = _a.disabled, flagBaseUrl = _a.flagBaseUrl, onChange = _a.onChange;
88
+ var options = _a.options, value = _a.value, disabled = _a.disabled, flagBaseUrl = _a.flagBaseUrl, placeholder = _a.placeholder, onChange = _a.onChange;
89
89
  var handleChange = useCallback(function (option) {
90
90
  var nextOption = option;
91
91
  if (!nextOption) {
@@ -94,12 +94,11 @@ var PhoneAreaCodeSelectBase = function (_a) {
94
94
  onChange(nextOption);
95
95
  }, [onChange]);
96
96
  var formatOptionLabel = useCallback(function (option, meta) { return (jsx(AreaCodeOptionLabel, { option: option, flagBaseUrl: flagBaseUrl, isMenu: meta.context === 'menu' })); }, [flagBaseUrl]);
97
- return (jsx(Select, { className: "foxit-phone-input-select", classNamePrefix: "foxit-phone-input-select", options: options, value: value, onChange: handleChange, isDisabled: disabled, isSearchable: true, showSelectedIcon: false, placeholder: "", filterOption: filterAreaCodeOption, formatOptionLabel: formatOptionLabel, styles: phoneAreaCodeSelectStyles }));
97
+ return (jsx(Select, { className: "foxit-phone-input-select", classNamePrefix: "foxit-phone-input-select", options: options, value: value || null, onChange: handleChange, isDisabled: disabled, isSearchable: true, showSelectedIcon: false, placeholder: placeholder, filterOption: filterAreaCodeOption, formatOptionLabel: formatOptionLabel, styles: phoneAreaCodeSelectStyles }));
98
98
  };
99
99
  var PhoneAreaCodeSelect = React.memo(PhoneAreaCodeSelectBase);
100
100
  var PhoneInput = function (_a) {
101
- var _b;
102
- var value = _a.value, defaultValue = _a.defaultValue, _c = _a.areaCodeOptions, passAreaCodeOptions = _c === void 0 ? areaCodeOptions : _c, flagBaseUrl = _a.flagBaseUrl, onChange = _a.onChange, className = _a.className, rest = __rest(_a, ["value", "defaultValue", "areaCodeOptions", "flagBaseUrl", "onChange", "className"]);
101
+ var value = _a.value, defaultValue = _a.defaultValue, _b = _a.areaCodeOptions, passAreaCodeOptions = _b === void 0 ? areaCodeOptions : _b, flagBaseUrl = _a.flagBaseUrl, _c = _a.selectPlaceholder, selectPlaceholder = _c === void 0 ? 'Select' : _c, onChange = _a.onChange, className = _a.className, rest = __rest(_a, ["value", "defaultValue", "areaCodeOptions", "flagBaseUrl", "selectPlaceholder", "onChange", "className"]);
103
102
  var resolvedFlagBaseUrl = flagBaseUrl || AREA_FLAG_BASE_URL();
104
103
  var selectOptions = useMemo(function () {
105
104
  return __spreadArray([], passAreaCodeOptions, true).sort(function (a, b) {
@@ -111,14 +110,16 @@ var PhoneInput = function (_a) {
111
110
  })
112
111
  .map(function (option) { return (__assign(__assign({}, option), { label: option.dialCode })); });
113
112
  }, [passAreaCodeOptions]);
114
- var _d = useState((defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.areaCode) || 'US'), innerAreaCode = _d[0], setInnerAreaCode = _d[1];
113
+ var _d = useState((defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.areaCode) || ''), innerAreaCode = _d[0], setInnerAreaCode = _d[1];
115
114
  var _e = useState((defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.phoneNumber) || ''), innerPhoneNumber = _e[0], setInnerPhoneNumber = _e[1];
116
- var selectedAreaCode = (_b = value === null || value === void 0 ? void 0 : value.areaCode) !== null && _b !== void 0 ? _b : innerAreaCode;
117
- var phoneNumber = value === undefined ? innerPhoneNumber : value.phoneNumber || '';
115
+ var isControlled = value !== undefined;
116
+ var selectedAreaCode = isControlled ? (value === null || value === void 0 ? void 0 : value.areaCode) || '' : innerAreaCode;
117
+ var phoneNumber = isControlled ? (value === null || value === void 0 ? void 0 : value.phoneNumber) || '' : innerPhoneNumber;
118
118
  var phoneNumberRef = useRef(phoneNumber);
119
119
  phoneNumberRef.current = phoneNumber;
120
- var selectedOption = selectOptions.find(function (option) { return option.value === selectedAreaCode; }) || selectOptions[0];
121
- var isControlled = value !== undefined;
120
+ var selectedOption = selectedAreaCode
121
+ ? selectOptions.find(function (option) { return option.value === selectedAreaCode; })
122
+ : undefined;
122
123
  var onChangeRef = useRef(onChange);
123
124
  var isControlledRef = useRef(isControlled);
124
125
  onChangeRef.current = onChange;
@@ -135,11 +136,11 @@ var PhoneInput = function (_a) {
135
136
  if (value === undefined) {
136
137
  setInnerPhoneNumber(nextPhoneNumber);
137
138
  }
138
- if (selectedOption) {
139
- onChange === null || onChange === void 0 ? void 0 : onChange(getPhoneInputValue(selectedOption, nextPhoneNumber));
140
- }
139
+ onChange === null || onChange === void 0 ? void 0 : onChange(selectedOption
140
+ ? getPhoneInputValue(selectedOption, nextPhoneNumber)
141
+ : { areaCode: '', dialCode: '', name: '', phoneNumber: nextPhoneNumber });
141
142
  };
142
- return (jsx(Input, __assign({}, rest, { inputMode: rest.inputMode || 'numeric', pattern: rest.pattern || '[0-9]*', value: phoneNumber, onChange: handlePhoneNumberChange, className: classNames('foxit-phone-input', className), addonBefore: jsx(PhoneAreaCodeSelect, { options: selectOptions, value: selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.value, disabled: rest.disabled, flagBaseUrl: resolvedFlagBaseUrl, onChange: handleAreaCodeChange }) })));
143
+ return (jsx(Input, __assign({}, rest, { inputMode: rest.inputMode || 'numeric', pattern: rest.pattern || '[0-9]*', value: phoneNumber, onChange: handlePhoneNumberChange, className: classNames('foxit-phone-input', className), addonBefore: jsx(PhoneAreaCodeSelect, { options: selectOptions, value: selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.value, disabled: rest.disabled, flagBaseUrl: resolvedFlagBaseUrl, placeholder: selectPlaceholder, onChange: handleAreaCodeChange }) })));
143
144
  };
144
145
 
145
146
  export { PhoneInput as default };
@@ -20,7 +20,9 @@ var Select = function (_a) {
20
20
  return __assign(__assign({}, styles), { backgroundColor: isFocused || isSelected ? '#FFF6F0' : 'white', color: isSelected ? '#FF5F00' : '#666', ':hover': {
21
21
  backgroundColor: '#FFF6F0'
22
22
  }, fontSize: 16, display: 'flex', justifyContent: 'space-between', alignItems: 'center' });
23
- }, indicatorSeparator: function (styles) { return (__assign(__assign({}, styles), { display: 'none' })); }, placeholder: function (styles) { return (__assign(__assign({}, styles), { color: '#B3B3B3' })); }, dropdownIndicator: function (styles) { return (__assign(__assign({}, styles), { paddingRight: 16 })); }, singleValue: function (styles) { return (__assign(__assign({}, styles), ((passStyles === null || passStyles === void 0 ? void 0 : passStyles.singleValue) || {}))); }, input: function (styles) { return (__assign(__assign({}, styles), ((passStyles === null || passStyles === void 0 ? void 0 : passStyles.input) || {}))); } }, ((passStyles === null || passStyles === void 0 ? void 0 : passStyles.menu) && { menu: function (base, state) { return (__assign(__assign({}, base), passStyles.menu(base, state))); } }));
23
+ }, indicatorSeparator: function (styles) { return (__assign(__assign({}, styles), { display: 'none' })); }, placeholder: function (styles) { return (__assign(__assign({}, styles), { color: '#B3B3B3' })); }, dropdownIndicator: function (styles) { return (__assign(__assign({}, styles), { paddingRight: 16 })); }, singleValue: function (styles) { return (__assign(__assign({}, styles), ((passStyles === null || passStyles === void 0 ? void 0 : passStyles.singleValue) || {}))); }, input: function (styles) { return (__assign(__assign({}, styles), ((passStyles === null || passStyles === void 0 ? void 0 : passStyles.input) || {}))); } }, ((passStyles === null || passStyles === void 0 ? void 0 : passStyles.menu) && {
24
+ menu: function (base, state) { return (__assign(__assign({}, base), passStyles.menu(base, state))); }
25
+ }));
24
26
  var CustomControl = function (props) { return (jsxs(components.Control, __assign({}, props, { children: [preIcon && (jsx("div", __assign({ className: "foxit-select-custom-control", style: {
25
27
  color: props.hasValue ? '#525252' : '#B3B3B3'
26
28
  } }, { children: preIcon }))), props.children] }))); };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "foxit-component",
3
- "version": "1.0.5-alpha.10",
3
+ "version": "1.0.5-alpha.11",
4
4
  "author": {
5
5
  "name": "linye",
6
6
  "email": "869675630@qq.com"