@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@draftbit/core",
3
- "version": "49.2.0",
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.0.4",
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": "c1e0c3fb3be2e3baf35e5568cd8622eeced0c12f"
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
- useEffect(() => {
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":"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"}
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
- useEffect(() => {
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
- React.useEffect(() => {
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;AAOvC,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,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,YAAY,KAAK,SAAS,EAAE;YAC9B,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAG,YAAY,CAAC,CAAC;SACrC;QACD,uDAAuD;IACzD,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"}
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
- React.useEffect(() => {
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
+ };