From ced2492f4a7759c2c6f168b7bc82ccec744a3c0b Mon Sep 17 00:00:00 2001
From: Zachary Hueras <zachary.hueras@gmail.com>
Date: Thu, 2 May 2024 22:34:55 -0400
Subject: [PATCH] fix(core): onChange -> onChangeSet on substitution

---
 packages/core/src/components/mapper/integer.jsx | 8 ++++++--
 packages/core/src/components/mapper/number.jsx  | 2 +-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/packages/core/src/components/mapper/integer.jsx b/packages/core/src/components/mapper/integer.jsx
index 6249d27..e5bd111 100644
--- a/packages/core/src/components/mapper/integer.jsx
+++ b/packages/core/src/components/mapper/integer.jsx
@@ -6,6 +6,7 @@ import { useDecorator, useLocalizer } from '@forml/hooks';
 import { FormType } from '../../types';
 
 const valueExceptions = ['', '-'];
+const valueReplacements = { '0-': '-' };
 
 /**
  * @component Integer
@@ -26,8 +27,11 @@ export default function Integer(props) {
         function onChange(e) {
             let value = e.target.value;
 
-            if (valueExceptions.includes(value)) {
-                props.onChange(e, value);
+            if (value in valueReplacements) {
+                props.onChangeSet(e, valueReplacements[value]);
+                return;
+            } else if (valueExceptions.includes(value)) {
+                props.onChangeSet(e, value);
                 return;
             }
 
diff --git a/packages/core/src/components/mapper/number.jsx b/packages/core/src/components/mapper/number.jsx
index 3fb0c15..8ee060f 100644
--- a/packages/core/src/components/mapper/number.jsx
+++ b/packages/core/src/components/mapper/number.jsx
@@ -29,7 +29,7 @@ export default function Number(props) {
             let value = e.target.value;
 
             if (valueExceptions.includes(value)) {
-                props.onChange(e, value);
+                props.onChangeSet(e, value);
                 return;
             }