@salutejs/plasma-new-hope 0.336.0-canary.2208.17465207747.0 → 0.336.0-canary.2210.17488241312.0
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/cjs/components/CodeField/CodeField.css +7 -6
- package/cjs/components/CodeField/CodeField.js +60 -24
- package/cjs/components/CodeField/CodeField.js.map +1 -1
- package/cjs/components/CodeField/CodeField.styles.js +7 -1
- package/cjs/components/CodeField/CodeField.styles.js.map +1 -1
- package/cjs/components/CodeField/{CodeField.styles_ebdpd0.css → CodeField.styles_14p25hi.css} +1 -0
- package/cjs/components/CodeField/hooks/useWebOTP.js +107 -0
- package/cjs/components/CodeField/hooks/useWebOTP.js.map +1 -0
- package/cjs/components/CodeField/utils/handleCodeError.js +2 -2
- package/cjs/components/CodeField/utils/handleCodeError.js.map +1 -1
- package/cjs/components/CodeField/utils/handleItemError.js +14 -4
- package/cjs/components/CodeField/utils/handleItemError.js.map +1 -1
- package/cjs/components/CodeField/utils/isWebOTPSupported.js +10 -0
- package/cjs/components/CodeField/utils/isWebOTPSupported.js.map +1 -0
- package/cjs/components/Drawer/hooks/useDrawer.js +0 -12
- package/cjs/components/Drawer/hooks/useDrawer.js.map +1 -1
- package/cjs/index.css +7 -6
- package/emotion/cjs/components/CodeField/CodeField.js +50 -20
- package/emotion/cjs/components/CodeField/CodeField.styles.js +18 -11
- package/emotion/cjs/components/CodeField/hooks/useWebOTP.js +256 -0
- package/emotion/cjs/components/CodeField/utils/handleCodeError.js +2 -2
- package/emotion/cjs/components/CodeField/utils/handleItemError.js +12 -3
- package/emotion/cjs/components/CodeField/utils/index.js +4 -0
- package/emotion/cjs/components/CodeField/utils/isWebOTPSupported.js +13 -0
- package/emotion/cjs/components/Drawer/hooks/useDrawer.js +0 -11
- package/emotion/es/components/CodeField/CodeField.js +52 -22
- package/emotion/es/components/CodeField/CodeField.styles.js +15 -11
- package/emotion/es/components/CodeField/hooks/useWebOTP.js +246 -0
- package/emotion/es/components/CodeField/utils/handleCodeError.js +2 -2
- package/emotion/es/components/CodeField/utils/handleItemError.js +12 -3
- package/emotion/es/components/CodeField/utils/index.js +1 -0
- package/emotion/es/components/CodeField/utils/isWebOTPSupported.js +3 -0
- package/emotion/es/components/Drawer/hooks/useDrawer.js +0 -11
- package/es/components/CodeField/CodeField.css +7 -6
- package/es/components/CodeField/CodeField.js +62 -26
- package/es/components/CodeField/CodeField.js.map +1 -1
- package/es/components/CodeField/CodeField.styles.js +7 -2
- package/es/components/CodeField/CodeField.styles.js.map +1 -1
- package/es/components/CodeField/{CodeField.styles_ebdpd0.css → CodeField.styles_14p25hi.css} +1 -0
- package/es/components/CodeField/hooks/useWebOTP.js +103 -0
- package/es/components/CodeField/hooks/useWebOTP.js.map +1 -0
- package/es/components/CodeField/utils/handleCodeError.js +2 -2
- package/es/components/CodeField/utils/handleCodeError.js.map +1 -1
- package/es/components/CodeField/utils/handleItemError.js +14 -4
- package/es/components/CodeField/utils/handleItemError.js.map +1 -1
- package/es/components/CodeField/utils/isWebOTPSupported.js +6 -0
- package/es/components/CodeField/utils/isWebOTPSupported.js.map +1 -0
- package/es/components/Drawer/hooks/useDrawer.js +0 -12
- package/es/components/Drawer/hooks/useDrawer.js.map +1 -1
- package/es/index.css +7 -6
- package/package.json +2 -2
- package/styled-components/cjs/components/CodeField/CodeField.js +50 -20
- package/styled-components/cjs/components/CodeField/CodeField.styles.js +14 -5
- package/styled-components/cjs/components/CodeField/hooks/useWebOTP.js +256 -0
- package/styled-components/cjs/components/CodeField/utils/handleCodeError.js +2 -2
- package/styled-components/cjs/components/CodeField/utils/handleItemError.js +12 -3
- package/styled-components/cjs/components/CodeField/utils/index.js +4 -0
- package/styled-components/cjs/components/CodeField/utils/isWebOTPSupported.js +13 -0
- package/styled-components/cjs/components/Drawer/hooks/useDrawer.js +0 -11
- package/styled-components/es/components/CodeField/CodeField.js +52 -22
- package/styled-components/es/components/CodeField/CodeField.styles.js +11 -5
- package/styled-components/es/components/CodeField/hooks/useWebOTP.js +246 -0
- package/styled-components/es/components/CodeField/utils/handleCodeError.js +2 -2
- package/styled-components/es/components/CodeField/utils/handleItemError.js +12 -3
- package/styled-components/es/components/CodeField/utils/index.js +1 -0
- package/styled-components/es/components/CodeField/utils/isWebOTPSupported.js +3 -0
- package/styled-components/es/components/Drawer/hooks/useDrawer.js +0 -11
- package/types/components/CodeField/CodeField.d.ts.map +1 -1
- package/types/components/CodeField/CodeField.styles.d.ts +1 -0
- package/types/components/CodeField/CodeField.styles.d.ts.map +1 -1
- package/types/components/CodeField/hooks/useWebOTP.d.ts +24 -0
- package/types/components/CodeField/hooks/useWebOTP.d.ts.map +1 -0
- package/types/components/CodeField/utils/handleCodeError.d.ts +2 -2
- package/types/components/CodeField/utils/handleCodeError.d.ts.map +1 -1
- package/types/components/CodeField/utils/handleItemError.d.ts +3 -2
- package/types/components/CodeField/utils/handleItemError.d.ts.map +1 -1
- package/types/components/CodeField/utils/index.d.ts +1 -0
- package/types/components/CodeField/utils/index.d.ts.map +1 -1
- package/types/components/CodeField/utils/isWebOTPSupported.d.ts +2 -0
- package/types/components/CodeField/utils/isWebOTPSupported.d.ts.map +1 -0
- package/types/components/Drawer/hooks/useDrawer.d.ts.map +1 -1
@@ -29,6 +29,7 @@ var _base = require("./variations/_view/base");
|
|
29
29
|
var _base1 = require("./variations/_size/base");
|
30
30
|
var _base2 = require("./variations/_shape/base");
|
31
31
|
var _base3 = require("./variations/_disabled/base");
|
32
|
+
var _useWebOTP = require("./hooks/useWebOTP");
|
32
33
|
function _array_like_to_array(arr, len) {
|
33
34
|
if (len == null || len > arr.length) len = arr.length;
|
34
35
|
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
@@ -212,8 +213,10 @@ var codeFieldRoot = function(Root) {
|
|
212
213
|
"onChange",
|
213
214
|
"onFullCodeEnter"
|
214
215
|
]);
|
215
|
-
var _useState = _sliced_to_array((0, _react.useState)((0, _utils1.getCodeValue)(codeLength,
|
216
|
+
var _useState = _sliced_to_array((0, _react.useState)((0, _utils1.getCodeValue)(codeLength, '')), 2), innerValue = _useState[0], setInnerValue = _useState[1];
|
217
|
+
var code = (outerValue === null || outerValue === void 0 ? void 0 : outerValue.length) ? (0, _utils1.getCodeValue)(codeLength, outerValue) : innerValue;
|
216
218
|
var _useState1 = _sliced_to_array((0, _react.useState)(code.join('')), 2), originalValue = _useState1[0], setOriginalValue = _useState1[1];
|
219
|
+
var _useState2 = _sliced_to_array((0, _react.useState)(null), 2), otpVal = _useState2[0], setOtpVal = _useState2[1];
|
217
220
|
var inputRefs = (0, _react.useRef)([]);
|
218
221
|
var inputContainerRef = (0, _react.useRef)(null);
|
219
222
|
var captionRef = (0, _react.useRef)(null);
|
@@ -221,6 +224,7 @@ var codeFieldRoot = function(Root) {
|
|
221
224
|
var placeholderValue = (0, _utils1.getPlaceholderValue)(codeLength, placeholder);
|
222
225
|
var parts = codeLength === 6 ? 2 : 1;
|
223
226
|
var widthValue = width ? (0, _utils.getSizeValueFromProp)(width, 'rem') : undefined;
|
227
|
+
var isWebOTPEnabled = autoComplete === 'one-time-code' && !disabled && !(0, _utils1.isWebOTPSupported)();
|
224
228
|
var getLastActiveIndex = function() {
|
225
229
|
if (code.length && code.length < codeLength) {
|
226
230
|
return code.length;
|
@@ -230,6 +234,26 @@ var codeFieldRoot = function(Root) {
|
|
230
234
|
});
|
231
235
|
return lastEmptyIndex >= 0 ? lastEmptyIndex : codeLength - 1;
|
232
236
|
};
|
237
|
+
var codeSetter = function(newCode) {
|
238
|
+
setInnerValue(newCode);
|
239
|
+
var originalCode = newCode.join('');
|
240
|
+
setOriginalValue(originalCode);
|
241
|
+
if (onChange) {
|
242
|
+
onChange(originalCode);
|
243
|
+
}
|
244
|
+
if (originalCode.length > 0) {
|
245
|
+
stopWebOTPListener();
|
246
|
+
}
|
247
|
+
};
|
248
|
+
var _useWebOTP1 = (0, _useWebOTP.useWebOTP)({
|
249
|
+
codeString: originalValue,
|
250
|
+
enableSMSAutoRead: autoComplete === 'one-time-code',
|
251
|
+
disabled: Boolean(disabled),
|
252
|
+
codeLength: codeLength,
|
253
|
+
codeSetter: codeSetter,
|
254
|
+
onFullCodeEnter: onFullCodeEnter,
|
255
|
+
setOtpVal: setOtpVal
|
256
|
+
}), startWebOTPListener = _useWebOTP1.startWebOTPListener, stopWebOTPListener = _useWebOTP1.stopWebOTPListener;
|
233
257
|
var handleClick = function() {
|
234
258
|
if (disabled) {
|
235
259
|
return;
|
@@ -249,19 +273,24 @@ var codeFieldRoot = function(Root) {
|
|
249
273
|
return;
|
250
274
|
}
|
251
275
|
if (key === _constants.BACKSPACE_KEY) {
|
252
|
-
if (index > 0
|
253
|
-
var
|
254
|
-
|
276
|
+
if (index > 0) {
|
277
|
+
var _inputRefs_current_index;
|
278
|
+
var newCode = _to_consumable_array(code);
|
279
|
+
newCode[index] = '';
|
280
|
+
if (index >= codeLength - 1 && code[index]) {
|
281
|
+
codeSetter(newCode);
|
282
|
+
return;
|
283
|
+
}
|
284
|
+
if (!code[index]) {
|
285
|
+
var _inputRefs_current_;
|
286
|
+
newCode[index - 1] = '';
|
287
|
+
(_inputRefs_current_ = inputRefs.current[index - 1]) === null || _inputRefs_current_ === void 0 ? void 0 : _inputRefs_current_.focus();
|
288
|
+
}
|
289
|
+
(_inputRefs_current_index = inputRefs.current[index]) === null || _inputRefs_current_index === void 0 ? void 0 : _inputRefs_current_index.classList.remove(_CodeFieldtokens.classes.itemError);
|
290
|
+
codeSetter(newCode);
|
255
291
|
}
|
256
292
|
}
|
257
293
|
};
|
258
|
-
var codeSetter = function(newCode) {
|
259
|
-
setCode(newCode);
|
260
|
-
setOriginalValue(newCode.join(''));
|
261
|
-
if (onChange) {
|
262
|
-
onChange(newCode.join(''));
|
263
|
-
}
|
264
|
-
};
|
265
294
|
var handleChange = function(event, index) {
|
266
295
|
var _inputRefs_current_index;
|
267
296
|
if (disabled) {
|
@@ -292,8 +321,6 @@ var codeFieldRoot = function(Root) {
|
|
292
321
|
return;
|
293
322
|
}
|
294
323
|
if (!symbol) {
|
295
|
-
newCode[index] = '';
|
296
|
-
codeSetter(newCode);
|
297
324
|
return;
|
298
325
|
}
|
299
326
|
if (fieldPattern.test(symbol)) {
|
@@ -311,8 +338,9 @@ var codeFieldRoot = function(Root) {
|
|
311
338
|
index: index,
|
312
339
|
newCode: newCode,
|
313
340
|
inputRefs: inputRefs,
|
314
|
-
|
315
|
-
codeSetter: codeSetter
|
341
|
+
setInnerValue: setInnerValue,
|
342
|
+
codeSetter: codeSetter,
|
343
|
+
onChange: onChange
|
316
344
|
});
|
317
345
|
}
|
318
346
|
};
|
@@ -339,6 +367,7 @@ var codeFieldRoot = function(Root) {
|
|
339
367
|
if (onFullCodeEnter) {
|
340
368
|
onFullCodeEnter(fullCode);
|
341
369
|
}
|
370
|
+
startWebOTPListener();
|
342
371
|
}, []);
|
343
372
|
(0, _hooks1.useCodeHook)({
|
344
373
|
inputRefs: inputRefs,
|
@@ -358,14 +387,14 @@ var codeFieldRoot = function(Root) {
|
|
358
387
|
inputRefs: inputRefs,
|
359
388
|
inputContainerRef: inputContainerRef,
|
360
389
|
captionRef: captionRef,
|
361
|
-
|
390
|
+
setInnerValue: setInnerValue,
|
362
391
|
codeSetter: codeSetter
|
363
392
|
});
|
364
393
|
}
|
365
394
|
}, [
|
366
395
|
isError
|
367
396
|
]);
|
368
|
-
return /*#__PURE__*/ _react.default.createElement(Root, _object_spread({
|
397
|
+
return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(Root, _object_spread({
|
369
398
|
ref: ref,
|
370
399
|
view: view,
|
371
400
|
size: size,
|
@@ -373,7 +402,7 @@ var codeFieldRoot = function(Root) {
|
|
373
402
|
disabled: disabled,
|
374
403
|
onClick: handleClick,
|
375
404
|
className: (0, _classnames.default)(className, _define_property({}, _CodeFieldtokens.classes.captionAlignLeft, captionAlign === 'left'))
|
376
|
-
}, rest), /*#__PURE__*/ _react.default.createElement(_CodeFieldstyles.CodeWrapper, {
|
405
|
+
}, !isWebOTPEnabled && _object_spread({}, rest)), /*#__PURE__*/ _react.default.createElement(_CodeFieldstyles.CodeWrapper, {
|
377
406
|
ref: inputContainerRef
|
378
407
|
}, _to_consumable_array(Array(parts)).map(function(_, partIndex) {
|
379
408
|
return /*#__PURE__*/ _react.default.createElement(_react.Fragment, {
|
@@ -390,7 +419,6 @@ var codeFieldRoot = function(Root) {
|
|
390
419
|
},
|
391
420
|
className: (0, _classnames.default)((_obj = {}, _define_property(_obj, _CodeFieldtokens.classes.segmented, shape === 'segmented'), _define_property(_obj, _CodeFieldtokens.classes.hoverEnabled, !disabled && inputCorrectIndex >= originalValue.length), _obj)),
|
392
421
|
value: code[inputCorrectIndex] || '',
|
393
|
-
autoComplete: autoComplete,
|
394
422
|
onChange: function(e) {
|
395
423
|
handleChange(e, inputCorrectIndex);
|
396
424
|
},
|
@@ -407,7 +435,9 @@ var codeFieldRoot = function(Root) {
|
|
407
435
|
ref: captionRef,
|
408
436
|
captionAlign: captionAlign,
|
409
437
|
widthValue: widthValue
|
410
|
-
}, caption)
|
438
|
+
}, caption), isWebOTPEnabled && /*#__PURE__*/ _react.default.createElement(_CodeFieldstyles.HiddenInput, _object_spread({
|
439
|
+
tabIndex: -1
|
440
|
+
}, rest))), /*#__PURE__*/ _react.default.createElement("div", null, JSON.stringify(otpVal)));
|
411
441
|
});
|
412
442
|
};
|
413
443
|
var codeFieldConfig = {
|
@@ -18,6 +18,9 @@ _export(exports, {
|
|
18
18
|
get CodeWrapper () {
|
19
19
|
return CodeWrapper;
|
20
20
|
},
|
21
|
+
get HiddenInput () {
|
22
|
+
return HiddenInput;
|
23
|
+
},
|
21
24
|
get ItemInput () {
|
22
25
|
return ItemInput;
|
23
26
|
},
|
@@ -77,32 +80,32 @@ var base = (0, _styledcomponents.css)([
|
|
77
80
|
], _CodeFieldtokens.classes.captionAlignLeft);
|
78
81
|
var CodeWrapper = _styledcomponents.default.div.withConfig({
|
79
82
|
displayName: "CodeField.styles__CodeWrapper",
|
80
|
-
componentId: "sc-
|
83
|
+
componentId: "sc-ff3d9c22-0"
|
81
84
|
})([
|
82
85
|
"display:flex;align-items:center;"
|
83
86
|
]);
|
84
87
|
var CodeGroup = _styledcomponents.default.div.withConfig({
|
85
88
|
displayName: "CodeField.styles__CodeGroup",
|
86
|
-
componentId: "sc-
|
89
|
+
componentId: "sc-ff3d9c22-1"
|
87
90
|
})([
|
88
91
|
"display:flex;align-items:center;"
|
89
92
|
]);
|
90
93
|
var Separator = _styledcomponents.default.div.withConfig({
|
91
94
|
displayName: "CodeField.styles__Separator",
|
92
|
-
componentId: "sc-
|
95
|
+
componentId: "sc-ff3d9c22-2"
|
93
96
|
})([
|
94
97
|
"width:var(",
|
95
98
|
");"
|
96
99
|
], _CodeFieldtokens.tokens.separatorWidth);
|
97
100
|
var ItemInput = _styledcomponents.default.input.withConfig({
|
98
101
|
displayName: "CodeField.styles__ItemInput",
|
99
|
-
componentId: "sc-
|
102
|
+
componentId: "sc-ff3d9c22-3"
|
100
103
|
})([
|
101
104
|
"box-sizing:border-box;appearance:none;border:0;padding:0;outline:none;pointer-events:none;text-align:center;"
|
102
105
|
]);
|
103
106
|
var CaptionWrapper = _styledcomponents.default.div.withConfig({
|
104
107
|
displayName: "CodeField.styles__CaptionWrapper",
|
105
|
-
componentId: "sc-
|
108
|
+
componentId: "sc-ff3d9c22-4"
|
106
109
|
})([
|
107
110
|
"text-align:",
|
108
111
|
";align-self:",
|
@@ -118,3 +121,9 @@ var CaptionWrapper = _styledcomponents.default.div.withConfig({
|
|
118
121
|
var widthValue = param.widthValue;
|
119
122
|
return widthValue || 'auto';
|
120
123
|
});
|
124
|
+
var HiddenInput = _styledcomponents.default.input.withConfig({
|
125
|
+
displayName: "CodeField.styles__HiddenInput",
|
126
|
+
componentId: "sc-ff3d9c22-5"
|
127
|
+
})([
|
128
|
+
"display:none;"
|
129
|
+
]);
|
@@ -0,0 +1,256 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
3
|
+
value: true
|
4
|
+
});
|
5
|
+
Object.defineProperty(exports, "useWebOTP", {
|
6
|
+
enumerable: true,
|
7
|
+
get: function() {
|
8
|
+
return useWebOTP;
|
9
|
+
}
|
10
|
+
});
|
11
|
+
var _react = require("react");
|
12
|
+
var _utils = require("../utils");
|
13
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
14
|
+
try {
|
15
|
+
var info = gen[key](arg);
|
16
|
+
var value = info.value;
|
17
|
+
} catch (error) {
|
18
|
+
reject(error);
|
19
|
+
return;
|
20
|
+
}
|
21
|
+
if (info.done) {
|
22
|
+
resolve(value);
|
23
|
+
} else {
|
24
|
+
Promise.resolve(value).then(_next, _throw);
|
25
|
+
}
|
26
|
+
}
|
27
|
+
function _async_to_generator(fn) {
|
28
|
+
return function() {
|
29
|
+
var self = this, args = arguments;
|
30
|
+
return new Promise(function(resolve, reject) {
|
31
|
+
var gen = fn.apply(self, args);
|
32
|
+
function _next(value) {
|
33
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
34
|
+
}
|
35
|
+
function _throw(err) {
|
36
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
37
|
+
}
|
38
|
+
_next(undefined);
|
39
|
+
});
|
40
|
+
};
|
41
|
+
}
|
42
|
+
function _instanceof(left, right) {
|
43
|
+
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
44
|
+
return !!right[Symbol.hasInstance](left);
|
45
|
+
} else {
|
46
|
+
return left instanceof right;
|
47
|
+
}
|
48
|
+
}
|
49
|
+
function _ts_generator(thisArg, body) {
|
50
|
+
var f, y, t, _ = {
|
51
|
+
label: 0,
|
52
|
+
sent: function() {
|
53
|
+
if (t[0] & 1) throw t[1];
|
54
|
+
return t[1];
|
55
|
+
},
|
56
|
+
trys: [],
|
57
|
+
ops: []
|
58
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
59
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
60
|
+
return this;
|
61
|
+
}), g;
|
62
|
+
function verb(n) {
|
63
|
+
return function(v) {
|
64
|
+
return step([
|
65
|
+
n,
|
66
|
+
v
|
67
|
+
]);
|
68
|
+
};
|
69
|
+
}
|
70
|
+
function step(op) {
|
71
|
+
if (f) throw new TypeError("Generator is already executing.");
|
72
|
+
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
73
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
74
|
+
if (y = 0, t) op = [
|
75
|
+
op[0] & 2,
|
76
|
+
t.value
|
77
|
+
];
|
78
|
+
switch(op[0]){
|
79
|
+
case 0:
|
80
|
+
case 1:
|
81
|
+
t = op;
|
82
|
+
break;
|
83
|
+
case 4:
|
84
|
+
_.label++;
|
85
|
+
return {
|
86
|
+
value: op[1],
|
87
|
+
done: false
|
88
|
+
};
|
89
|
+
case 5:
|
90
|
+
_.label++;
|
91
|
+
y = op[1];
|
92
|
+
op = [
|
93
|
+
0
|
94
|
+
];
|
95
|
+
continue;
|
96
|
+
case 7:
|
97
|
+
op = _.ops.pop();
|
98
|
+
_.trys.pop();
|
99
|
+
continue;
|
100
|
+
default:
|
101
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
102
|
+
_ = 0;
|
103
|
+
continue;
|
104
|
+
}
|
105
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
106
|
+
_.label = op[1];
|
107
|
+
break;
|
108
|
+
}
|
109
|
+
if (op[0] === 6 && _.label < t[1]) {
|
110
|
+
_.label = t[1];
|
111
|
+
t = op;
|
112
|
+
break;
|
113
|
+
}
|
114
|
+
if (t && _.label < t[2]) {
|
115
|
+
_.label = t[2];
|
116
|
+
_.ops.push(op);
|
117
|
+
break;
|
118
|
+
}
|
119
|
+
if (t[2]) _.ops.pop();
|
120
|
+
_.trys.pop();
|
121
|
+
continue;
|
122
|
+
}
|
123
|
+
op = body.call(thisArg, _);
|
124
|
+
} catch (e) {
|
125
|
+
op = [
|
126
|
+
6,
|
127
|
+
e
|
128
|
+
];
|
129
|
+
y = 0;
|
130
|
+
} finally{
|
131
|
+
f = t = 0;
|
132
|
+
}
|
133
|
+
if (op[0] & 5) throw op[1];
|
134
|
+
return {
|
135
|
+
value: op[0] ? op[1] : void 0,
|
136
|
+
done: true
|
137
|
+
};
|
138
|
+
}
|
139
|
+
}
|
140
|
+
// Type guard function to check if credential is OTPCredential
|
141
|
+
var isOTPCredential = function(credential) {
|
142
|
+
return credential !== null && 'code' in credential;
|
143
|
+
};
|
144
|
+
var useWebOTP = function(param) {
|
145
|
+
var codeString = param.codeString, enableSMSAutoRead = param.enableSMSAutoRead, disabled = param.disabled, codeLength = param.codeLength, codeSetter = param.codeSetter, onFullCodeEnter = param.onFullCodeEnter, setOtpVal = param.setOtpVal;
|
146
|
+
var abortControllerRef = (0, _react.useRef)(null);
|
147
|
+
var startWebOTPListener = (0, _react.useCallback)(function() {
|
148
|
+
return _async_to_generator(function() {
|
149
|
+
var otp, otpCode, newCode, err;
|
150
|
+
return _ts_generator(this, function(_state) {
|
151
|
+
switch(_state.label){
|
152
|
+
case 0:
|
153
|
+
if (!enableSMSAutoRead || disabled || !(0, _utils.isWebOTPSupported)()) {
|
154
|
+
return [
|
155
|
+
2
|
156
|
+
];
|
157
|
+
}
|
158
|
+
if (abortControllerRef.current) {
|
159
|
+
abortControllerRef.current.abort();
|
160
|
+
}
|
161
|
+
abortControllerRef.current = new AbortController();
|
162
|
+
_state.label = 1;
|
163
|
+
case 1:
|
164
|
+
_state.trys.push([
|
165
|
+
1,
|
166
|
+
3,
|
167
|
+
,
|
168
|
+
4
|
169
|
+
]);
|
170
|
+
return [
|
171
|
+
4,
|
172
|
+
navigator.credentials.get({
|
173
|
+
otp: {
|
174
|
+
transport: [
|
175
|
+
'sms'
|
176
|
+
]
|
177
|
+
},
|
178
|
+
signal: abortControllerRef.current.signal
|
179
|
+
})
|
180
|
+
];
|
181
|
+
case 2:
|
182
|
+
otp = _state.sent();
|
183
|
+
console.log('otp received', otp);
|
184
|
+
setOtpVal(otp);
|
185
|
+
// Type guard to check if it's an OTP credential
|
186
|
+
if (otp && isOTPCredential(otp) && otp.code) {
|
187
|
+
otpCode = otp.code;
|
188
|
+
// Validate the OTP code length matches our expected length
|
189
|
+
if (otpCode.length === codeLength) {
|
190
|
+
newCode = (0, _utils.getCodeValue)(codeLength, otpCode);
|
191
|
+
codeSetter(newCode);
|
192
|
+
// Trigger full code enter callback
|
193
|
+
if (onFullCodeEnter) {
|
194
|
+
onFullCodeEnter(otpCode);
|
195
|
+
}
|
196
|
+
}
|
197
|
+
}
|
198
|
+
return [
|
199
|
+
3,
|
200
|
+
4
|
201
|
+
];
|
202
|
+
case 3:
|
203
|
+
err = _state.sent();
|
204
|
+
if (_instanceof(err, DOMException)) {
|
205
|
+
if (err.name !== 'AbortError' && err.name !== 'NotAllowedError') {
|
206
|
+
console.warn('Web OTP API error:', err);
|
207
|
+
}
|
208
|
+
} else if (_instanceof(err, Error)) {
|
209
|
+
console.warn('Web OTP API error:', err);
|
210
|
+
} else {
|
211
|
+
console.warn('Unknown Web OTP API error:', err);
|
212
|
+
}
|
213
|
+
return [
|
214
|
+
3,
|
215
|
+
4
|
216
|
+
];
|
217
|
+
case 4:
|
218
|
+
return [
|
219
|
+
2
|
220
|
+
];
|
221
|
+
}
|
222
|
+
});
|
223
|
+
})();
|
224
|
+
}, [
|
225
|
+
enableSMSAutoRead,
|
226
|
+
disabled,
|
227
|
+
codeLength,
|
228
|
+
onFullCodeEnter
|
229
|
+
]);
|
230
|
+
var stopWebOTPListener = (0, _react.useCallback)(function() {
|
231
|
+
if (abortControllerRef.current) {
|
232
|
+
abortControllerRef.current.abort();
|
233
|
+
abortControllerRef.current = null;
|
234
|
+
}
|
235
|
+
}, []);
|
236
|
+
(0, _react.useEffect)(function() {
|
237
|
+
if ((0, _utils.isWebOTPSupported)() && codeString === '' && enableSMSAutoRead && !disabled) {
|
238
|
+
startWebOTPListener();
|
239
|
+
} else {
|
240
|
+
stopWebOTPListener();
|
241
|
+
}
|
242
|
+
return function() {
|
243
|
+
stopWebOTPListener();
|
244
|
+
};
|
245
|
+
}, [
|
246
|
+
codeString,
|
247
|
+
enableSMSAutoRead,
|
248
|
+
disabled,
|
249
|
+
startWebOTPListener,
|
250
|
+
stopWebOTPListener
|
251
|
+
]);
|
252
|
+
return {
|
253
|
+
startWebOTPListener: startWebOTPListener,
|
254
|
+
stopWebOTPListener: stopWebOTPListener
|
255
|
+
};
|
256
|
+
};
|
@@ -37,7 +37,7 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
37
37
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
38
38
|
}
|
39
39
|
var handleCodeError = function(param) {
|
40
|
-
var codeLength = param.codeLength, codeErrorBehavior = param.codeErrorBehavior, currentCode = param.currentCode, inputRefs = param.inputRefs, inputContainerRef = param.inputContainerRef, captionRef = param.captionRef,
|
40
|
+
var codeLength = param.codeLength, codeErrorBehavior = param.codeErrorBehavior, currentCode = param.currentCode, inputRefs = param.inputRefs, inputContainerRef = param.inputContainerRef, captionRef = param.captionRef, setInnerValue = param.setInnerValue, codeSetter = param.codeSetter;
|
41
41
|
if (!inputContainerRef.current) {
|
42
42
|
return;
|
43
43
|
}
|
@@ -51,7 +51,7 @@ var handleCodeError = function(param) {
|
|
51
51
|
var newCode = _to_consumable_array(currentCode);
|
52
52
|
newCode.pop();
|
53
53
|
codeSetter(newCode);
|
54
|
-
|
54
|
+
setInnerValue(currentCode);
|
55
55
|
(_inputContainerRef_current = inputContainerRef.current) === null || _inputContainerRef_current === void 0 ? void 0 : _inputContainerRef_current.classList.remove(_CodeFieldtokens.classes.codeErrorAnimation);
|
56
56
|
setTimeout(function() {
|
57
57
|
var _inputRefs_current_, _inputRefs_current_1;
|
@@ -36,14 +36,17 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
36
36
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
37
37
|
}
|
38
38
|
var handleItemError = function(param) {
|
39
|
-
var currentSymbol = param.currentSymbol, itemErrorBehavior = param.itemErrorBehavior, index = param.index, newCode = param.newCode, inputRefs = param.inputRefs,
|
39
|
+
var currentSymbol = param.currentSymbol, itemErrorBehavior = param.itemErrorBehavior, index = param.index, newCode = param.newCode, inputRefs = param.inputRefs, setInnerValue = param.setInnerValue, codeSetter = param.codeSetter, onChange = param.onChange;
|
40
40
|
if (!inputRefs.current[index] || currentSymbol === ' ') {
|
41
41
|
return;
|
42
42
|
}
|
43
43
|
switch(itemErrorBehavior){
|
44
44
|
case 'keep':
|
45
45
|
var _inputRefs_current_index;
|
46
|
-
|
46
|
+
setInnerValue(newCode);
|
47
|
+
if (onChange) {
|
48
|
+
onChange(newCode.join(''));
|
49
|
+
}
|
47
50
|
(_inputRefs_current_index = inputRefs.current[index]) === null || _inputRefs_current_index === void 0 ? void 0 : _inputRefs_current_index.classList.add(_CodeFieldtokens.classes.itemError, _CodeFieldtokens.classes.itemErrorAnimation);
|
48
51
|
setTimeout(function() {
|
49
52
|
var _inputRefs_current_index;
|
@@ -57,11 +60,17 @@ var handleItemError = function(param) {
|
|
57
60
|
case 'forbid-enter':
|
58
61
|
newCode[index] = '';
|
59
62
|
codeSetter(newCode);
|
63
|
+
if (onChange) {
|
64
|
+
onChange(newCode.join(''));
|
65
|
+
}
|
60
66
|
break;
|
61
67
|
case 'remove-symbol':
|
62
68
|
default:
|
63
69
|
var _inputRefs_current_index1;
|
64
|
-
|
70
|
+
setInnerValue(newCode);
|
71
|
+
if (onChange) {
|
72
|
+
onChange(newCode.join(''));
|
73
|
+
}
|
65
74
|
(_inputRefs_current_index1 = inputRefs.current[index]) === null || _inputRefs_current_index1 === void 0 ? void 0 : _inputRefs_current_index1.classList.add(_CodeFieldtokens.classes.itemError, _CodeFieldtokens.classes.itemErrorFade, _CodeFieldtokens.classes.itemErrorAnimation);
|
66
75
|
setTimeout(function() {
|
67
76
|
var _inputRefs_current_index;
|
@@ -23,8 +23,12 @@ _export(exports, {
|
|
23
23
|
},
|
24
24
|
get handleItemError () {
|
25
25
|
return _handleItemError.handleItemError;
|
26
|
+
},
|
27
|
+
get isWebOTPSupported () {
|
28
|
+
return _isWebOTPSupported.isWebOTPSupported;
|
26
29
|
}
|
27
30
|
});
|
28
31
|
var _initialValuesHelper = require("./initialValuesHelper");
|
29
32
|
var _handleItemError = require("./handleItemError");
|
30
33
|
var _handleCodeError = require("./handleCodeError");
|
34
|
+
var _isWebOTPSupported = require("./isWebOTPSupported");
|
@@ -0,0 +1,13 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
3
|
+
value: true
|
4
|
+
});
|
5
|
+
Object.defineProperty(exports, "isWebOTPSupported", {
|
6
|
+
enumerable: true,
|
7
|
+
get: function() {
|
8
|
+
return isWebOTPSupported;
|
9
|
+
}
|
10
|
+
});
|
11
|
+
var isWebOTPSupported = function() {
|
12
|
+
return typeof window !== 'undefined' && 'OTPCredential' in window && navigator.credentials && typeof navigator.credentials.get === 'function';
|
13
|
+
};
|
@@ -97,17 +97,6 @@ var useDrawer = function(param) {
|
|
97
97
|
isOpen,
|
98
98
|
popupController.items
|
99
99
|
]);
|
100
|
-
// При анмаунте компонента нужно обновлять overflow у body.
|
101
|
-
(0, _react.useEffect)(function() {
|
102
|
-
return function() {
|
103
|
-
if (!_utils.canUseDOM) {
|
104
|
-
return;
|
105
|
-
}
|
106
|
-
if (!(0, _DrawerContext.hasDrawers)(Array.from(popupController.items.values()))) {
|
107
|
-
document.body.style.overflow = overflow.current;
|
108
|
-
}
|
109
|
-
};
|
110
|
-
}, []);
|
111
100
|
var drawerInfo = _object_spread({
|
112
101
|
id: id,
|
113
102
|
info: {
|