@tamagui/use-controllable-state 1.107.0 → 1.108.0-1722728147390
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.js +14 -6
- package/dist/cjs/useControllableState.js.map +1 -1
- package/dist/cjs/useControllableState.native.js +14 -6
- package/dist/cjs/useControllableState.native.js.map +2 -2
- package/dist/esm/useControllableState.js +4 -4
- package/dist/esm/useControllableState.js.map +1 -1
- package/dist/esm/useControllableState.mjs +6 -6
- package/dist/esm/useControllableState.mjs.map +1 -1
- package/dist/esm/useControllableState.native.js +4 -4
- package/dist/esm/useControllableState.native.js.map +2 -2
- package/package.json +3 -3
- package/src/useControllableState.ts +6 -7
- package/types/useControllableState.d.ts +1 -1
- package/types/useControllableState.d.ts.map +1 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
1
2
|
var __defProp = Object.defineProperty;
|
|
2
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
6
|
var __export = (target, all) => {
|
|
6
7
|
for (var name in all)
|
|
7
8
|
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
@@ -11,13 +12,20 @@ var __export = (target, all) => {
|
|
|
11
12
|
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
12
13
|
return to;
|
|
13
14
|
};
|
|
14
|
-
var
|
|
15
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
16
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
17
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
18
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
19
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
20
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
|
|
21
|
+
mod
|
|
22
|
+
)), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
15
23
|
var useControllableState_exports = {};
|
|
16
24
|
__export(useControllableState_exports, {
|
|
17
25
|
useControllableState: () => useControllableState
|
|
18
26
|
});
|
|
19
27
|
module.exports = __toCommonJS(useControllableState_exports);
|
|
20
|
-
var import_use_event = require("@tamagui/use-event"),
|
|
28
|
+
var import_use_event = require("@tamagui/use-event"), React = __toESM(require("react"));
|
|
21
29
|
const emptyCallbackFn = (_) => _();
|
|
22
30
|
function useControllableState({
|
|
23
31
|
prop,
|
|
@@ -27,12 +35,12 @@ function useControllableState({
|
|
|
27
35
|
preventUpdate,
|
|
28
36
|
transition
|
|
29
37
|
}) {
|
|
30
|
-
const [state, setState] =
|
|
31
|
-
|
|
38
|
+
const [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 ? React.startTransition : emptyCallbackFn;
|
|
39
|
+
React.useEffect(() => {
|
|
32
40
|
prop !== void 0 && (previous.current = prop, transitionFn(() => {
|
|
33
41
|
setState(prop);
|
|
34
42
|
}));
|
|
35
|
-
}, [prop]),
|
|
43
|
+
}, [prop]), React.useEffect(() => {
|
|
36
44
|
propWins || state !== previous.current && (previous.current = state, onChangeCb(state));
|
|
37
45
|
}, [onChangeCb, state, propWins]);
|
|
38
46
|
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": "
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAyB,+BACzB,QAAuB;AAOvB,MAAM,kBAAkB,CAAC,MAAM,EAAE;AAE1B,SAAS,qBAAwB;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA;AACF,GAOiD;AAC/C,QAAM,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,MAAM,kBAAkB;AAE1D,QAAM,UAAU,MAAM;AACpB,IAAI,SAAS,WACb,SAAS,UAAU,MACnB,aAAa,MAAM;AACjB,eAAS,IAAI;AAAA,IACf,CAAC;AAAA,EACH,GAAG,CAAC,IAAI,CAAC,GAET,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
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
7
|
var __export = (target, all) => {
|
|
7
8
|
for (var name in all)
|
|
8
9
|
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
@@ -12,13 +13,20 @@ var __export = (target, all) => {
|
|
|
12
13
|
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
13
14
|
return to;
|
|
14
15
|
};
|
|
15
|
-
var
|
|
16
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
17
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
18
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
19
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
20
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
|
|
22
|
+
mod
|
|
23
|
+
)), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
16
24
|
var useControllableState_exports = {};
|
|
17
25
|
__export(useControllableState_exports, {
|
|
18
26
|
useControllableState: () => useControllableState
|
|
19
27
|
});
|
|
20
28
|
module.exports = __toCommonJS(useControllableState_exports);
|
|
21
|
-
var import_use_event = require("@tamagui/use-event"),
|
|
29
|
+
var import_use_event = require("@tamagui/use-event"), React = __toESM(require("react"));
|
|
22
30
|
function _array_like_to_array(arr, len) {
|
|
23
31
|
(len == null || len > arr.length) && (len = arr.length);
|
|
24
32
|
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
@@ -64,14 +72,14 @@ var emptyCallbackFn = function(_) {
|
|
|
64
72
|
return _();
|
|
65
73
|
};
|
|
66
74
|
function useControllableState(param) {
|
|
67
|
-
var prop = param.prop, defaultProp = param.defaultProp, onChange = param.onChange, _param_strategy = param.strategy, strategy = _param_strategy === void 0 ? "prop-wins" : _param_strategy, preventUpdate = param.preventUpdate, transition = param.transition,
|
|
68
|
-
|
|
75
|
+
var prop = param.prop, defaultProp = param.defaultProp, onChange = param.onChange, _param_strategy = param.strategy, strategy = _param_strategy === void 0 ? "prop-wins" : _param_strategy, preventUpdate = param.preventUpdate, transition = param.transition, _React_useState = _sliced_to_array(React.useState(prop ?? defaultProp), 2), state = _React_useState[0], setState = _React_useState[1], 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 ? React.startTransition : emptyCallbackFn;
|
|
76
|
+
React.useEffect(function() {
|
|
69
77
|
prop !== void 0 && (previous.current = prop, transitionFn(function() {
|
|
70
78
|
setState(prop);
|
|
71
79
|
}));
|
|
72
80
|
}, [
|
|
73
81
|
prop
|
|
74
|
-
]),
|
|
82
|
+
]), React.useEffect(function() {
|
|
75
83
|
propWins || state !== previous.current && (previous.current = state, onChangeCb(state));
|
|
76
84
|
}, [
|
|
77
85
|
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": "
|
|
5
|
-
"names": ["emptyCallbackFn", "_", "useControllableState", "prop", "defaultProp", "onChange", "strategy", "preventUpdate", "transition", "useState", "state", "setState", "previous", "useRef", "propWins", "undefined", "value", "onChangeCb", "useEvent", "idFn", "transitionFn", "startTransition", "useEffect", "current", "setter", "next", "nextValue"]
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uBAAyB,+BACzB,QAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOvB,IAAMA,kBAAkB,SAACC,GAAAA;SAAMA,EAAAA;;AAExB,SAASC,qBAAwB,OAcvC;MAbCC,OADsC,MACtCA,MACAC,cAFsC,MAEtCA,aACAC,WAHsC,MAGtCA,UAAAA,kBAHsC,MAItCC,UAAAA,WAAAA,oBAAAA,SAAW,cAAA,iBACXC,gBALsC,MAKtCA,eACAC,aANsC,MAMtCA,YAS0BC,kBAAAA,iBAAAA,MAAMC,SAASP,QAAQC,WAAAA,GAAAA,CAAAA,GAA1CO,QAAmBF,gBAAAA,CAAAA,GAAZG,WAAYH,gBAAAA,CAAAA,GACpBI,WAAWJ,MAAMK,OAAYH,KAAAA,GAC7BI,WAAWT,aAAa,eAAeH,SAASa,QAChDC,QAAQF,WAAWZ,OAAOQ,OAC1BO,iBAAaC,2BAASd,YAAYe,IAAAA,GAElCC,eAAeb,aAAaC,MAAMa,kBAAkBtB;AAE1DS,QAAMc,UAAU,WAAA;AACd,IAAIpB,SAASa,WACbH,SAASW,UAAUrB,MACnBkB,aAAa,WAAA;AACXT,eAAST,IAAAA;IACX,CAAA;EACF,GAAG;IAACA;GAAK,GAETM,MAAMc,UAAU,WAAA;AACd,IAAIR,YACAJ,UAAUE,SAASW,YACrBX,SAASW,UAAUb,OACnBO,WAAWP,KAAAA;EAEf,GAAG;IAACO;IAAYP;IAAOI;GAAS;AAEhC,MAAMU,aAASN,2BAAS,SAACO,MAAAA;AACvB,QAAInB;AACJ,UAAIQ,UAAU;AACZ,YAAMY,YAAY,OAAOD,QAAS,aAAaA,KAAKb,SAASW,OAAO,IAAIE;AACxER,mBAAWS,SAAAA;MACb;AACEN,qBAAa,WAAA;AACXT,mBAASc,IAAAA;QACX,CAAA;EAEJ,CAAA;AAEA,SAAO;IAACT;IAAYQ;;AACtB;AAEA,IAAML,OAAO,WAAA;AAAO;",
|
|
5
|
+
"names": ["emptyCallbackFn", "_", "useControllableState", "prop", "defaultProp", "onChange", "strategy", "preventUpdate", "transition", "React", "useState", "state", "setState", "previous", "useRef", "propWins", "undefined", "value", "onChangeCb", "useEvent", "idFn", "transitionFn", "startTransition", "useEffect", "current", "setter", "next", "nextValue"]
|
|
6
6
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useEvent } from "@tamagui/use-event";
|
|
2
|
-
import
|
|
2
|
+
import * as React from "react";
|
|
3
3
|
const emptyCallbackFn = (_) => _();
|
|
4
4
|
function useControllableState({
|
|
5
5
|
prop,
|
|
@@ -9,12 +9,12 @@ function useControllableState({
|
|
|
9
9
|
preventUpdate,
|
|
10
10
|
transition
|
|
11
11
|
}) {
|
|
12
|
-
const [state, setState] = useState(prop ?? defaultProp), previous = useRef(state), propWins = strategy === "prop-wins" && prop !== void 0, value = propWins ? prop : state, onChangeCb = useEvent(onChange || idFn), transitionFn = transition ? startTransition : emptyCallbackFn;
|
|
13
|
-
useEffect(() => {
|
|
12
|
+
const [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 ? React.startTransition : emptyCallbackFn;
|
|
13
|
+
React.useEffect(() => {
|
|
14
14
|
prop !== void 0 && (previous.current = prop, transitionFn(() => {
|
|
15
15
|
setState(prop);
|
|
16
16
|
}));
|
|
17
|
-
}, [prop]), useEffect(() => {
|
|
17
|
+
}, [prop]), React.useEffect(() => {
|
|
18
18
|
propWins || state !== previous.current && (previous.current = state, onChangeCb(state));
|
|
19
19
|
}, [onChangeCb, state, propWins]);
|
|
20
20
|
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;
|
|
4
|
+
"mappings": "AAAA,SAAS,gBAAgB;AACzB,YAAY,WAAW;AAOvB,MAAM,kBAAkB,CAAC,MAAM,EAAE;AAE1B,SAAS,qBAAwB;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA;AACF,GAOiD;AAC/C,QAAM,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,MAAM,kBAAkB;AAE1D,QAAM,UAAU,MAAM;AACpB,IAAI,SAAS,WACb,SAAS,UAAU,MACnB,aAAa,MAAM;AACjB,eAAS,IAAI;AAAA,IACf,CAAC;AAAA,EACH,GAAG,CAAC,IAAI,CAAC,GAET,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
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useEvent } from "@tamagui/use-event";
|
|
2
|
-
import
|
|
2
|
+
import * as React from "react";
|
|
3
3
|
const emptyCallbackFn = _ => _();
|
|
4
4
|
function useControllableState({
|
|
5
5
|
prop,
|
|
@@ -9,17 +9,17 @@ function useControllableState({
|
|
|
9
9
|
preventUpdate,
|
|
10
10
|
transition
|
|
11
11
|
}) {
|
|
12
|
-
const [state, setState] = useState(prop ?? defaultProp),
|
|
13
|
-
previous = useRef(state),
|
|
12
|
+
const [state, setState] = React.useState(prop ?? defaultProp),
|
|
13
|
+
previous = React.useRef(state),
|
|
14
14
|
propWins = strategy === "prop-wins" && prop !== void 0,
|
|
15
15
|
value = propWins ? prop : state,
|
|
16
16
|
onChangeCb = useEvent(onChange || idFn),
|
|
17
|
-
transitionFn = transition ? startTransition : emptyCallbackFn;
|
|
18
|
-
useEffect(() => {
|
|
17
|
+
transitionFn = transition ? React.startTransition : emptyCallbackFn;
|
|
18
|
+
React.useEffect(() => {
|
|
19
19
|
prop !== void 0 && (previous.current = prop, transitionFn(() => {
|
|
20
20
|
setState(prop);
|
|
21
21
|
}));
|
|
22
|
-
}, [prop]), useEffect(() => {
|
|
22
|
+
}, [prop]), React.useEffect(() => {
|
|
23
23
|
propWins || state !== previous.current && (previous.current = state, onChangeCb(state));
|
|
24
24
|
}, [onChangeCb, state, propWins]);
|
|
25
25
|
const setter = useEvent(next => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEvent","
|
|
1
|
+
{"version":3,"names":["useEvent","React","emptyCallbackFn","_","useControllableState","prop","defaultProp","onChange","strategy","preventUpdate","transition","state","setState","useState","previous","useRef","propWins","value","onChangeCb","idFn","transitionFn","startTransition","useEffect","current","setter","next","nextValue"],"sources":["../../src/useControllableState.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,QAAgB;AACzB,YAAYC,KAAA,MAAW;AAOvB,MAAMC,eAAA,GAAmBC,CAAA,IAAMA,CAAA,CAAE;AAE1B,SAASC,qBAAwB;EACtCC,IAAA;EACAC,WAAA;EACAC,QAAA;EACAC,QAAA,GAAW;EACXC,aAAA;EACAC;AACF,GAOiD;EAC/C,MAAM,CAACC,KAAA,EAAOC,QAAQ,IAAIX,KAAA,CAAMY,QAAA,CAASR,IAAA,IAAQC,WAAW;IACtDQ,QAAA,GAAWb,KAAA,CAAMc,MAAA,CAAYJ,KAAK;IAClCK,QAAA,GAAWR,QAAA,KAAa,eAAeH,IAAA,KAAS;IAChDY,KAAA,GAAQD,QAAA,GAAWX,IAAA,GAAOM,KAAA;IAC1BO,UAAA,GAAalB,QAAA,CAASO,QAAA,IAAYY,IAAI;IAEtCC,YAAA,GAAeV,UAAA,GAAaT,KAAA,CAAMoB,eAAA,GAAkBnB,eAAA;EAE1DD,KAAA,CAAMqB,SAAA,CAAU,MAAM;IAChBjB,IAAA,KAAS,WACbS,QAAA,CAASS,OAAA,GAAUlB,IAAA,EACnBe,YAAA,CAAa,MAAM;MACjBR,QAAA,CAASP,IAAI;IACf,CAAC;EACH,GAAG,CAACA,IAAI,CAAC,GAETJ,KAAA,CAAMqB,SAAA,CAAU,MAAM;IAChBN,QAAA,IACAL,KAAA,KAAUG,QAAA,CAASS,OAAA,KACrBT,QAAA,CAASS,OAAA,GAAUZ,KAAA,EACnBO,UAAA,CAAWP,KAAK;EAEpB,GAAG,CAACO,UAAA,EAAYP,KAAA,EAAOK,QAAQ,CAAC;EAEhC,MAAMQ,MAAA,GAASxB,QAAA,CAAUyB,IAAA,IAAS;IAChC,IAAI,CAAAhB,aAAA,EACJ,IAAIO,QAAA,EAAU;MACZ,MAAMU,SAAA,GAAY,OAAOD,IAAA,IAAS,aAAaA,IAAA,CAAKX,QAAA,CAASS,OAAO,IAAIE,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":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useEvent } from "@tamagui/use-event";
|
|
2
|
-
import
|
|
2
|
+
import * as React from "react";
|
|
3
3
|
function _array_like_to_array(arr, len) {
|
|
4
4
|
(len == null || len > arr.length) && (len = arr.length);
|
|
5
5
|
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
@@ -45,14 +45,14 @@ var emptyCallbackFn = function(_) {
|
|
|
45
45
|
return _();
|
|
46
46
|
};
|
|
47
47
|
function useControllableState(param) {
|
|
48
|
-
var prop = param.prop, defaultProp = param.defaultProp, onChange = param.onChange, _param_strategy = param.strategy, strategy = _param_strategy === void 0 ? "prop-wins" : _param_strategy, preventUpdate = param.preventUpdate, transition = param.transition,
|
|
49
|
-
useEffect(function() {
|
|
48
|
+
var prop = param.prop, defaultProp = param.defaultProp, onChange = param.onChange, _param_strategy = param.strategy, strategy = _param_strategy === void 0 ? "prop-wins" : _param_strategy, preventUpdate = param.preventUpdate, transition = param.transition, _React_useState = _sliced_to_array(React.useState(prop ?? defaultProp), 2), state = _React_useState[0], setState = _React_useState[1], previous = React.useRef(state), propWins = strategy === "prop-wins" && prop !== void 0, value = propWins ? prop : state, onChangeCb = useEvent(onChange || idFn), transitionFn = transition ? React.startTransition : emptyCallbackFn;
|
|
49
|
+
React.useEffect(function() {
|
|
50
50
|
prop !== void 0 && (previous.current = prop, transitionFn(function() {
|
|
51
51
|
setState(prop);
|
|
52
52
|
}));
|
|
53
53
|
}, [
|
|
54
54
|
prop
|
|
55
|
-
]), useEffect(function() {
|
|
55
|
+
]), React.useEffect(function() {
|
|
56
56
|
propWins || state !== previous.current && (previous.current = state, onChangeCb(state));
|
|
57
57
|
}, [
|
|
58
58
|
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;
|
|
5
|
-
"names": ["useEvent", "
|
|
4
|
+
"mappings": "AAAA,SAASA,gBAAgB;AACzB,YAAYC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOvB,IAAMC,kBAAkB,SAACC,GAAAA;SAAMA,EAAAA;;AAExB,SAASC,qBAAwB,OAcvC;MAbCC,OADsC,MACtCA,MACAC,cAFsC,MAEtCA,aACAC,WAHsC,MAGtCA,UAAAA,kBAHsC,MAItCC,UAAAA,WAAAA,oBAAAA,SAAW,cAAA,iBACXC,gBALsC,MAKtCA,eACAC,aANsC,MAMtCA,YAS0BT,kBAAAA,iBAAAA,MAAMU,SAASN,QAAQC,WAAAA,GAAAA,CAAAA,GAA1CM,QAAmBX,gBAAAA,CAAAA,GAAZY,WAAYZ,gBAAAA,CAAAA,GACpBa,WAAWb,MAAMc,OAAYH,KAAAA,GAC7BI,WAAWR,aAAa,eAAeH,SAASY,QAChDC,QAAQF,WAAWX,OAAOO,OAC1BO,aAAanB,SAASO,YAAYa,IAAAA,GAElCC,eAAeX,aAAaT,MAAMqB,kBAAkBpB;AAE1DD,QAAMsB,UAAU,WAAA;AACd,IAAIlB,SAASY,WACbH,SAASU,UAAUnB,MACnBgB,aAAa,WAAA;AACXR,eAASR,IAAAA;IACX,CAAA;EACF,GAAG;IAACA;GAAK,GAETJ,MAAMsB,UAAU,WAAA;AACd,IAAIP,YACAJ,UAAUE,SAASU,YACrBV,SAASU,UAAUZ,OACnBO,WAAWP,KAAAA;EAEf,GAAG;IAACO;IAAYP;IAAOI;GAAS;AAEhC,MAAMS,SAASzB,SAAS,SAAC0B,MAAAA;AACvB,QAAIjB;AACJ,UAAIO,UAAU;AACZ,YAAMW,YAAY,OAAOD,QAAS,aAAaA,KAAKZ,SAASU,OAAO,IAAIE;AACxEP,mBAAWQ,SAAAA;MACb;AACEN,qBAAa,WAAA;AACXR,mBAASa,IAAAA;QACX,CAAA;EAEJ,CAAA;AAEA,SAAO;IAACR;IAAYO;;AACtB;AAEA,IAAML,OAAO,WAAA;AAAO;",
|
|
5
|
+
"names": ["useEvent", "React", "emptyCallbackFn", "_", "useControllableState", "prop", "defaultProp", "onChange", "strategy", "preventUpdate", "transition", "useState", "state", "setState", "previous", "useRef", "propWins", "undefined", "value", "onChangeCb", "idFn", "transitionFn", "startTransition", "useEffect", "current", "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.
|
|
3
|
+
"version": "1.108.0-1722728147390",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"types": "./types/index.d.ts",
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@tamagui/use-event": "1.
|
|
32
|
+
"@tamagui/use-event": "1.108.0-1722728147390"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@tamagui/build": "1.
|
|
35
|
+
"@tamagui/build": "1.108.0-1722728147390",
|
|
36
36
|
"react": "^18.2.0 || ^19.0.0"
|
|
37
37
|
},
|
|
38
38
|
"publishConfig": {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { useEvent } from '@tamagui/use-event'
|
|
2
|
-
import
|
|
3
|
-
import { startTransition, useEffect, useRef, useState } from 'react'
|
|
2
|
+
import * as React from 'react'
|
|
4
3
|
|
|
5
4
|
// can configure to allow most-recent-wins or prop-wins
|
|
6
5
|
// defaults to prop-wins
|
|
@@ -24,15 +23,15 @@ export function useControllableState<T>({
|
|
|
24
23
|
preventUpdate?: boolean
|
|
25
24
|
transition?: boolean
|
|
26
25
|
}): [T, React.Dispatch<React.SetStateAction<T>>] {
|
|
27
|
-
const [state, setState] = useState(prop ?? defaultProp)
|
|
28
|
-
const previous = useRef<any>(state)
|
|
26
|
+
const [state, setState] = React.useState(prop ?? defaultProp)
|
|
27
|
+
const previous = React.useRef<any>(state)
|
|
29
28
|
const propWins = strategy === 'prop-wins' && prop !== undefined
|
|
30
29
|
const value = propWins ? prop : state
|
|
31
30
|
const onChangeCb = useEvent(onChange || idFn)
|
|
32
31
|
|
|
33
|
-
const transitionFn = transition ? startTransition : emptyCallbackFn
|
|
32
|
+
const transitionFn = transition ? React.startTransition : emptyCallbackFn
|
|
34
33
|
|
|
35
|
-
useEffect(() => {
|
|
34
|
+
React.useEffect(() => {
|
|
36
35
|
if (prop === undefined) return
|
|
37
36
|
previous.current = prop
|
|
38
37
|
transitionFn(() => {
|
|
@@ -40,7 +39,7 @@ export function useControllableState<T>({
|
|
|
40
39
|
})
|
|
41
40
|
}, [prop])
|
|
42
41
|
|
|
43
|
-
useEffect(() => {
|
|
42
|
+
React.useEffect(() => {
|
|
44
43
|
if (propWins) return
|
|
45
44
|
if (state !== previous.current) {
|
|
46
45
|
previous.current = state
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as React from 'react';
|
|
2
2
|
type ChangeCb<T> = ((next: T) => void) | React.Dispatch<React.SetStateAction<T>>;
|
|
3
3
|
export declare function useControllableState<T>({ prop, defaultProp, onChange, strategy, preventUpdate, transition, }: {
|
|
4
4
|
prop?: T | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useControllableState.d.ts","sourceRoot":"","sources":["../src/useControllableState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"useControllableState.d.ts","sourceRoot":"","sources":["../src/useControllableState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,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,CAsC/C"}
|