@draftbit/core 49.2.0 → 49.2.1-ae444f.2
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/lib/commonjs/components/NumberInput.js +1 -1
- package/lib/commonjs/components/TextInput.js +1 -1
- package/lib/commonjs/hooks.js +1 -1
- package/lib/typescript/src/components/NumberInput.js +2 -3
- package/lib/typescript/src/components/NumberInput.js.map +1 -1
- package/lib/typescript/src/components/TextInput.js +2 -3
- package/lib/typescript/src/components/TextInput.js.map +1 -1
- package/lib/typescript/src/hooks.d.ts +2 -0
- package/lib/typescript/src/hooks.js +10 -0
- package/lib/typescript/src/hooks.js.map +1 -1
- package/lib/typescript/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/components/NumberInput.js +2 -3
- package/src/components/NumberInput.js.map +1 -1
- package/src/components/NumberInput.tsx +2 -3
- package/src/components/TextInput.js +2 -3
- package/src/components/TextInput.js.map +1 -1
- package/src/components/TextInput.tsx +2 -3
- package/src/hooks.js +10 -0
- package/src/hooks.js.map +1 -1
- package/src/hooks.ts +14 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@draftbit/core",
|
|
3
|
-
"version": "49.2.
|
|
3
|
+
"version": "49.2.1-ae444f.2+ae444f5",
|
|
4
4
|
"description": "Core (non-native) Components",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"types": "lib/typescript/src/index.d.ts",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@date-io/date-fns": "^1.3.13",
|
|
43
43
|
"@draftbit/react-theme-provider": "^2.1.1",
|
|
44
|
-
"@draftbit/types": "49.
|
|
44
|
+
"@draftbit/types": "^49.2.1-ae444f.2+ae444f5",
|
|
45
45
|
"@expo/vector-icons": "^13.0.0",
|
|
46
46
|
"@gorhom/bottom-sheet": "^5.0.0-alpha.4",
|
|
47
47
|
"@material-ui/core": "^4.11.0",
|
|
@@ -112,5 +112,5 @@
|
|
|
112
112
|
],
|
|
113
113
|
"testEnvironment": "node"
|
|
114
114
|
},
|
|
115
|
-
"gitHead": "
|
|
115
|
+
"gitHead": "ae444f5ea550908e30981a821fb64bde60b242aa"
|
|
116
116
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useEffect, useState } from "react";
|
|
2
2
|
import { TextInput as NativeTextInput } from "react-native";
|
|
3
3
|
import { isString, isNumber, isNaN } from "lodash";
|
|
4
|
-
import { useDebounce } from "../hooks";
|
|
4
|
+
import { useDebounce, useOnUpdate } from "../hooks";
|
|
5
5
|
const NumberInput = React.forwardRef(({ onChangeText, onChangeTextDelayed, changeTextDelay = 500, value, defaultValue, ...props }, ref) => {
|
|
6
6
|
const [currentStringNumberValue, setCurrentStringNumberValue] = useState("");
|
|
7
7
|
const delayedValue = useDebounce(value, changeTextDelay);
|
|
@@ -46,13 +46,12 @@ const NumberInput = React.forwardRef(({ onChangeText, onChangeTextDelayed, chang
|
|
|
46
46
|
}
|
|
47
47
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
48
48
|
}, []);
|
|
49
|
-
|
|
49
|
+
useOnUpdate(() => {
|
|
50
50
|
if (delayedValue !== undefined) {
|
|
51
51
|
const newStringNumberValue = formatValueToStringNumber(delayedValue);
|
|
52
52
|
const number = parseFloat(newStringNumberValue);
|
|
53
53
|
onChangeTextDelayed === null || onChangeTextDelayed === void 0 ? void 0 : onChangeTextDelayed(number);
|
|
54
54
|
}
|
|
55
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
56
55
|
}, [delayedValue]);
|
|
57
56
|
return (React.createElement(NativeTextInput, { testID: "native-text-input", ref: ref, keyboardType: "numeric", value: currentStringNumberValue, onChangeText: handleChangeText, ...props }));
|
|
58
57
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberInput.js","sourceRoot":"","sources":["NumberInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"NumberInput.js","sourceRoot":"","sources":["NumberInput.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import React, { useEffect, useState } from "react";
|
|
|
2
2
|
import { TextInput as NativeTextInput } from "react-native";
|
|
3
3
|
import { isString, isNumber, isNaN } from "lodash";
|
|
4
4
|
import { TextInputProps } from "./TextInput";
|
|
5
|
-
import { useDebounce } from "../hooks";
|
|
5
|
+
import { useDebounce, useOnUpdate } from "../hooks";
|
|
6
6
|
|
|
7
7
|
interface Props
|
|
8
8
|
extends Omit<
|
|
@@ -78,13 +78,12 @@ const NumberInput = React.forwardRef<NativeTextInput, Props>(
|
|
|
78
78
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
79
79
|
}, []);
|
|
80
80
|
|
|
81
|
-
|
|
81
|
+
useOnUpdate(() => {
|
|
82
82
|
if (delayedValue !== undefined) {
|
|
83
83
|
const newStringNumberValue = formatValueToStringNumber(delayedValue);
|
|
84
84
|
const number = parseFloat(newStringNumberValue);
|
|
85
85
|
onChangeTextDelayed?.(number);
|
|
86
86
|
}
|
|
87
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
88
87
|
}, [delayedValue]);
|
|
89
88
|
|
|
90
89
|
return (
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { TextInput as NativeTextInput, } from "react-native";
|
|
3
|
-
import { useDebounce } from "../hooks";
|
|
3
|
+
import { useDebounce, useOnUpdate } from "../hooks";
|
|
4
4
|
const TextInput = React.forwardRef(({ onChangeTextDelayed, changeTextDelay = 500, value, ...rest }, ref) => {
|
|
5
5
|
const delayedValue = useDebounce(value, changeTextDelay);
|
|
6
|
-
|
|
6
|
+
useOnUpdate(() => {
|
|
7
7
|
if (delayedValue !== undefined) {
|
|
8
8
|
onChangeTextDelayed === null || onChangeTextDelayed === void 0 ? void 0 : onChangeTextDelayed(delayedValue);
|
|
9
9
|
}
|
|
10
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11
10
|
}, [delayedValue]);
|
|
12
11
|
return (React.createElement(NativeTextInput, { testID: "native-text-input", ref: ref, value: value, ...rest }));
|
|
13
12
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextInput.js","sourceRoot":"","sources":["TextInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,SAAS,IAAI,eAAe,GAE7B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"TextInput.js","sourceRoot":"","sources":["TextInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,SAAS,IAAI,eAAe,GAE7B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAOpD,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAChC,CAAC,EAAE,mBAAmB,EAAE,eAAe,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;IACtE,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IAEzD,WAAW,CAAC,GAAG,EAAE;QACf,IAAI,YAAY,KAAK,SAAS,EAAE;YAC9B,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAG,YAAY,CAAC,CAAC;SACrC;IACH,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,OAAO,CACL,oBAAC,eAAe,IACd,MAAM,EAAC,mBAAmB,EAC1B,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,KACR,IAAI,GACR,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
TextInput as NativeTextInput,
|
|
4
4
|
TextInputProps as NativeTextInputProps,
|
|
5
5
|
} from "react-native";
|
|
6
|
-
import { useDebounce } from "../hooks";
|
|
6
|
+
import { useDebounce, useOnUpdate } from "../hooks";
|
|
7
7
|
|
|
8
8
|
export interface TextInputProps extends NativeTextInputProps {
|
|
9
9
|
onChangeTextDelayed?: (text: string) => void;
|
|
@@ -14,11 +14,10 @@ const TextInput = React.forwardRef<NativeTextInput, TextInputProps>(
|
|
|
14
14
|
({ onChangeTextDelayed, changeTextDelay = 500, value, ...rest }, ref) => {
|
|
15
15
|
const delayedValue = useDebounce(value, changeTextDelay);
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
useOnUpdate(() => {
|
|
18
18
|
if (delayedValue !== undefined) {
|
|
19
19
|
onChangeTextDelayed?.(delayedValue);
|
|
20
20
|
}
|
|
21
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
22
21
|
}, [delayedValue]);
|
|
23
22
|
|
|
24
23
|
return (
|
package/src/hooks.js
CHANGED
|
@@ -22,4 +22,14 @@ export const useDebounce = (value, delay) => {
|
|
|
22
22
|
}, [value, delay]);
|
|
23
23
|
return debouncedValue;
|
|
24
24
|
};
|
|
25
|
+
export const useOnUpdate = (onUpdate, deps) => {
|
|
26
|
+
let mounted = React.useRef(true);
|
|
27
|
+
React.useEffect(() => {
|
|
28
|
+
if (!mounted.current) {
|
|
29
|
+
onUpdate();
|
|
30
|
+
}
|
|
31
|
+
mounted.current = false;
|
|
32
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
33
|
+
}, deps);
|
|
34
|
+
};
|
|
25
35
|
//# sourceMappingURL=hooks.js.map
|
package/src/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,WAAW,CAAC,KAAU;IACpC,0EAA0E;IAC1E,qEAAqE;IACrE,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;IAE3B,6BAA6B;IAC7B,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,mEAAmE;IACnE,OAAO,GAAG,CAAC,OAAO,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAI,KAAQ,EAAE,KAAa,EAAK,EAAE;IAC3D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,EAAE,KAAK,CAAC,CAAC;QAEV,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAEnB,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,WAAW,CAAC,KAAU;IACpC,0EAA0E;IAC1E,qEAAqE;IACrE,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;IAE3B,6BAA6B;IAC7B,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,mEAAmE;IACnE,OAAO,GAAG,CAAC,OAAO,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAI,KAAQ,EAAE,KAAa,EAAK,EAAE;IAC3D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,EAAE,KAAK,CAAC,CAAC;QAEV,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAEnB,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,QAAoB,EACpB,IAAsC,EACtC,EAAE;IACF,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACpB,QAAQ,EAAE,CAAC;SACZ;QACD,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;QACxB,uDAAuD;IACzD,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC,CAAC"}
|
package/src/hooks.ts
CHANGED
|
@@ -29,3 +29,17 @@ export const useDebounce = <T>(value: T, delay: number): T => {
|
|
|
29
29
|
|
|
30
30
|
return debouncedValue;
|
|
31
31
|
};
|
|
32
|
+
|
|
33
|
+
export const useOnUpdate = (
|
|
34
|
+
onUpdate: () => void,
|
|
35
|
+
deps: React.DependencyList | undefined
|
|
36
|
+
) => {
|
|
37
|
+
let mounted = React.useRef(true);
|
|
38
|
+
React.useEffect(() => {
|
|
39
|
+
if (!mounted.current) {
|
|
40
|
+
onUpdate();
|
|
41
|
+
}
|
|
42
|
+
mounted.current = false;
|
|
43
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
44
|
+
}, deps);
|
|
45
|
+
};
|