@tamagui/use-controllable-state 1.124.3 → 1.124.5
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/cjs/useControllableState.cjs +15 -14
- package/dist/cjs/useControllableState.js +15 -14
- package/dist/cjs/useControllableState.js.map +1 -1
- package/dist/cjs/useControllableState.native.js +8 -9
- package/dist/cjs/useControllableState.native.js.map +2 -2
- package/dist/esm/useControllableState.js +15 -14
- package/dist/esm/useControllableState.js.map +1 -1
- package/dist/esm/useControllableState.mjs +15 -14
- package/dist/esm/useControllableState.mjs.map +1 -1
- package/dist/esm/useControllableState.native.js +8 -9
- package/dist/esm/useControllableState.native.js.map +2 -2
- package/package.json +4 -4
- package/src/useControllableState.ts +22 -15
- package/types/useControllableState.d.ts.map +1 -1
|
@@ -38,25 +38,26 @@ var import_use_event = require("@tamagui/use-event"),
|
|
|
38
38
|
React = __toESM(require("react")),
|
|
39
39
|
import_start_transition = require("@tamagui/start-transition");
|
|
40
40
|
const emptyCallbackFn = _ => _();
|
|
41
|
-
function useControllableState({
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
41
|
+
function useControllableState(props) {
|
|
42
|
+
const {
|
|
43
|
+
prop,
|
|
44
|
+
defaultProp,
|
|
45
|
+
onChange,
|
|
46
|
+
strategy = "prop-wins",
|
|
47
|
+
preventUpdate,
|
|
48
|
+
transition
|
|
49
|
+
} = props,
|
|
50
|
+
[state, setState] = React.useState(prop ?? defaultProp),
|
|
50
51
|
previous = React.useRef(state),
|
|
51
52
|
propWins = strategy === "prop-wins" && prop !== void 0,
|
|
52
53
|
value = propWins ? prop : state,
|
|
53
54
|
onChangeCb = (0, import_use_event.useEvent)(onChange || idFn),
|
|
54
55
|
transitionFn = transition ? import_start_transition.startTransition : emptyCallbackFn;
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
})
|
|
59
|
-
}
|
|
56
|
+
"prop" in props && prop !== state && transitionFn(() => {
|
|
57
|
+
setState(prev => {
|
|
58
|
+
if (prev !== prop) return previous.current = prop, prop;
|
|
59
|
+
});
|
|
60
|
+
}), React.useEffect(() => {
|
|
60
61
|
propWins || state !== previous.current && (previous.current = state, onChangeCb(state));
|
|
61
62
|
}, [onChangeCb, state, propWins]);
|
|
62
63
|
const setter = (0, import_use_event.useEvent)(next => {
|
|
@@ -27,20 +27,21 @@ __export(useControllableState_exports, {
|
|
|
27
27
|
module.exports = __toCommonJS(useControllableState_exports);
|
|
28
28
|
var import_use_event = require("@tamagui/use-event"), React = __toESM(require("react")), import_start_transition = require("@tamagui/start-transition");
|
|
29
29
|
const emptyCallbackFn = (_) => _();
|
|
30
|
-
function useControllableState({
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
30
|
+
function useControllableState(props) {
|
|
31
|
+
const {
|
|
32
|
+
prop,
|
|
33
|
+
defaultProp,
|
|
34
|
+
onChange,
|
|
35
|
+
strategy = "prop-wins",
|
|
36
|
+
preventUpdate,
|
|
37
|
+
transition
|
|
38
|
+
} = props, [state, setState] = React.useState(prop ?? defaultProp), previous = React.useRef(state), propWins = strategy === "prop-wins" && prop !== void 0, value = propWins ? prop : state, onChangeCb = (0, import_use_event.useEvent)(onChange || idFn), transitionFn = transition ? import_start_transition.startTransition : emptyCallbackFn;
|
|
39
|
+
"prop" in props && prop !== state && transitionFn(() => {
|
|
40
|
+
setState((prev) => {
|
|
41
|
+
if (prev !== prop)
|
|
42
|
+
return previous.current = prop, prop;
|
|
43
|
+
});
|
|
44
|
+
}), React.useEffect(() => {
|
|
44
45
|
propWins || state !== previous.current && (previous.current = state, onChangeCb(state));
|
|
45
46
|
}, [onChangeCb, state, propWins]);
|
|
46
47
|
const setter = (0, import_use_event.useEvent)((next) => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/useControllableState.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAyB,+BACzB,QAAuB,2BACvB,0BAAgC;AAOhC,MAAM,kBAAkB,CAAC,MAAM,EAAE;AAE1B,SAAS,qBAAwB;AAAA,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAyB,+BACzB,QAAuB,2BACvB,0BAAgC;AAOhC,MAAM,kBAAkB,CAAC,MAAM,EAAE;AAE1B,SAAS,qBAAwB,OAOS;AAC/C,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,EACF,IAAI,OACE,CAAC,OAAO,QAAQ,IAAI,MAAM,SAAS,QAAQ,WAAW,GACtD,WAAW,MAAM,OAAY,KAAK,GAClC,WAAW,aAAa,eAAe,SAAS,QAChD,QAAQ,WAAW,OAAO,OAC1B,iBAAa,2BAAS,YAAY,IAAI,GAEtC,eAAe,aAAa,0CAAkB;AAEpD,EAAI,UAAU,SACR,SAAS,SACX,aAAa,MAAM;AAEjB,aAAS,CAAC,SAAS;AACjB,UAAI,SAAS;AACX,wBAAS,UAAU,MACZ;AAAA,IAEX,CAAC;AAAA,EACH,CAAC,GAIL,MAAM,UAAU,MAAM;AACpB,IAAI,YACA,UAAU,SAAS,YACrB,SAAS,UAAU,OACnB,WAAW,KAAK;AAAA,EAEpB,GAAG,CAAC,YAAY,OAAO,QAAQ,CAAC;AAEhC,QAAM,aAAS,2BAAS,CAAC,SAAS;AAChC,QAAI;AACJ,UAAI,UAAU;AACZ,cAAM,YAAY,OAAO,QAAS,aAAa,KAAK,SAAS,OAAO,IAAI;AACxE,mBAAW,SAAS;AAAA,MACtB;AACE,qBAAa,MAAM;AACjB,mBAAS,IAAI;AAAA,QACf,CAAC;AAAA,EAEL,CAAC;AAED,SAAO,CAAC,OAAY,MAAM;AAC5B;AAEA,MAAM,OAAO,MAAM;AAAC;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -29,15 +29,14 @@ module.exports = __toCommonJS(useControllableState_exports);
|
|
|
29
29
|
var import_use_event = require("@tamagui/use-event"), React = __toESM(require("react")), import_start_transition = require("@tamagui/start-transition"), emptyCallbackFn = function(_) {
|
|
30
30
|
return _();
|
|
31
31
|
};
|
|
32
|
-
function useControllableState(
|
|
33
|
-
var { prop, defaultProp, onChange, strategy = "prop-wins", preventUpdate, transition } =
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
]), React.useEffect(function() {
|
|
32
|
+
function useControllableState(props) {
|
|
33
|
+
var { prop, defaultProp, onChange, strategy = "prop-wins", preventUpdate, transition } = props, [state, setState] = React.useState(prop ?? defaultProp), previous = React.useRef(state), propWins = strategy === "prop-wins" && prop !== void 0, value = propWins ? prop : state, onChangeCb = (0, import_use_event.useEvent)(onChange || idFn), transitionFn = transition ? import_start_transition.startTransition : emptyCallbackFn;
|
|
34
|
+
"prop" in props && prop !== state && transitionFn(function() {
|
|
35
|
+
setState(function(prev) {
|
|
36
|
+
if (prev !== prop)
|
|
37
|
+
return previous.current = prop, prop;
|
|
38
|
+
});
|
|
39
|
+
}), React.useEffect(function() {
|
|
41
40
|
propWins || state !== previous.current && (previous.current = state, onChangeCb(state));
|
|
42
41
|
}, [
|
|
43
42
|
onChangeCb,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Users/n8/tamagui/code/core/use-controllable-state/src/useControllableState.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;uBAAyB,+BACzB,QAAuB,2BACvB,0BAAgC,sCAO1BA,kBAAkB,SAACC,GAAAA;SAAMA,EAAAA;;AAExB,SAASC,
|
|
5
|
-
"names": ["emptyCallbackFn", "_", "useControllableState", "prop", "defaultProp", "onChange", "strategy", "preventUpdate", "transition", "state", "setState", "React", "useState", "previous", "useRef", "propWins", "undefined", "value", "onChangeCb", "useEvent", "idFn", "transitionFn", "startTransition", "
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;uBAAyB,+BACzB,QAAuB,2BACvB,0BAAgC,sCAO1BA,kBAAkB,SAACC,GAAAA;SAAMA,EAAAA;;AAExB,SAASC,qBAAwBC,OAOvC;AACC,MAAM,EACJC,MACAC,aACAC,UACAC,WAAW,aACXC,eACAC,WAAU,IACRN,OACE,CAACO,OAAOC,QAAAA,IAAYC,MAAMC,SAAST,QAAQC,WAAAA,GAC3CS,WAAWF,MAAMG,OAAYL,KAAAA,GAC7BM,WAAWT,aAAa,eAAeH,SAASa,QAChDC,QAAQF,WAAWZ,OAAOM,OAC1BS,iBAAaC,2BAASd,YAAYe,IAAAA,GAElCC,eAAeb,aAAac,0CAAkBvB;AAEpD,EAAI,UAAUG,SACRC,SAASM,SACXY,aAAa,WAAA;AAEXX,aAAS,SAACa,MAAAA;AACR,UAAIA,SAASpB;AACXU,wBAASW,UAAUrB,MACZA;IAEX,CAAA;EACF,CAAA,GAIJQ,MAAMc,UAAU,WAAA;AACd,IAAIV,YACAN,UAAUI,SAASW,YACrBX,SAASW,UAAUf,OACnBS,WAAWT,KAAAA;EAEf,GAAG;IAACS;IAAYT;IAAOM;GAAS;AAEhC,MAAMW,aAASP,2BAAS,SAACQ,MAAAA;AACvB,QAAIpB;AACJ,UAAIQ,UAAU;AACZ,YAAMa,YAAY,OAAOD,QAAS,aAAaA,KAAKd,SAASW,OAAO,IAAIG;AACxET,mBAAWU,SAAAA;MACb;AACEP,qBAAa,WAAA;AACXX,mBAASiB,IAAAA;QACX,CAAA;EAEJ,CAAA;AAEA,SAAO;IAACV;IAAYS;;AACtB;AAEA,IAAMN,OAAO,WAAA;AAAO;",
|
|
5
|
+
"names": ["emptyCallbackFn", "_", "useControllableState", "props", "prop", "defaultProp", "onChange", "strategy", "preventUpdate", "transition", "state", "setState", "React", "useState", "previous", "useRef", "propWins", "undefined", "value", "onChangeCb", "useEvent", "idFn", "transitionFn", "startTransition", "prev", "current", "useEffect", "setter", "next", "nextValue"]
|
|
6
6
|
}
|
|
@@ -2,20 +2,21 @@ import { useEvent } from "@tamagui/use-event";
|
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import { startTransition } from "@tamagui/start-transition";
|
|
4
4
|
const emptyCallbackFn = (_) => _();
|
|
5
|
-
function useControllableState({
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
5
|
+
function useControllableState(props) {
|
|
6
|
+
const {
|
|
7
|
+
prop,
|
|
8
|
+
defaultProp,
|
|
9
|
+
onChange,
|
|
10
|
+
strategy = "prop-wins",
|
|
11
|
+
preventUpdate,
|
|
12
|
+
transition
|
|
13
|
+
} = props, [state, setState] = React.useState(prop ?? defaultProp), previous = React.useRef(state), propWins = strategy === "prop-wins" && prop !== void 0, value = propWins ? prop : state, onChangeCb = useEvent(onChange || idFn), transitionFn = transition ? startTransition : emptyCallbackFn;
|
|
14
|
+
"prop" in props && prop !== state && transitionFn(() => {
|
|
15
|
+
setState((prev) => {
|
|
16
|
+
if (prev !== prop)
|
|
17
|
+
return previous.current = prop, prop;
|
|
18
|
+
});
|
|
19
|
+
}), React.useEffect(() => {
|
|
19
20
|
propWins || state !== previous.current && (previous.current = state, onChangeCb(state));
|
|
20
21
|
}, [onChangeCb, state, propWins]);
|
|
21
22
|
const setter = useEvent((next) => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/useControllableState.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,gBAAgB;AACzB,YAAY,WAAW;AACvB,SAAS,uBAAuB;AAOhC,MAAM,kBAAkB,CAAC,MAAM,EAAE;AAE1B,SAAS,qBAAwB;AAAA,
|
|
4
|
+
"mappings": "AAAA,SAAS,gBAAgB;AACzB,YAAY,WAAW;AACvB,SAAS,uBAAuB;AAOhC,MAAM,kBAAkB,CAAC,MAAM,EAAE;AAE1B,SAAS,qBAAwB,OAOS;AAC/C,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,EACF,IAAI,OACE,CAAC,OAAO,QAAQ,IAAI,MAAM,SAAS,QAAQ,WAAW,GACtD,WAAW,MAAM,OAAY,KAAK,GAClC,WAAW,aAAa,eAAe,SAAS,QAChD,QAAQ,WAAW,OAAO,OAC1B,aAAa,SAAS,YAAY,IAAI,GAEtC,eAAe,aAAa,kBAAkB;AAEpD,EAAI,UAAU,SACR,SAAS,SACX,aAAa,MAAM;AAEjB,aAAS,CAAC,SAAS;AACjB,UAAI,SAAS;AACX,wBAAS,UAAU,MACZ;AAAA,IAEX,CAAC;AAAA,EACH,CAAC,GAIL,MAAM,UAAU,MAAM;AACpB,IAAI,YACA,UAAU,SAAS,YACrB,SAAS,UAAU,OACnB,WAAW,KAAK;AAAA,EAEpB,GAAG,CAAC,YAAY,OAAO,QAAQ,CAAC;AAEhC,QAAM,SAAS,SAAS,CAAC,SAAS;AAChC,QAAI;AACJ,UAAI,UAAU;AACZ,cAAM,YAAY,OAAO,QAAS,aAAa,KAAK,SAAS,OAAO,IAAI;AACxE,mBAAW,SAAS;AAAA,MACtB;AACE,qBAAa,MAAM;AACjB,mBAAS,IAAI;AAAA,QACf,CAAC;AAAA,EAEL,CAAC;AAED,SAAO,CAAC,OAAY,MAAM;AAC5B;AAEA,MAAM,OAAO,MAAM;AAAC;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -2,25 +2,26 @@ import { useEvent } from "@tamagui/use-event";
|
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import { startTransition } from "@tamagui/start-transition";
|
|
4
4
|
const emptyCallbackFn = _ => _();
|
|
5
|
-
function useControllableState({
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
function useControllableState(props) {
|
|
6
|
+
const {
|
|
7
|
+
prop,
|
|
8
|
+
defaultProp,
|
|
9
|
+
onChange,
|
|
10
|
+
strategy = "prop-wins",
|
|
11
|
+
preventUpdate,
|
|
12
|
+
transition
|
|
13
|
+
} = props,
|
|
14
|
+
[state, setState] = React.useState(prop ?? defaultProp),
|
|
14
15
|
previous = React.useRef(state),
|
|
15
16
|
propWins = strategy === "prop-wins" && prop !== void 0,
|
|
16
17
|
value = propWins ? prop : state,
|
|
17
18
|
onChangeCb = useEvent(onChange || idFn),
|
|
18
19
|
transitionFn = transition ? startTransition : emptyCallbackFn;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
})
|
|
23
|
-
}
|
|
20
|
+
"prop" in props && prop !== state && transitionFn(() => {
|
|
21
|
+
setState(prev => {
|
|
22
|
+
if (prev !== prop) return previous.current = prop, prop;
|
|
23
|
+
});
|
|
24
|
+
}), React.useEffect(() => {
|
|
24
25
|
propWins || state !== previous.current && (previous.current = state, onChangeCb(state));
|
|
25
26
|
}, [onChangeCb, state, propWins]);
|
|
26
27
|
const setter = useEvent(next => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEvent","React","startTransition","emptyCallbackFn","_","useControllableState","prop","defaultProp","onChange","strategy","preventUpdate","transition","state","setState","useState","previous","useRef","propWins","value","onChangeCb","idFn","transitionFn","
|
|
1
|
+
{"version":3,"names":["useEvent","React","startTransition","emptyCallbackFn","_","useControllableState","props","prop","defaultProp","onChange","strategy","preventUpdate","transition","state","setState","useState","previous","useRef","propWins","value","onChangeCb","idFn","transitionFn","prev","current","useEffect","setter","next","nextValue"],"sources":["../../src/useControllableState.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,QAAgB;AACzB,YAAYC,KAAA,MAAW;AACvB,SAASC,eAAA,QAAuB;AAOhC,MAAMC,eAAA,GAAmBC,CAAA,IAAMA,CAAA,CAAE;AAE1B,SAASC,qBAAwBC,KAAA,EAOS;EAC/C,MAAM;MACJC,IAAA;MACAC,WAAA;MACAC,QAAA;MACAC,QAAA,GAAW;MACXC,aAAA;MACAC;IACF,IAAIN,KAAA;IACE,CAACO,KAAA,EAAOC,QAAQ,IAAIb,KAAA,CAAMc,QAAA,CAASR,IAAA,IAAQC,WAAW;IACtDQ,QAAA,GAAWf,KAAA,CAAMgB,MAAA,CAAYJ,KAAK;IAClCK,QAAA,GAAWR,QAAA,KAAa,eAAeH,IAAA,KAAS;IAChDY,KAAA,GAAQD,QAAA,GAAWX,IAAA,GAAOM,KAAA;IAC1BO,UAAA,GAAapB,QAAA,CAASS,QAAA,IAAYY,IAAI;IAEtCC,YAAA,GAAeV,UAAA,GAAaV,eAAA,GAAkBC,eAAA;EAEhD,UAAUG,KAAA,IACRC,IAAA,KAASM,KAAA,IACXS,YAAA,CAAa,MAAM;IAEjBR,QAAA,CAAUS,IAAA,IAAS;MACjB,IAAIA,IAAA,KAAShB,IAAA,EACX,OAAAS,QAAA,CAASQ,OAAA,GAAUjB,IAAA,EACZA,IAAA;IAEX,CAAC;EACH,CAAC,GAILN,KAAA,CAAMwB,SAAA,CAAU,MAAM;IAChBP,QAAA,IACAL,KAAA,KAAUG,QAAA,CAASQ,OAAA,KACrBR,QAAA,CAASQ,OAAA,GAAUX,KAAA,EACnBO,UAAA,CAAWP,KAAK;EAEpB,GAAG,CAACO,UAAA,EAAYP,KAAA,EAAOK,QAAQ,CAAC;EAEhC,MAAMQ,MAAA,GAAS1B,QAAA,CAAU2B,IAAA,IAAS;IAChC,IAAI,CAAAhB,aAAA,EACJ,IAAIO,QAAA,EAAU;MACZ,MAAMU,SAAA,GAAY,OAAOD,IAAA,IAAS,aAAaA,IAAA,CAAKX,QAAA,CAASQ,OAAO,IAAIG,IAAA;MACxEP,UAAA,CAAWQ,SAAS;IACtB,OACEN,YAAA,CAAa,MAAM;MACjBR,QAAA,CAASa,IAAI;IACf,CAAC;EAEL,CAAC;EAED,OAAO,CAACR,KAAA,EAAYO,MAAM;AAC5B;AAEA,MAAML,IAAA,GAAOA,CAAA,KAAM,CAAC","ignoreList":[]}
|
|
@@ -4,15 +4,14 @@ import { startTransition } from "@tamagui/start-transition";
|
|
|
4
4
|
var emptyCallbackFn = function(_) {
|
|
5
5
|
return _();
|
|
6
6
|
};
|
|
7
|
-
function useControllableState(
|
|
8
|
-
var { prop, defaultProp, onChange, strategy = "prop-wins", preventUpdate, transition } =
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
]), React.useEffect(function() {
|
|
7
|
+
function useControllableState(props) {
|
|
8
|
+
var { prop, defaultProp, onChange, strategy = "prop-wins", preventUpdate, transition } = props, [state, setState] = React.useState(prop ?? defaultProp), previous = React.useRef(state), propWins = strategy === "prop-wins" && prop !== void 0, value = propWins ? prop : state, onChangeCb = useEvent(onChange || idFn), transitionFn = transition ? startTransition : emptyCallbackFn;
|
|
9
|
+
"prop" in props && prop !== state && transitionFn(function() {
|
|
10
|
+
setState(function(prev) {
|
|
11
|
+
if (prev !== prop)
|
|
12
|
+
return previous.current = prop, prop;
|
|
13
|
+
});
|
|
14
|
+
}), React.useEffect(function() {
|
|
16
15
|
propWins || state !== previous.current && (previous.current = state, onChangeCb(state));
|
|
17
16
|
}, [
|
|
18
17
|
onChangeCb,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Users/n8/tamagui/code/core/use-controllable-state/src/useControllableState.ts"],
|
|
4
|
-
"mappings": "AAAA,SAASA,gBAAgB;AACzB,YAAYC,WAAW;AACvB,SAASC,uBAAuB;AAOhC,IAAMC,kBAAkB,SAACC,GAAAA;SAAMA,EAAAA;;AAExB,SAASC,
|
|
5
|
-
"names": ["useEvent", "React", "startTransition", "emptyCallbackFn", "_", "useControllableState", "prop", "defaultProp", "onChange", "strategy", "preventUpdate", "transition", "state", "setState", "useState", "previous", "useRef", "propWins", "undefined", "value", "onChangeCb", "idFn", "transitionFn", "
|
|
4
|
+
"mappings": "AAAA,SAASA,gBAAgB;AACzB,YAAYC,WAAW;AACvB,SAASC,uBAAuB;AAOhC,IAAMC,kBAAkB,SAACC,GAAAA;SAAMA,EAAAA;;AAExB,SAASC,qBAAwBC,OAOvC;AACC,MAAM,EACJC,MACAC,aACAC,UACAC,WAAW,aACXC,eACAC,WAAU,IACRN,OACE,CAACO,OAAOC,QAAAA,IAAYb,MAAMc,SAASR,QAAQC,WAAAA,GAC3CQ,WAAWf,MAAMgB,OAAYJ,KAAAA,GAC7BK,WAAWR,aAAa,eAAeH,SAASY,QAChDC,QAAQF,WAAWX,OAAOM,OAC1BQ,aAAarB,SAASS,YAAYa,IAAAA,GAElCC,eAAeX,aAAaV,kBAAkBC;AAEpD,EAAI,UAAUG,SACRC,SAASM,SACXU,aAAa,WAAA;AAEXT,aAAS,SAACU,MAAAA;AACR,UAAIA,SAASjB;AACXS,wBAASS,UAAUlB,MACZA;IAEX,CAAA;EACF,CAAA,GAIJN,MAAMyB,UAAU,WAAA;AACd,IAAIR,YACAL,UAAUG,SAASS,YACrBT,SAASS,UAAUZ,OACnBQ,WAAWR,KAAAA;EAEf,GAAG;IAACQ;IAAYR;IAAOK;GAAS;AAEhC,MAAMS,SAAS3B,SAAS,SAAC4B,MAAAA;AACvB,QAAIjB;AACJ,UAAIO,UAAU;AACZ,YAAMW,YAAY,OAAOD,QAAS,aAAaA,KAAKZ,SAASS,OAAO,IAAIG;AACxEP,mBAAWQ,SAAAA;MACb;AACEN,qBAAa,WAAA;AACXT,mBAASc,IAAAA;QACX,CAAA;EAEJ,CAAA;AAEA,SAAO;IAACR;IAAYO;;AACtB;AAEA,IAAML,OAAO,WAAA;AAAO;",
|
|
5
|
+
"names": ["useEvent", "React", "startTransition", "emptyCallbackFn", "_", "useControllableState", "props", "prop", "defaultProp", "onChange", "strategy", "preventUpdate", "transition", "state", "setState", "useState", "previous", "useRef", "propWins", "undefined", "value", "onChangeCb", "idFn", "transitionFn", "prev", "current", "useEffect", "setter", "next", "nextValue"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/use-controllable-state",
|
|
3
|
-
"version": "1.124.
|
|
3
|
+
"version": "1.124.5",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"types": "./types/index.d.ts",
|
|
@@ -33,11 +33,11 @@
|
|
|
33
33
|
}
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@tamagui/start-transition": "1.124.
|
|
37
|
-
"@tamagui/use-event": "1.124.
|
|
36
|
+
"@tamagui/start-transition": "1.124.5",
|
|
37
|
+
"@tamagui/use-event": "1.124.5"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@tamagui/build": "1.124.
|
|
40
|
+
"@tamagui/build": "1.124.5",
|
|
41
41
|
"react": "*"
|
|
42
42
|
},
|
|
43
43
|
"publishConfig": {
|
|
@@ -9,14 +9,7 @@ type ChangeCb<T> = ((next: T) => void) | React.Dispatch<React.SetStateAction<T>>
|
|
|
9
9
|
|
|
10
10
|
const emptyCallbackFn = (_) => _()
|
|
11
11
|
|
|
12
|
-
export function useControllableState<T>({
|
|
13
|
-
prop,
|
|
14
|
-
defaultProp,
|
|
15
|
-
onChange,
|
|
16
|
-
strategy = 'prop-wins',
|
|
17
|
-
preventUpdate,
|
|
18
|
-
transition,
|
|
19
|
-
}: {
|
|
12
|
+
export function useControllableState<T>(props: {
|
|
20
13
|
prop?: T | undefined
|
|
21
14
|
defaultProp: T
|
|
22
15
|
onChange?: ChangeCb<T>
|
|
@@ -24,6 +17,14 @@ export function useControllableState<T>({
|
|
|
24
17
|
preventUpdate?: boolean
|
|
25
18
|
transition?: boolean
|
|
26
19
|
}): [T, React.Dispatch<React.SetStateAction<T>>] {
|
|
20
|
+
const {
|
|
21
|
+
prop,
|
|
22
|
+
defaultProp,
|
|
23
|
+
onChange,
|
|
24
|
+
strategy = 'prop-wins',
|
|
25
|
+
preventUpdate,
|
|
26
|
+
transition,
|
|
27
|
+
} = props
|
|
27
28
|
const [state, setState] = React.useState(prop ?? defaultProp)
|
|
28
29
|
const previous = React.useRef<any>(state)
|
|
29
30
|
const propWins = strategy === 'prop-wins' && prop !== undefined
|
|
@@ -32,13 +33,19 @@ export function useControllableState<T>({
|
|
|
32
33
|
|
|
33
34
|
const transitionFn = transition ? startTransition : emptyCallbackFn
|
|
34
35
|
|
|
35
|
-
|
|
36
|
-
if (prop
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
36
|
+
if ('prop' in props) {
|
|
37
|
+
if (prop !== state) {
|
|
38
|
+
transitionFn(() => {
|
|
39
|
+
// @ts-expect-error if user passes undefined thats on them
|
|
40
|
+
setState((prev) => {
|
|
41
|
+
if (prev !== prop) {
|
|
42
|
+
previous.current = prop
|
|
43
|
+
return prop
|
|
44
|
+
}
|
|
45
|
+
})
|
|
46
|
+
})
|
|
47
|
+
}
|
|
48
|
+
}
|
|
42
49
|
|
|
43
50
|
React.useEffect(() => {
|
|
44
51
|
if (propWins) return
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useControllableState.d.ts","sourceRoot":"","sources":["../src/useControllableState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;AAIhF,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,EACtC,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,QAAsB,EACtB,aAAa,EACb,UAAU,GACX,EAAE;IACD,IAAI,CAAC,EAAE,CAAC,GAAG,SAAS,CAAA;IACpB,WAAW,EAAE,CAAC,CAAA;IACd,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IACtB,QAAQ,CAAC,EAAE,WAAW,GAAG,kBAAkB,CAAA;IAC3C,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"useControllableState.d.ts","sourceRoot":"","sources":["../src/useControllableState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;AAIhF,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,EACtC,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,QAAsB,EACtB,aAAa,EACb,UAAU,GACX,EAAE;IACD,IAAI,CAAC,EAAE,CAAC,GAAG,SAAS,CAAA;IACpB,WAAW,EAAE,CAAC,CAAA;IACd,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IACtB,QAAQ,CAAC,EAAE,WAAW,GAAG,kBAAkB,CAAA;IAC3C,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CA0C/C"}
|