sapo-components-ui-rn 1.1.41 → 1.1.42
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/dist/index.esm.js +172 -158
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +172 -158
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/NumberKeyboard/index.tsx +183 -175
package/dist/index.esm.js
CHANGED
|
@@ -7438,15 +7438,15 @@ var styles$1 = StyleSheet.create(__assign({}, containerStyles));
|
|
|
7438
7438
|
|
|
7439
7439
|
var formatNumberInput = function (value, formatDecimal) {
|
|
7440
7440
|
if (!value)
|
|
7441
|
-
return "
|
|
7441
|
+
return "";
|
|
7442
7442
|
if (value === "")
|
|
7443
|
-
return "
|
|
7443
|
+
return "";
|
|
7444
7444
|
// Xử lý số âm
|
|
7445
7445
|
var isNegative = value.startsWith("-");
|
|
7446
7446
|
var _a = value.replace(/[^0-9.]/g, "").split("."), intPart = _a[0], decimalPart = _a[1];
|
|
7447
7447
|
// Format phần nguyên
|
|
7448
7448
|
intPart = intPart.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
7449
|
-
// Giới hạn phần thập phân
|
|
7449
|
+
// Giới hạn phần thập phân 3 số
|
|
7450
7450
|
if (decimalPart)
|
|
7451
7451
|
decimalPart = decimalPart.slice(0, formatDecimal);
|
|
7452
7452
|
var result = intPart;
|
|
@@ -7465,17 +7465,20 @@ var NumberKeyboard = function (_a) {
|
|
|
7465
7465
|
var _k = useState(true), canSave = _k[0], setCanSave = _k[1];
|
|
7466
7466
|
useEffect(function () {
|
|
7467
7467
|
if (visible) {
|
|
7468
|
-
|
|
7468
|
+
var newValue = (value === null || value === void 0 ? void 0 : value.toString()) || "";
|
|
7469
|
+
setInputValue(newValue);
|
|
7469
7470
|
// Logic mới: Không reset về trạng thái nhập mới khi đã có giá trị
|
|
7470
|
-
// Chỉ set isFirstInput = true khi
|
|
7471
|
-
|
|
7471
|
+
// Chỉ set isFirstInput = true khi newValue rỗng hoặc chỉ có dấu trừ
|
|
7472
|
+
// Điều này cho phép người dùng tiếp tục nhập từ giá trị hiện tại
|
|
7473
|
+
// Ví dụ: value=999, người dùng có thể nhập "000" để tạo "999000"
|
|
7474
|
+
if (newValue === "" || newValue === "-") {
|
|
7472
7475
|
setIsFirstInput(true);
|
|
7473
7476
|
}
|
|
7474
7477
|
else {
|
|
7475
7478
|
setIsFirstInput(false);
|
|
7476
7479
|
}
|
|
7477
7480
|
}
|
|
7478
|
-
}, [visible, value
|
|
7481
|
+
}, [visible, value]);
|
|
7479
7482
|
useEffect(function () {
|
|
7480
7483
|
var currentValue = Number(inputValue);
|
|
7481
7484
|
var minValueNumber = Number(minValue);
|
|
@@ -7510,39 +7513,39 @@ var NumberKeyboard = function (_a) {
|
|
|
7510
7513
|
}
|
|
7511
7514
|
setCanSave(isValid);
|
|
7512
7515
|
}, [inputValue, minValue, maxValue]);
|
|
7513
|
-
var handleKeyPress =
|
|
7516
|
+
var handleKeyPress = function (key) {
|
|
7514
7517
|
if (key === "del") {
|
|
7515
7518
|
setInputValue(function (prev) { return prev.slice(0, -1); });
|
|
7516
|
-
setIsFirstInput(false);
|
|
7517
|
-
return;
|
|
7518
7519
|
}
|
|
7519
|
-
if (key === "000") {
|
|
7520
|
-
if (type === "integer"
|
|
7520
|
+
else if (key === "000") {
|
|
7521
|
+
if (type === "integer") {
|
|
7521
7522
|
// Xử lý trường hợp nhập "000" để tạo số lớn hơn
|
|
7522
7523
|
// Ví dụ: "1" + "000" = "1000", "10" + "000" = "10000"
|
|
7523
7524
|
// Nếu vượt quá maxValue, sẽ tự động cắt bớt số 0
|
|
7524
|
-
|
|
7525
|
-
|
|
7526
|
-
var
|
|
7525
|
+
// Logic này đảm bảo người dùng có thể tiếp tục nhập số đã được khởi tạo
|
|
7526
|
+
// Ví dụ: value=999, người dùng có thể nhập "000" để tạo "999000"
|
|
7527
|
+
var newInputValue = inputValue + "000";
|
|
7528
|
+
var newValue = Number(newInputValue);
|
|
7529
|
+
var maxValueNumber = Number(maxValue);
|
|
7527
7530
|
// Kiểm tra nếu giá trị vượt quá maxValue, cắt bớt số 0
|
|
7528
|
-
if (!isNaN(
|
|
7529
|
-
!isNaN(
|
|
7530
|
-
|
|
7531
|
+
if (!isNaN(newValue) &&
|
|
7532
|
+
!isNaN(maxValueNumber) &&
|
|
7533
|
+
newValue > maxValueNumber) {
|
|
7531
7534
|
// Tìm số 0 tối đa có thể thêm vào mà không vượt quá maxValue
|
|
7532
7535
|
var tempValue = inputValue;
|
|
7533
7536
|
var tempNewValue = Number(tempValue + "000");
|
|
7534
7537
|
// Giảm dần số 0 cho đến khi không vượt quá maxValue
|
|
7535
|
-
while (tempNewValue >
|
|
7538
|
+
while (tempNewValue > maxValueNumber && tempValue.endsWith("0")) {
|
|
7536
7539
|
tempValue = tempValue.slice(0, -1);
|
|
7537
7540
|
tempNewValue = Number(tempValue + "000");
|
|
7538
7541
|
}
|
|
7539
7542
|
// Nếu vẫn vượt quá, chỉ thêm số 0 có thể
|
|
7540
|
-
if (tempNewValue >
|
|
7543
|
+
if (tempNewValue > maxValueNumber) {
|
|
7541
7544
|
// Tìm số 0 tối đa có thể thêm
|
|
7542
7545
|
var maxZeros = 0;
|
|
7543
7546
|
for (var i = 1; i <= 3; i++) {
|
|
7544
7547
|
var testValue = Number(inputValue + "0".repeat(i));
|
|
7545
|
-
if (testValue <=
|
|
7548
|
+
if (testValue <= maxValueNumber) {
|
|
7546
7549
|
maxZeros = i;
|
|
7547
7550
|
}
|
|
7548
7551
|
else {
|
|
@@ -7550,8 +7553,8 @@ var NumberKeyboard = function (_a) {
|
|
|
7550
7553
|
}
|
|
7551
7554
|
}
|
|
7552
7555
|
if (maxZeros > 0) {
|
|
7553
|
-
|
|
7554
|
-
|
|
7556
|
+
newInputValue = inputValue + "0".repeat(maxZeros);
|
|
7557
|
+
newValue = Number(newInputValue);
|
|
7555
7558
|
}
|
|
7556
7559
|
else {
|
|
7557
7560
|
// Không thể thêm số 0 nào
|
|
@@ -7559,22 +7562,23 @@ var NumberKeyboard = function (_a) {
|
|
|
7559
7562
|
}
|
|
7560
7563
|
}
|
|
7561
7564
|
else {
|
|
7562
|
-
|
|
7563
|
-
|
|
7565
|
+
newInputValue = tempValue + "000";
|
|
7566
|
+
newValue = Number(newInputValue);
|
|
7564
7567
|
}
|
|
7565
7568
|
}
|
|
7566
7569
|
// Kiểm tra xem có thể nhập được không sau khi xử lý "000"
|
|
7567
|
-
if (!isNaN(
|
|
7568
|
-
!isNaN(
|
|
7569
|
-
|
|
7570
|
-
setInputValue(
|
|
7570
|
+
if (!isNaN(newValue) &&
|
|
7571
|
+
!isNaN(maxValueNumber) &&
|
|
7572
|
+
newValue <= maxValueNumber) {
|
|
7573
|
+
setInputValue(newInputValue);
|
|
7571
7574
|
}
|
|
7572
7575
|
setIsFirstInput(false);
|
|
7573
7576
|
}
|
|
7574
|
-
|
|
7577
|
+
// Nếu type là float, không cho phép nhập "000" ở đầu
|
|
7575
7578
|
}
|
|
7576
|
-
if (key === ".") {
|
|
7577
|
-
if (
|
|
7579
|
+
else if (key === ".") {
|
|
7580
|
+
if (!inputValue.includes(".")) {
|
|
7581
|
+
// Nếu inputValue là "0" hoặc rỗng, giữ lại số 0 và thêm dấu "."
|
|
7578
7582
|
if (inputValue === "0" || inputValue === "") {
|
|
7579
7583
|
setInputValue("0.");
|
|
7580
7584
|
}
|
|
@@ -7583,33 +7587,51 @@ var NumberKeyboard = function (_a) {
|
|
|
7583
7587
|
setInputValue("-0.");
|
|
7584
7588
|
}
|
|
7585
7589
|
else {
|
|
7590
|
+
// Nếu đã có giá trị, thêm dấu "." vào cuối
|
|
7586
7591
|
setInputValue(function (prev) { return prev + key; });
|
|
7587
7592
|
}
|
|
7588
7593
|
setIsFirstInput(false);
|
|
7589
7594
|
}
|
|
7590
|
-
return;
|
|
7591
7595
|
}
|
|
7592
|
-
|
|
7593
|
-
|
|
7594
|
-
|
|
7595
|
-
|
|
7596
|
-
|
|
7597
|
-
// Kiểm tra xem có thể nhập được không khi là lần đầu
|
|
7598
|
-
var newValue_2 = Number(key);
|
|
7599
|
-
var maxValueNumber_2 = Number(maxValue);
|
|
7600
|
-
if (!isNaN(newValue_2) && !isNaN(maxValueNumber_2)) {
|
|
7601
|
-
var canInput_1 = false;
|
|
7602
|
-
if (newValue_2 < 0) {
|
|
7603
|
-
// Với số âm, kiểm tra giá trị tuyệt đối không vượt quá maxValue
|
|
7604
|
-
var absNewValue = Math.abs(newValue_2);
|
|
7605
|
-
var absMaxValue = Math.abs(maxValueNumber_2);
|
|
7606
|
-
canInput_1 = absNewValue <= absMaxValue;
|
|
7596
|
+
else {
|
|
7597
|
+
if (isFirstInput) {
|
|
7598
|
+
// Nếu type là float và key là "0", không cho phép nhập số 0 đầu tiên
|
|
7599
|
+
if (type === "float" && key === "000") {
|
|
7600
|
+
return;
|
|
7607
7601
|
}
|
|
7608
|
-
|
|
7609
|
-
|
|
7610
|
-
|
|
7602
|
+
// Cho phép nhập số 0 đầu tiên cho type float, nhưng không cho phép nhập "000"
|
|
7603
|
+
// Kiểm tra xem có thể nhập được không khi là lần đầu
|
|
7604
|
+
var newValue = Number(key);
|
|
7605
|
+
var maxValueNumber = Number(maxValue);
|
|
7606
|
+
if (!isNaN(newValue) && !isNaN(maxValueNumber)) {
|
|
7607
|
+
var canInput = false;
|
|
7608
|
+
if (newValue < 0) {
|
|
7609
|
+
// Với số âm, kiểm tra giá trị tuyệt đối không vượt quá maxValue
|
|
7610
|
+
var absNewValue = Math.abs(newValue);
|
|
7611
|
+
var absMaxValue = Math.abs(maxValueNumber);
|
|
7612
|
+
canInput = absNewValue <= absMaxValue;
|
|
7613
|
+
}
|
|
7614
|
+
else {
|
|
7615
|
+
// Với số dương, kiểm tra bình thường
|
|
7616
|
+
canInput = newValue <= maxValueNumber;
|
|
7617
|
+
}
|
|
7618
|
+
if (canInput) {
|
|
7619
|
+
// Nếu inputValue rỗng hoặc chỉ có dấu trừ, thay thế hoàn toàn
|
|
7620
|
+
if (inputValue === "" || inputValue === "-") {
|
|
7621
|
+
setInputValue(key);
|
|
7622
|
+
}
|
|
7623
|
+
else {
|
|
7624
|
+
// Nếu đã có giá trị, thêm vào cuối
|
|
7625
|
+
setInputValue(inputValue + key);
|
|
7626
|
+
}
|
|
7627
|
+
setIsFirstInput(false);
|
|
7628
|
+
}
|
|
7629
|
+
else {
|
|
7630
|
+
// Nếu vượt quá maxValue ngay từ đầu, không cho phép nhập
|
|
7631
|
+
return;
|
|
7632
|
+
}
|
|
7611
7633
|
}
|
|
7612
|
-
|
|
7634
|
+
else {
|
|
7613
7635
|
// Nếu inputValue rỗng hoặc chỉ có dấu trừ, thay thế hoàn toàn
|
|
7614
7636
|
if (inputValue === "" || inputValue === "-") {
|
|
7615
7637
|
setInputValue(key);
|
|
@@ -7620,137 +7642,129 @@ var NumberKeyboard = function (_a) {
|
|
|
7620
7642
|
}
|
|
7621
7643
|
setIsFirstInput(false);
|
|
7622
7644
|
}
|
|
7623
|
-
else {
|
|
7624
|
-
// Nếu vượt quá maxValue ngay từ đầu, không cho phép nhập
|
|
7625
|
-
return;
|
|
7626
|
-
}
|
|
7627
|
-
}
|
|
7628
|
-
else {
|
|
7629
|
-
// Nếu inputValue rỗng hoặc chỉ có dấu trừ, thay thế hoàn toàn
|
|
7630
|
-
if (inputValue === "" || inputValue === "-") {
|
|
7631
|
-
setInputValue(key);
|
|
7632
|
-
}
|
|
7633
|
-
else {
|
|
7634
|
-
// Nếu đã có giá trị, thêm vào cuối
|
|
7635
|
-
setInputValue(inputValue + key);
|
|
7636
|
-
}
|
|
7637
|
-
setIsFirstInput(false);
|
|
7638
|
-
}
|
|
7639
|
-
return;
|
|
7640
|
-
}
|
|
7641
|
-
// Kiểm tra nếu input bắt đầu bằng 0 và không có dấu chấm
|
|
7642
|
-
if (inputValue === "0") {
|
|
7643
|
-
if (key === ".") {
|
|
7644
|
-
setInputValue("0.");
|
|
7645
|
-
return;
|
|
7646
|
-
}
|
|
7647
|
-
else if (key >= "1" && key <= "9") {
|
|
7648
|
-
setInputValue(key);
|
|
7649
|
-
return;
|
|
7650
7645
|
}
|
|
7651
7646
|
else {
|
|
7652
|
-
|
|
7653
|
-
|
|
7654
|
-
|
|
7655
|
-
|
|
7656
|
-
var newValue = Number(newInputValue);
|
|
7657
|
-
var maxValueNumber = Number(maxValue);
|
|
7658
|
-
// Kiểm tra xem có thể nhập được không
|
|
7659
|
-
var canInput = false;
|
|
7660
|
-
var shouldCheckLength = true;
|
|
7661
|
-
if (!isNaN(newValue) && !isNaN(maxValueNumber)) {
|
|
7662
|
-
if (newValue < 0) {
|
|
7663
|
-
// Với số âm, kiểm tra giá trị tuyệt đối không vượt quá maxValue
|
|
7664
|
-
var absNewValue = Math.abs(newValue);
|
|
7665
|
-
var absMaxValue = Math.abs(maxValueNumber);
|
|
7666
|
-
if (absNewValue <= absMaxValue) {
|
|
7667
|
-
canInput = true;
|
|
7668
|
-
}
|
|
7669
|
-
else {
|
|
7670
|
-
// Nếu vượt quá maxValue, kiểm tra xem có thể nhập được không
|
|
7671
|
-
var maxValueStr = absMaxValue.toString();
|
|
7672
|
-
inputValue.length;
|
|
7673
|
-
var newLength = newInputValue.length;
|
|
7674
|
-
// Nếu độ dài mới lớn hơn độ dài của maxValue, không cho phép nhập
|
|
7675
|
-
if (newLength > maxValueStr.length) {
|
|
7676
|
-
return;
|
|
7677
|
-
}
|
|
7678
|
-
// Nếu độ dài bằng nhau, kiểm tra giá trị
|
|
7679
|
-
if (newLength === maxValueStr.length && absNewValue > absMaxValue) {
|
|
7647
|
+
// Kiểm tra nếu input bắt đầu bằng 0 và không có dấu chấm
|
|
7648
|
+
if (inputValue === "0") {
|
|
7649
|
+
if (key === ".") {
|
|
7650
|
+
setInputValue("0.");
|
|
7680
7651
|
return;
|
|
7681
7652
|
}
|
|
7682
|
-
|
|
7683
|
-
|
|
7684
|
-
shouldCheckLength = false;
|
|
7685
|
-
}
|
|
7686
|
-
}
|
|
7687
|
-
else {
|
|
7688
|
-
// Với số dương, kiểm tra bình thường
|
|
7689
|
-
if (newValue <= maxValueNumber) {
|
|
7690
|
-
canInput = true;
|
|
7691
|
-
}
|
|
7692
|
-
else {
|
|
7693
|
-
// Nếu vượt quá maxValue, kiểm tra xem có thể nhập được không
|
|
7694
|
-
var maxValueStr = maxValueNumber.toString();
|
|
7695
|
-
inputValue.length;
|
|
7696
|
-
var newLength = newInputValue.length;
|
|
7697
|
-
// Nếu độ dài mới lớn hơn độ dài của maxValue, không cho phép nhập
|
|
7698
|
-
if (newLength > maxValueStr.length) {
|
|
7653
|
+
else if (key >= "1" && key <= "9") {
|
|
7654
|
+
setInputValue(key);
|
|
7699
7655
|
return;
|
|
7700
7656
|
}
|
|
7701
|
-
|
|
7702
|
-
if (newLength === maxValueStr.length && newValue > maxValueNumber) {
|
|
7657
|
+
else {
|
|
7703
7658
|
return;
|
|
7704
7659
|
}
|
|
7705
|
-
// Nếu độ dài nhỏ hơn, có thể nhập được (sẽ kiểm tra khi nhập tiếp)
|
|
7706
|
-
// Ví dụ: maxValue = 999, inputValue = "99", nhập "9" → "999" (OK)
|
|
7707
|
-
canInput = true;
|
|
7708
|
-
shouldCheckLength = false;
|
|
7709
|
-
}
|
|
7710
|
-
}
|
|
7711
|
-
}
|
|
7712
|
-
if (canInput) {
|
|
7713
|
-
if (inputValue.includes(".")) {
|
|
7714
|
-
// Xử lý số thập phân
|
|
7715
|
-
var _a = inputValue.split("."); _a[0]; var _b = _a[1], decimalPart = _b === void 0 ? "" : _b;
|
|
7716
|
-
if (newInputValue.length <= 12 && decimalPart.length === 0) {
|
|
7717
|
-
setInputValue(function (prev) { return prev + key; });
|
|
7718
7660
|
}
|
|
7719
|
-
|
|
7720
|
-
|
|
7721
|
-
|
|
7722
|
-
|
|
7723
|
-
|
|
7724
|
-
|
|
7725
|
-
|
|
7726
|
-
|
|
7727
|
-
|
|
7661
|
+
var newInputValue = inputValue + key;
|
|
7662
|
+
var newValue = Number(newInputValue);
|
|
7663
|
+
var maxValueNumber = Number(maxValue);
|
|
7664
|
+
// Kiểm tra xem có thể nhập được không
|
|
7665
|
+
var canInput = false;
|
|
7666
|
+
var shouldCheckLength = true;
|
|
7667
|
+
if (!isNaN(newValue) && !isNaN(maxValueNumber)) {
|
|
7668
|
+
if (newValue < 0) {
|
|
7669
|
+
// Với số âm, kiểm tra giá trị tuyệt đối không vượt quá maxValue
|
|
7670
|
+
var absNewValue = Math.abs(newValue);
|
|
7671
|
+
var absMaxValue = Math.abs(maxValueNumber);
|
|
7672
|
+
if (absNewValue <= absMaxValue) {
|
|
7673
|
+
canInput = true;
|
|
7674
|
+
}
|
|
7675
|
+
else {
|
|
7676
|
+
// Nếu vượt quá maxValue, kiểm tra xem có thể nhập được không
|
|
7677
|
+
var maxValueStr = absMaxValue.toString();
|
|
7678
|
+
inputValue.length;
|
|
7679
|
+
var newLength = newInputValue.length;
|
|
7680
|
+
// Nếu độ dài mới lớn hơn độ dài của maxValue, không cho phép nhập
|
|
7681
|
+
if (newLength > maxValueStr.length) {
|
|
7682
|
+
return;
|
|
7683
|
+
}
|
|
7684
|
+
// Nếu độ dài bằng nhau, kiểm tra giá trị
|
|
7685
|
+
if (newLength === maxValueStr.length &&
|
|
7686
|
+
absNewValue > absMaxValue) {
|
|
7687
|
+
return;
|
|
7688
|
+
}
|
|
7689
|
+
// Nếu độ dài nhỏ hơn, có thể nhập được (sẽ kiểm tra khi nhập tiếp)
|
|
7690
|
+
canInput = true;
|
|
7691
|
+
shouldCheckLength = false;
|
|
7692
|
+
}
|
|
7693
|
+
}
|
|
7694
|
+
else {
|
|
7695
|
+
// Với số dương, kiểm tra bình thường
|
|
7696
|
+
if (newValue <= maxValueNumber) {
|
|
7697
|
+
canInput = true;
|
|
7698
|
+
}
|
|
7699
|
+
else {
|
|
7700
|
+
// Nếu vượt quá maxValue, kiểm tra xem có thể nhập được không
|
|
7701
|
+
var maxValueStr = maxValueNumber.toString();
|
|
7702
|
+
inputValue.length;
|
|
7703
|
+
var newLength = newInputValue.length;
|
|
7704
|
+
// Nếu độ dài mới lớn hơn độ dài của maxValue, không cho phép nhập
|
|
7705
|
+
if (newLength > maxValueStr.length) {
|
|
7706
|
+
return;
|
|
7707
|
+
}
|
|
7708
|
+
// Nếu độ dài bằng nhau, kiểm tra giá trị
|
|
7709
|
+
if (newLength === maxValueStr.length &&
|
|
7710
|
+
newValue > maxValueNumber) {
|
|
7711
|
+
return;
|
|
7712
|
+
}
|
|
7713
|
+
// Nếu độ dài nhỏ hơn, có thể nhập được (sẽ kiểm tra khi nhập tiếp)
|
|
7714
|
+
// Ví dụ: maxValue = 999, inputValue = "99", nhập "9" → "999" (OK)
|
|
7715
|
+
canInput = true;
|
|
7716
|
+
shouldCheckLength = false;
|
|
7717
|
+
}
|
|
7718
|
+
}
|
|
7728
7719
|
}
|
|
7729
|
-
|
|
7730
|
-
|
|
7731
|
-
|
|
7720
|
+
if (canInput) {
|
|
7721
|
+
if (inputValue.includes(".")) {
|
|
7722
|
+
// Xử lý số thập phân
|
|
7723
|
+
var _a = inputValue.split("."); _a[0]; var _b = _a[1], decimalPart = _b === void 0 ? "" : _b;
|
|
7724
|
+
if (newInputValue.length <= 12 && decimalPart.length === 0) {
|
|
7725
|
+
setInputValue(function (prev) { return prev + key; });
|
|
7726
|
+
}
|
|
7727
|
+
else if (newInputValue.length <= 12 && decimalPart.length < 3) {
|
|
7728
|
+
setInputValue(function (prev) { return prev + key; });
|
|
7729
|
+
}
|
|
7730
|
+
}
|
|
7731
|
+
else {
|
|
7732
|
+
// Xử lý số nguyên
|
|
7733
|
+
if (shouldCheckLength && newInputValue.length <= 12) {
|
|
7734
|
+
setInputValue(function (prev) { return prev + key; });
|
|
7735
|
+
}
|
|
7736
|
+
else if (!shouldCheckLength) {
|
|
7737
|
+
// Nếu không cần kiểm tra độ dài (đã kiểm tra maxValue ở trên)
|
|
7738
|
+
setInputValue(function (prev) { return prev + key; });
|
|
7739
|
+
}
|
|
7740
|
+
}
|
|
7732
7741
|
}
|
|
7733
7742
|
}
|
|
7734
7743
|
}
|
|
7735
|
-
}
|
|
7744
|
+
};
|
|
7736
7745
|
var handleClear = useCallback(function () {
|
|
7737
7746
|
setInputValue("");
|
|
7738
7747
|
setIsFirstInput(true);
|
|
7739
7748
|
}, []);
|
|
7740
7749
|
var handleSave = useCallback(function () {
|
|
7741
|
-
if (!canSave)
|
|
7742
|
-
return;
|
|
7743
7750
|
var finalValue = inputValue;
|
|
7744
7751
|
if (inputValue.endsWith(".")) {
|
|
7745
7752
|
finalValue = inputValue.slice(0, -1);
|
|
7746
7753
|
}
|
|
7747
|
-
|
|
7754
|
+
if (type === "integer") {
|
|
7755
|
+
onChangeText === null || onChangeText === void 0 ? void 0 : onChangeText(finalValue);
|
|
7756
|
+
}
|
|
7757
|
+
else {
|
|
7758
|
+
onChangeText === null || onChangeText === void 0 ? void 0 : onChangeText(formatNumberInput(finalValue, formatDecimal));
|
|
7759
|
+
}
|
|
7748
7760
|
onClose();
|
|
7749
|
-
}, [inputValue, onChangeText, onClose,
|
|
7761
|
+
}, [inputValue, onChangeText, onClose, type, formatDecimal]);
|
|
7750
7762
|
var handleClose = useCallback(function () {
|
|
7751
7763
|
onClose();
|
|
7752
|
-
|
|
7753
|
-
|
|
7764
|
+
setTimeout(function () {
|
|
7765
|
+
setInputValue((value === null || value === void 0 ? void 0 : value.toString()) || "");
|
|
7766
|
+
}, 300);
|
|
7767
|
+
}, [onClose, value]);
|
|
7754
7768
|
return (React__default.createElement(Modal, { visible: visible, transparent: true, animationType: "fade", onRequestClose: handleClose },
|
|
7755
7769
|
React__default.createElement(TouchableOpacity, { style: styles.modalOverlay, activeOpacity: 1, onPress: handleClose },
|
|
7756
7770
|
React__default.createElement(View, { onPress: function () { }, activeOpacity: 1, backgroundColor: colors.surfacePrimaryDefault, style: styles.modalContent },
|