@bemedev/app-reactjs 1.9.0 → 1.9.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/README.md +7 -0
- package/lib/index.cjs +7 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +5 -2
- package/lib/types.d.ts +6 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/useCan.cjs +28 -0
- package/lib/useCan.cjs.map +1 -0
- package/lib/useCan.d.ts +10 -0
- package/lib/useCan.d.ts.map +1 -0
- package/lib/useCan.js +27 -0
- package/lib/useCan.js.map +1 -0
- package/lib/useIsInside.cjs +31 -0
- package/lib/useIsInside.cjs.map +1 -0
- package/lib/useIsInside.d.ts +9 -0
- package/lib/useIsInside.d.ts.map +1 -0
- package/lib/useIsInside.js +30 -0
- package/lib/useIsInside.js.map +1 -0
- package/lib/useService.cjs +11 -19
- package/lib/useService.cjs.map +1 -1
- package/lib/useService.d.ts +15 -13
- package/lib/useService.d.ts.map +1 -1
- package/lib/useService.js +11 -20
- package/lib/useService.js.map +1 -1
- package/lib/useState.cjs +28 -0
- package/lib/useState.cjs.map +1 -0
- package/lib/useState.d.ts +14 -0
- package/lib/useState.d.ts.map +1 -0
- package/lib/useState.js +27 -0
- package/lib/useState.js.map +1 -0
- package/package.json +9 -9
package/README.md
CHANGED
package/lib/index.cjs
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_useState = require("./useState.cjs");
|
|
3
|
+
const require_useCan = require("./useCan.cjs");
|
|
4
|
+
const require_useIsInside = require("./useIsInside.cjs");
|
|
2
5
|
const require_useService = require("./useService.cjs");
|
|
6
|
+
exports.createHooks = require_useService.createHooks;
|
|
7
|
+
exports.useCan = require_useCan.useCan;
|
|
8
|
+
exports.useIsInside = require_useIsInside.useIsInside;
|
|
3
9
|
exports.useService = require_useService.useService;
|
|
10
|
+
exports.useState = require_useState.useState;
|
package/lib/index.d.ts
CHANGED
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { useState } from "./useState.js";
|
|
2
|
+
import { useCan } from "./useCan.js";
|
|
3
|
+
import { useIsInside } from "./useIsInside.js";
|
|
4
|
+
import { createHooks, useService } from "./useService.js";
|
|
5
|
+
export { createHooks, useCan, useIsInside, useService, useState };
|
package/lib/types.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { EventObject, State, PrimitiveObject } from '@bemedev/app';
|
|
2
|
+
export type UseServiceOptions<Tc extends PrimitiveObject, Ta extends string, Eo extends EventObject, T = State<Eo, Tc, Ta>> = {
|
|
3
|
+
selector?: (state: State<Eo, Tc, Ta>) => T;
|
|
4
|
+
equals?: (first: T, next: T) => boolean;
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAExE,MAAM,MAAM,iBAAiB,CAC3B,EAAE,SAAS,eAAe,EAC1B,EAAE,SAAS,MAAM,EACjB,EAAE,SAAS,WAAW,EACtB,CAAC,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IACnB;IACF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;CACzC,CAAC"}
|
package/lib/useCan.cjs
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
let _bemedev_app_utils = require("@bemedev/app/utils");
|
|
3
|
+
let react = require("react");
|
|
4
|
+
let _bemedev_app_bemedev = require("@bemedev/app/bemedev");
|
|
5
|
+
//#region src/useCan.ts
|
|
6
|
+
function useCan(service) {
|
|
7
|
+
const dispatch = (matcher) => {
|
|
8
|
+
return (...events) => {
|
|
9
|
+
const selector = (_state) => {
|
|
10
|
+
return events[matcher]((event) => service.canEvent(event));
|
|
11
|
+
};
|
|
12
|
+
const [_state, setState] = (0, react.useState)(selector(service.state));
|
|
13
|
+
const sub = service.subscribe(() => setState(selector(service.state)), { equals: (first, next) => (0, _bemedev_app_utils.deepEqual)(first.value, next.value) });
|
|
14
|
+
(0, react.useEffect)(() => sub.unsubscribe, []);
|
|
15
|
+
return _state;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
const or = dispatch("some");
|
|
19
|
+
const and = dispatch("every");
|
|
20
|
+
return (0, _bemedev_app_bemedev.expandFn)(and, {
|
|
21
|
+
or,
|
|
22
|
+
and
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
exports.useCan = useCan;
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=useCan.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCan.cjs","names":["useState","deepEqual","expandFn"],"sources":["../src/useCan.ts"],"sourcesContent":["import {\n type AddSubscriber_F,\n type EventObject,\n type PrimitiveObject,\n type State,\n} from '@bemedev/app';\nimport { expandFn } from '@bemedev/app/bemedev';\nimport { deepEqual } from '@bemedev/app/utils';\nimport { useEffect, useState } from 'react';\n\nexport function useCan<\n Tc extends PrimitiveObject,\n Ta extends string,\n Eo extends EventObject,\n>(service: {\n subscribe: AddSubscriber_F<Tc, Ta, Eo>;\n state: State<Eo, Tc, Ta>;\n canEvent: (event: Eo['type']) => boolean;\n}) {\n const dispatch = (matcher: 'some' | 'every') => {\n return (...events: Eo['type'][]) => {\n const selector = (_state: State<Eo, Tc, Ta>) => {\n return events[matcher](event => service.canEvent(event));\n };\n\n const [_state, setState] = useState(selector(service.state));\n\n const sub = service.subscribe(\n () => setState(selector(service.state)),\n { equals: (first, next) => deepEqual(first.value, next.value) },\n );\n\n useEffect(() => sub.unsubscribe, []);\n return _state;\n };\n };\n\n const or = dispatch('some');\n const and = dispatch('every');\n const out = expandFn(and, { or, and });\n return out;\n}\n"],"mappings":";;;;;AAUA,SAAgB,OAId,SAIC;CACD,MAAM,YAAY,YAA8B;EAC9C,QAAQ,GAAG,WAAyB;GAClC,MAAM,YAAY,WAA8B;IAC9C,OAAO,OAAO,QAAQ,EAAC,UAAS,QAAQ,SAAS,KAAK,CAAC;GACzD;GAEA,MAAM,CAAC,QAAQ,aAAA,GAAYA,MAAAA,SAAAA,CAAS,SAAS,QAAQ,KAAK,CAAC;GAE3D,MAAM,MAAM,QAAQ,gBACZ,SAAS,SAAS,QAAQ,KAAK,CAAC,GACtC,EAAE,SAAS,OAAO,UAAA,GAASC,mBAAAA,UAAAA,CAAU,MAAM,OAAO,KAAK,KAAK,EAAE,CAChE;GAEA,CAAA,GAAA,MAAA,UAAA,OAAgB,IAAI,aAAa,CAAC,CAAC;GACnC,OAAO;EACT;CACF;CAEA,MAAM,KAAK,SAAS,MAAM;CAC1B,MAAM,MAAM,SAAS,OAAO;CAE5B,QAAA,GADYC,qBAAAA,SAAAA,CAAS,KAAK;EAAE;EAAI;CAAI,CAC3B;AACX"}
|
package/lib/useCan.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type AddSubscriber_F, type EventObject, type PrimitiveObject, type State } from '@bemedev/app';
|
|
2
|
+
export declare function useCan<Tc extends PrimitiveObject, Ta extends string, Eo extends EventObject>(service: {
|
|
3
|
+
subscribe: AddSubscriber_F<Tc, Ta, Eo>;
|
|
4
|
+
state: State<Eo, Tc, Ta>;
|
|
5
|
+
canEvent: (event: Eo['type']) => boolean;
|
|
6
|
+
}): import("@bemedev/app/bemedev").FnBasic<(...events: Eo["type"][]) => boolean, {
|
|
7
|
+
readonly or: (...events: Eo["type"][]) => boolean;
|
|
8
|
+
readonly and: (...events: Eo["type"][]) => boolean;
|
|
9
|
+
}>;
|
|
10
|
+
//# sourceMappingURL=useCan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCan.d.ts","sourceRoot":"","sources":["../src/useCan.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,KAAK,EACX,MAAM,cAAc,CAAC;AAKtB,wBAAgB,MAAM,CACpB,EAAE,SAAS,eAAe,EAC1B,EAAE,SAAS,MAAM,EACjB,EAAE,SAAS,WAAW,EACtB,OAAO,EAAE;IACT,SAAS,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACvC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC;CAC1C,sDAEsB,EAAE,CAAC,MAAM,CAAC,EAAE;6BAAZ,EAAE,CAAC,MAAM,CAAC,EAAE;8BAAZ,EAAE,CAAC,MAAM,CAAC,EAAE;GAqBlC"}
|
package/lib/useCan.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { deepEqual } from "@bemedev/app/utils";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
import { expandFn } from "@bemedev/app/bemedev";
|
|
4
|
+
//#region src/useCan.ts
|
|
5
|
+
function useCan(service) {
|
|
6
|
+
const dispatch = (matcher) => {
|
|
7
|
+
return (...events) => {
|
|
8
|
+
const selector = (_state) => {
|
|
9
|
+
return events[matcher]((event) => service.canEvent(event));
|
|
10
|
+
};
|
|
11
|
+
const [_state, setState] = useState(selector(service.state));
|
|
12
|
+
const sub = service.subscribe(() => setState(selector(service.state)), { equals: (first, next) => deepEqual(first.value, next.value) });
|
|
13
|
+
useEffect(() => sub.unsubscribe, []);
|
|
14
|
+
return _state;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
const or = dispatch("some");
|
|
18
|
+
const and = dispatch("every");
|
|
19
|
+
return expandFn(and, {
|
|
20
|
+
or,
|
|
21
|
+
and
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { useCan };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=useCan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCan.js","names":[],"sources":["../src/useCan.ts"],"sourcesContent":["import {\n type AddSubscriber_F,\n type EventObject,\n type PrimitiveObject,\n type State,\n} from '@bemedev/app';\nimport { expandFn } from '@bemedev/app/bemedev';\nimport { deepEqual } from '@bemedev/app/utils';\nimport { useEffect, useState } from 'react';\n\nexport function useCan<\n Tc extends PrimitiveObject,\n Ta extends string,\n Eo extends EventObject,\n>(service: {\n subscribe: AddSubscriber_F<Tc, Ta, Eo>;\n state: State<Eo, Tc, Ta>;\n canEvent: (event: Eo['type']) => boolean;\n}) {\n const dispatch = (matcher: 'some' | 'every') => {\n return (...events: Eo['type'][]) => {\n const selector = (_state: State<Eo, Tc, Ta>) => {\n return events[matcher](event => service.canEvent(event));\n };\n\n const [_state, setState] = useState(selector(service.state));\n\n const sub = service.subscribe(\n () => setState(selector(service.state)),\n { equals: (first, next) => deepEqual(first.value, next.value) },\n );\n\n useEffect(() => sub.unsubscribe, []);\n return _state;\n };\n };\n\n const or = dispatch('some');\n const and = dispatch('every');\n const out = expandFn(and, { or, and });\n return out;\n}\n"],"mappings":";;;;AAUA,SAAgB,OAId,SAIC;CACD,MAAM,YAAY,YAA8B;EAC9C,QAAQ,GAAG,WAAyB;GAClC,MAAM,YAAY,WAA8B;IAC9C,OAAO,OAAO,QAAQ,EAAC,UAAS,QAAQ,SAAS,KAAK,CAAC;GACzD;GAEA,MAAM,CAAC,QAAQ,YAAY,SAAS,SAAS,QAAQ,KAAK,CAAC;GAE3D,MAAM,MAAM,QAAQ,gBACZ,SAAS,SAAS,QAAQ,KAAK,CAAC,GACtC,EAAE,SAAS,OAAO,SAAS,UAAU,MAAM,OAAO,KAAK,KAAK,EAAE,CAChE;GAEA,gBAAgB,IAAI,aAAa,CAAC,CAAC;GACnC,OAAO;EACT;CACF;CAEA,MAAM,KAAK,SAAS,MAAM;CAC1B,MAAM,MAAM,SAAS,OAAO;CAE5B,OADY,SAAS,KAAK;EAAE;EAAI;CAAI,CAC3B;AACX"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
let _bemedev_app_utils = require("@bemedev/app/utils");
|
|
3
|
+
let react = require("react");
|
|
4
|
+
let _bemedev_app_bemedev = require("@bemedev/app/bemedev");
|
|
5
|
+
//#region src/useIsInside.ts
|
|
6
|
+
function useIsInside(service) {
|
|
7
|
+
const selector1 = (_state) => {
|
|
8
|
+
return (0, _bemedev_app_utils.decomposeSV)(_state.value);
|
|
9
|
+
};
|
|
10
|
+
const dispatch = (matcher) => {
|
|
11
|
+
return (...states) => {
|
|
12
|
+
const selector = (_state) => {
|
|
13
|
+
return states[matcher]((state) => selector1(_state).includes(state));
|
|
14
|
+
};
|
|
15
|
+
const [_state, setState] = (0, react.useState)(selector(service.state));
|
|
16
|
+
const sub = service.subscribe((nextState) => setState(selector(nextState)), { equals: (first, next) => (0, _bemedev_app_utils.deepEqual)(first.value, next.value) });
|
|
17
|
+
(0, react.useEffect)(() => sub.unsubscribe, []);
|
|
18
|
+
return _state;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
const or = dispatch("some");
|
|
22
|
+
const and = dispatch("every");
|
|
23
|
+
return (0, _bemedev_app_bemedev.expandFn)(and, {
|
|
24
|
+
or,
|
|
25
|
+
and
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//#endregion
|
|
29
|
+
exports.useIsInside = useIsInside;
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=useIsInside.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIsInside.cjs","names":["decomposeSV","useState","deepEqual","expandFn"],"sources":["../src/useIsInside.ts"],"sourcesContent":["import type {\n AddSubscriber_F,\n EventObject,\n PrimitiveObject,\n State,\n} from '@bemedev/app';\nimport { decomposeSV, deepEqual } from '@bemedev/app/utils';\nimport { expandFn } from '@bemedev/app/bemedev';\nimport { useEffect, useState } from 'react';\n\nexport function useIsInside<\n Tc extends PrimitiveObject,\n Ta extends string,\n Eo extends EventObject,\n>(service: {\n subscribe: AddSubscriber_F<Tc, Ta, Eo>;\n state: State<Eo, Tc, Ta>;\n}) {\n const selector1 = (_state: State<Eo, Tc, Ta>) => {\n return decomposeSV(_state.value);\n };\n\n const dispatch = (matcher: 'some' | 'every') => {\n return (...states: string[]) => {\n const selector = (_state: State<Eo, Tc, Ta>) => {\n return states[matcher](state => selector1(_state).includes(state));\n };\n\n const [_state, setState] = useState(selector(service.state));\n\n const sub = service.subscribe(\n nextState => setState(selector(nextState)),\n { equals: (first, next) => deepEqual(first.value, next.value) },\n );\n\n useEffect(() => sub.unsubscribe, []);\n return _state;\n };\n };\n\n const or = dispatch('some');\n const and = dispatch('every');\n const out = expandFn(and, { or, and });\n return out;\n}\n"],"mappings":";;;;;AAUA,SAAgB,YAId,SAGC;CACD,MAAM,aAAa,WAA8B;EAC/C,QAAA,GAAOA,mBAAAA,YAAAA,CAAY,OAAO,KAAK;CACjC;CAEA,MAAM,YAAY,YAA8B;EAC9C,QAAQ,GAAG,WAAqB;GAC9B,MAAM,YAAY,WAA8B;IAC9C,OAAO,OAAO,QAAQ,EAAC,UAAS,UAAU,MAAM,CAAC,CAAC,SAAS,KAAK,CAAC;GACnE;GAEA,MAAM,CAAC,QAAQ,aAAA,GAAYC,MAAAA,SAAAA,CAAS,SAAS,QAAQ,KAAK,CAAC;GAE3D,MAAM,MAAM,QAAQ,WAClB,cAAa,SAAS,SAAS,SAAS,CAAC,GACzC,EAAE,SAAS,OAAO,UAAA,GAASC,mBAAAA,UAAAA,CAAU,MAAM,OAAO,KAAK,KAAK,EAAE,CAChE;GAEA,CAAA,GAAA,MAAA,UAAA,OAAgB,IAAI,aAAa,CAAC,CAAC;GACnC,OAAO;EACT;CACF;CAEA,MAAM,KAAK,SAAS,MAAM;CAC1B,MAAM,MAAM,SAAS,OAAO;CAE5B,QAAA,GADYC,qBAAAA,SAAAA,CAAS,KAAK;EAAE;EAAI;CAAI,CAC3B;AACX"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AddSubscriber_F, EventObject, PrimitiveObject, State } from '@bemedev/app';
|
|
2
|
+
export declare function useIsInside<Tc extends PrimitiveObject, Ta extends string, Eo extends EventObject>(service: {
|
|
3
|
+
subscribe: AddSubscriber_F<Tc, Ta, Eo>;
|
|
4
|
+
state: State<Eo, Tc, Ta>;
|
|
5
|
+
}): import("@bemedev/app/bemedev").FnBasic<(...states: string[]) => boolean, {
|
|
6
|
+
readonly or: (...states: string[]) => boolean;
|
|
7
|
+
readonly and: (...states: string[]) => boolean;
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=useIsInside.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIsInside.d.ts","sourceRoot":"","sources":["../src/useIsInside.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,eAAe,EACf,KAAK,EACN,MAAM,cAAc,CAAC;AAKtB,wBAAgB,WAAW,CACzB,EAAE,SAAS,eAAe,EAC1B,EAAE,SAAS,MAAM,EACjB,EAAE,SAAS,WAAW,EACtB,OAAO,EAAE;IACT,SAAS,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACvC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;CAC1B,sDAMsB,MAAM,EAAE;6BAAR,MAAM,EAAE;8BAAR,MAAM,EAAE;GAqB9B"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { decomposeSV, deepEqual } from "@bemedev/app/utils";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
import { expandFn } from "@bemedev/app/bemedev";
|
|
4
|
+
//#region src/useIsInside.ts
|
|
5
|
+
function useIsInside(service) {
|
|
6
|
+
const selector1 = (_state) => {
|
|
7
|
+
return decomposeSV(_state.value);
|
|
8
|
+
};
|
|
9
|
+
const dispatch = (matcher) => {
|
|
10
|
+
return (...states) => {
|
|
11
|
+
const selector = (_state) => {
|
|
12
|
+
return states[matcher]((state) => selector1(_state).includes(state));
|
|
13
|
+
};
|
|
14
|
+
const [_state, setState] = useState(selector(service.state));
|
|
15
|
+
const sub = service.subscribe((nextState) => setState(selector(nextState)), { equals: (first, next) => deepEqual(first.value, next.value) });
|
|
16
|
+
useEffect(() => sub.unsubscribe, []);
|
|
17
|
+
return _state;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
const or = dispatch("some");
|
|
21
|
+
const and = dispatch("every");
|
|
22
|
+
return expandFn(and, {
|
|
23
|
+
or,
|
|
24
|
+
and
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
export { useIsInside };
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=useIsInside.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIsInside.js","names":[],"sources":["../src/useIsInside.ts"],"sourcesContent":["import type {\n AddSubscriber_F,\n EventObject,\n PrimitiveObject,\n State,\n} from '@bemedev/app';\nimport { decomposeSV, deepEqual } from '@bemedev/app/utils';\nimport { expandFn } from '@bemedev/app/bemedev';\nimport { useEffect, useState } from 'react';\n\nexport function useIsInside<\n Tc extends PrimitiveObject,\n Ta extends string,\n Eo extends EventObject,\n>(service: {\n subscribe: AddSubscriber_F<Tc, Ta, Eo>;\n state: State<Eo, Tc, Ta>;\n}) {\n const selector1 = (_state: State<Eo, Tc, Ta>) => {\n return decomposeSV(_state.value);\n };\n\n const dispatch = (matcher: 'some' | 'every') => {\n return (...states: string[]) => {\n const selector = (_state: State<Eo, Tc, Ta>) => {\n return states[matcher](state => selector1(_state).includes(state));\n };\n\n const [_state, setState] = useState(selector(service.state));\n\n const sub = service.subscribe(\n nextState => setState(selector(nextState)),\n { equals: (first, next) => deepEqual(first.value, next.value) },\n );\n\n useEffect(() => sub.unsubscribe, []);\n return _state;\n };\n };\n\n const or = dispatch('some');\n const and = dispatch('every');\n const out = expandFn(and, { or, and });\n return out;\n}\n"],"mappings":";;;;AAUA,SAAgB,YAId,SAGC;CACD,MAAM,aAAa,WAA8B;EAC/C,OAAO,YAAY,OAAO,KAAK;CACjC;CAEA,MAAM,YAAY,YAA8B;EAC9C,QAAQ,GAAG,WAAqB;GAC9B,MAAM,YAAY,WAA8B;IAC9C,OAAO,OAAO,QAAQ,EAAC,UAAS,UAAU,MAAM,CAAC,CAAC,SAAS,KAAK,CAAC;GACnE;GAEA,MAAM,CAAC,QAAQ,YAAY,SAAS,SAAS,QAAQ,KAAK,CAAC;GAE3D,MAAM,MAAM,QAAQ,WAClB,cAAa,SAAS,SAAS,SAAS,CAAC,GACzC,EAAE,SAAS,OAAO,SAAS,UAAU,MAAM,OAAO,KAAK,KAAK,EAAE,CAChE;GAEA,gBAAgB,IAAI,aAAa,CAAC,CAAC;GACnC,OAAO;EACT;CACF;CAEA,MAAM,KAAK,SAAS,MAAM;CAC1B,MAAM,MAAM,SAAS,OAAO;CAE5B,OADY,SAAS,KAAK;EAAE;EAAI;CAAI,CAC3B;AACX"}
|
package/lib/useService.cjs
CHANGED
|
@@ -1,26 +1,18 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
const require_useState = require("./useState.cjs");
|
|
3
|
+
const require_useCan = require("./useCan.cjs");
|
|
4
|
+
const require_useIsInside = require("./useIsInside.cjs");
|
|
4
5
|
//#region src/useService.ts
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
*/
|
|
12
|
-
function useService(service, options) {
|
|
13
|
-
const { selector = (s) => s, equality = (first, next) => (0, _bemedev_app.deepEqual)(first, next) } = options ?? {};
|
|
14
|
-
const [state, setState] = (0, react.useState)(() => selector(service.state));
|
|
15
|
-
const sub = service.subscribe((nextState) => setState(selector(nextState)), { equals: (first, next) => {
|
|
16
|
-
const _first = selector(first);
|
|
17
|
-
const _next = selector(next);
|
|
18
|
-
return equality(_first, _next);
|
|
19
|
-
} });
|
|
20
|
-
(0, react.useEffect)(() => sub.unsubscribe, []);
|
|
21
|
-
return state;
|
|
6
|
+
function useService(service) {
|
|
7
|
+
return {
|
|
8
|
+
state: (options) => require_useState.useState(service, options),
|
|
9
|
+
can: require_useCan.useCan(service),
|
|
10
|
+
isInside: require_useIsInside.useIsInside(service)
|
|
11
|
+
};
|
|
22
12
|
}
|
|
13
|
+
const createHooks = useService;
|
|
23
14
|
//#endregion
|
|
15
|
+
exports.createHooks = createHooks;
|
|
24
16
|
exports.useService = useService;
|
|
25
17
|
|
|
26
18
|
//# sourceMappingURL=useService.cjs.map
|
package/lib/useService.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useService.cjs","names":["
|
|
1
|
+
{"version":3,"file":"useService.cjs","names":["useState","useCan","useIsInside"],"sources":["../src/useService.ts"],"sourcesContent":["import type {\n AddSubscriber_F,\n EventObject,\n PrimitiveObject,\n State,\n} from '@bemedev/app';\nimport type { UseServiceOptions } from './types';\nimport { useCan } from './useCan';\nimport { useIsInside } from './useIsInside';\nimport { useState } from './useState';\n\nexport function useService<\n Tc extends PrimitiveObject,\n Ta extends string,\n Eo extends EventObject,\n>(service: {\n subscribe: AddSubscriber_F<Tc, Ta, Eo>;\n state: State<Eo, Tc, Ta>;\n canEvent: (event: Eo['type']) => boolean;\n}) {\n return {\n state: <T = State<Eo, Tc, Ta>>(\n options?: UseServiceOptions<Tc, Ta, Eo, T>,\n ) => useState<Tc, Ta, Eo, T>(service, options),\n\n can: useCan(service),\n isInside: useIsInside(service),\n };\n}\n\nexport const createHooks = useService;\n"],"mappings":";;;;;AAWA,SAAgB,WAId,SAIC;CACD,OAAO;EACL,QACE,YACGA,iBAAAA,SAAwB,SAAS,OAAO;EAE7C,KAAKC,eAAAA,OAAO,OAAO;EACnB,UAAUC,oBAAAA,YAAY,OAAO;CAC/B;AACF;AAEA,MAAa,cAAc"}
|
package/lib/useService.d.ts
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import type { AddSubscriber_F, EventObject, PrimitiveObject, State } from '@bemedev/app';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
equality?: (first: T, next: T) => boolean;
|
|
5
|
-
};
|
|
6
|
-
/**
|
|
7
|
-
* A hook that creates a React state from a service with a subscribe function.
|
|
8
|
-
*
|
|
9
|
-
* @param service - The service containing the state and subscribe method.
|
|
10
|
-
* @param options - Optional configuration options for selection and equality comparison.
|
|
11
|
-
* @returns The selected state.
|
|
12
|
-
*/
|
|
13
|
-
export declare function useService<Tc extends PrimitiveObject, Ta extends string, Eo extends EventObject, T = State<Eo, Tc, Ta>>(service: {
|
|
2
|
+
import type { UseServiceOptions } from './types';
|
|
3
|
+
export declare function useService<Tc extends PrimitiveObject, Ta extends string, Eo extends EventObject>(service: {
|
|
14
4
|
subscribe: AddSubscriber_F<Tc, Ta, Eo>;
|
|
15
5
|
state: State<Eo, Tc, Ta>;
|
|
16
|
-
|
|
6
|
+
canEvent: (event: Eo['type']) => boolean;
|
|
7
|
+
}): {
|
|
8
|
+
state: <T = State<Eo, Tc, Ta>>(options?: UseServiceOptions<Tc, Ta, Eo, T>) => T;
|
|
9
|
+
can: import("@bemedev/app/bemedev").FnBasic<(...events: Eo["type"][]) => boolean, {
|
|
10
|
+
readonly or: (...events: Eo["type"][]) => boolean;
|
|
11
|
+
readonly and: (...events: Eo["type"][]) => boolean;
|
|
12
|
+
}>;
|
|
13
|
+
isInside: import("@bemedev/app/bemedev").FnBasic<(...states: string[]) => boolean, {
|
|
14
|
+
readonly or: (...states: string[]) => boolean;
|
|
15
|
+
readonly and: (...states: string[]) => boolean;
|
|
16
|
+
}>;
|
|
17
|
+
};
|
|
18
|
+
export declare const createHooks: typeof useService;
|
|
17
19
|
//# sourceMappingURL=useService.d.ts.map
|
package/lib/useService.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useService.d.ts","sourceRoot":"","sources":["../src/useService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,eAAe,EACf,KAAK,EACN,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"useService.d.ts","sourceRoot":"","sources":["../src/useService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,eAAe,EACf,KAAK,EACN,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAKjD,wBAAgB,UAAU,CACxB,EAAE,SAAS,eAAe,EAC1B,EAAE,SAAS,MAAM,EACjB,EAAE,SAAS,WAAW,EACtB,OAAO,EAAE;IACT,SAAS,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACvC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC;CAC1C;YAEW,CAAC,gCACG,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;;;;;;;;;EAM/C;AAED,eAAO,MAAM,WAAW,mBAAa,CAAC"}
|
package/lib/useService.js
CHANGED
|
@@ -1,25 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { useState } from "./useState.js";
|
|
2
|
+
import { useCan } from "./useCan.js";
|
|
3
|
+
import { useIsInside } from "./useIsInside.js";
|
|
3
4
|
//#region src/useService.ts
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
*/
|
|
11
|
-
function useService(service, options) {
|
|
12
|
-
const { selector = (s) => s, equality = (first, next) => deepEqual(first, next) } = options ?? {};
|
|
13
|
-
const [state, setState] = useState(() => selector(service.state));
|
|
14
|
-
const sub = service.subscribe((nextState) => setState(selector(nextState)), { equals: (first, next) => {
|
|
15
|
-
const _first = selector(first);
|
|
16
|
-
const _next = selector(next);
|
|
17
|
-
return equality(_first, _next);
|
|
18
|
-
} });
|
|
19
|
-
useEffect(() => sub.unsubscribe, []);
|
|
20
|
-
return state;
|
|
5
|
+
function useService(service) {
|
|
6
|
+
return {
|
|
7
|
+
state: (options) => useState(service, options),
|
|
8
|
+
can: useCan(service),
|
|
9
|
+
isInside: useIsInside(service)
|
|
10
|
+
};
|
|
21
11
|
}
|
|
12
|
+
const createHooks = useService;
|
|
22
13
|
//#endregion
|
|
23
|
-
export { useService };
|
|
14
|
+
export { createHooks, useService };
|
|
24
15
|
|
|
25
16
|
//# sourceMappingURL=useService.js.map
|
package/lib/useService.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useService.js","names":[],"sources":["../src/useService.ts"],"sourcesContent":["import type {\n AddSubscriber_F,\n EventObject,\n PrimitiveObject,\n State,\n} from '@bemedev/app';\nimport {
|
|
1
|
+
{"version":3,"file":"useService.js","names":[],"sources":["../src/useService.ts"],"sourcesContent":["import type {\n AddSubscriber_F,\n EventObject,\n PrimitiveObject,\n State,\n} from '@bemedev/app';\nimport type { UseServiceOptions } from './types';\nimport { useCan } from './useCan';\nimport { useIsInside } from './useIsInside';\nimport { useState } from './useState';\n\nexport function useService<\n Tc extends PrimitiveObject,\n Ta extends string,\n Eo extends EventObject,\n>(service: {\n subscribe: AddSubscriber_F<Tc, Ta, Eo>;\n state: State<Eo, Tc, Ta>;\n canEvent: (event: Eo['type']) => boolean;\n}) {\n return {\n state: <T = State<Eo, Tc, Ta>>(\n options?: UseServiceOptions<Tc, Ta, Eo, T>,\n ) => useState<Tc, Ta, Eo, T>(service, options),\n\n can: useCan(service),\n isInside: useIsInside(service),\n };\n}\n\nexport const createHooks = useService;\n"],"mappings":";;;;AAWA,SAAgB,WAId,SAIC;CACD,OAAO;EACL,QACE,YACG,SAAwB,SAAS,OAAO;EAE7C,KAAK,OAAO,OAAO;EACnB,UAAU,YAAY,OAAO;CAC/B;AACF;AAEA,MAAa,cAAc"}
|
package/lib/useState.cjs
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
let _bemedev_app_utils = require("@bemedev/app/utils");
|
|
3
|
+
let react = require("react");
|
|
4
|
+
//#region src/useState.ts
|
|
5
|
+
/**
|
|
6
|
+
* A hook that creates a React state from a service with a subscribe function.
|
|
7
|
+
*
|
|
8
|
+
* @param service - The service containing the state and subscribe method.
|
|
9
|
+
* @param options - Optional configuration options for selection and equality comparison.
|
|
10
|
+
* @returns The selected state.
|
|
11
|
+
*/
|
|
12
|
+
function useState(service, options) {
|
|
13
|
+
const { selector = (s) => s, equals = _bemedev_app_utils.deepEqual } = options ?? {};
|
|
14
|
+
const [_state, setState] = (0, react.useState)(() => selector(service.state));
|
|
15
|
+
const _selector = (0, react.useCallback)(selector, [selector]);
|
|
16
|
+
const _equals = (0, react.useCallback)(equals, [equals]);
|
|
17
|
+
const sub = service.subscribe((nextState) => setState(_selector(nextState)), { equals: (prev, next) => {
|
|
18
|
+
const _prev = _selector(prev);
|
|
19
|
+
const _next = _selector(next);
|
|
20
|
+
return _equals(_prev, _next);
|
|
21
|
+
} });
|
|
22
|
+
(0, react.useEffect)(() => sub.unsubscribe, []);
|
|
23
|
+
return _state;
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
exports.useState = useState;
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=useState.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useState.cjs","names":["deepEqual","useReactState","useCallback"],"sources":["../src/useState.ts"],"sourcesContent":["import type {\n AddSubscriber_F,\n EventObject,\n PrimitiveObject,\n State,\n} from '@bemedev/app';\nimport { deepEqual } from '@bemedev/app/utils';\nimport { useCallback, useEffect, useState as useReactState } from 'react';\nimport type { UseServiceOptions } from './types';\n\n/**\n * A hook that creates a React state from a service with a subscribe function.\n *\n * @param service - The service containing the state and subscribe method.\n * @param options - Optional configuration options for selection and equality comparison.\n * @returns The selected state.\n */\nexport function useState<\n Tc extends PrimitiveObject,\n Ta extends string,\n Eo extends EventObject,\n T = State<Eo, Tc, Ta>,\n>(\n service: {\n subscribe: AddSubscriber_F<Tc, Ta, Eo>;\n state: State<Eo, Tc, Ta>;\n },\n options?: UseServiceOptions<Tc, Ta, Eo, T>,\n): T {\n const {\n selector = (s: State<Eo, Tc, Ta>) => s as T,\n equals = deepEqual<T>,\n } = options ?? {};\n\n const [_state, setState] = useReactState<T>(() =>\n selector(service.state),\n );\n\n const _selector = useCallback(selector, [selector]);\n const _equals = useCallback(equals, [equals]);\n\n const sub = service.subscribe(\n nextState => setState(_selector(nextState)),\n {\n equals: (prev, next) => {\n const _prev = _selector(prev);\n const _next = _selector(next);\n return _equals(_prev, _next);\n },\n },\n );\n\n useEffect(() => sub.unsubscribe, []);\n return _state;\n}\n"],"mappings":";;;;;;;;;;;AAiBA,SAAgB,SAMd,SAIA,SACG;CACH,MAAM,EACJ,YAAY,MAAyB,GACrC,SAASA,mBAAAA,cACP,WAAW,CAAC;CAEhB,MAAM,CAAC,QAAQ,aAAA,GAAYC,MAAAA,SAAAA,OACzB,SAAS,QAAQ,KAAK,CACxB;CAEA,MAAM,aAAA,GAAYC,MAAAA,YAAAA,CAAY,UAAU,CAAC,QAAQ,CAAC;CAClD,MAAM,WAAA,GAAUA,MAAAA,YAAAA,CAAY,QAAQ,CAAC,MAAM,CAAC;CAE5C,MAAM,MAAM,QAAQ,WAClB,cAAa,SAAS,UAAU,SAAS,CAAC,GAC1C,EACE,SAAS,MAAM,SAAS;EACtB,MAAM,QAAQ,UAAU,IAAI;EAC5B,MAAM,QAAQ,UAAU,IAAI;EAC5B,OAAO,QAAQ,OAAO,KAAK;CAC7B,EACF,CACF;CAEA,CAAA,GAAA,MAAA,UAAA,OAAgB,IAAI,aAAa,CAAC,CAAC;CACnC,OAAO;AACT"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { AddSubscriber_F, EventObject, PrimitiveObject, State } from '@bemedev/app';
|
|
2
|
+
import type { UseServiceOptions } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* A hook that creates a React state from a service with a subscribe function.
|
|
5
|
+
*
|
|
6
|
+
* @param service - The service containing the state and subscribe method.
|
|
7
|
+
* @param options - Optional configuration options for selection and equality comparison.
|
|
8
|
+
* @returns The selected state.
|
|
9
|
+
*/
|
|
10
|
+
export declare function useState<Tc extends PrimitiveObject, Ta extends string, Eo extends EventObject, T = State<Eo, Tc, Ta>>(service: {
|
|
11
|
+
subscribe: AddSubscriber_F<Tc, Ta, Eo>;
|
|
12
|
+
state: State<Eo, Tc, Ta>;
|
|
13
|
+
}, options?: UseServiceOptions<Tc, Ta, Eo, T>): T;
|
|
14
|
+
//# sourceMappingURL=useState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useState.d.ts","sourceRoot":"","sources":["../src/useState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,eAAe,EACf,KAAK,EACN,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,EAAE,SAAS,eAAe,EAC1B,EAAE,SAAS,MAAM,EACjB,EAAE,SAAS,WAAW,EACtB,CAAC,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAErB,OAAO,EAAE;IACP,SAAS,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACvC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;CAC1B,EACD,OAAO,CAAC,EAAE,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACzC,CAAC,CA0BH"}
|
package/lib/useState.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { deepEqual } from "@bemedev/app/utils";
|
|
2
|
+
import { useCallback, useEffect, useState as useState$1 } from "react";
|
|
3
|
+
//#region src/useState.ts
|
|
4
|
+
/**
|
|
5
|
+
* A hook that creates a React state from a service with a subscribe function.
|
|
6
|
+
*
|
|
7
|
+
* @param service - The service containing the state and subscribe method.
|
|
8
|
+
* @param options - Optional configuration options for selection and equality comparison.
|
|
9
|
+
* @returns The selected state.
|
|
10
|
+
*/
|
|
11
|
+
function useState(service, options) {
|
|
12
|
+
const { selector = (s) => s, equals = deepEqual } = options ?? {};
|
|
13
|
+
const [_state, setState] = useState$1(() => selector(service.state));
|
|
14
|
+
const _selector = useCallback(selector, [selector]);
|
|
15
|
+
const _equals = useCallback(equals, [equals]);
|
|
16
|
+
const sub = service.subscribe((nextState) => setState(_selector(nextState)), { equals: (prev, next) => {
|
|
17
|
+
const _prev = _selector(prev);
|
|
18
|
+
const _next = _selector(next);
|
|
19
|
+
return _equals(_prev, _next);
|
|
20
|
+
} });
|
|
21
|
+
useEffect(() => sub.unsubscribe, []);
|
|
22
|
+
return _state;
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { useState };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=useState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useState.js","names":["useReactState"],"sources":["../src/useState.ts"],"sourcesContent":["import type {\n AddSubscriber_F,\n EventObject,\n PrimitiveObject,\n State,\n} from '@bemedev/app';\nimport { deepEqual } from '@bemedev/app/utils';\nimport { useCallback, useEffect, useState as useReactState } from 'react';\nimport type { UseServiceOptions } from './types';\n\n/**\n * A hook that creates a React state from a service with a subscribe function.\n *\n * @param service - The service containing the state and subscribe method.\n * @param options - Optional configuration options for selection and equality comparison.\n * @returns The selected state.\n */\nexport function useState<\n Tc extends PrimitiveObject,\n Ta extends string,\n Eo extends EventObject,\n T = State<Eo, Tc, Ta>,\n>(\n service: {\n subscribe: AddSubscriber_F<Tc, Ta, Eo>;\n state: State<Eo, Tc, Ta>;\n },\n options?: UseServiceOptions<Tc, Ta, Eo, T>,\n): T {\n const {\n selector = (s: State<Eo, Tc, Ta>) => s as T,\n equals = deepEqual<T>,\n } = options ?? {};\n\n const [_state, setState] = useReactState<T>(() =>\n selector(service.state),\n );\n\n const _selector = useCallback(selector, [selector]);\n const _equals = useCallback(equals, [equals]);\n\n const sub = service.subscribe(\n nextState => setState(_selector(nextState)),\n {\n equals: (prev, next) => {\n const _prev = _selector(prev);\n const _next = _selector(next);\n return _equals(_prev, _next);\n },\n },\n );\n\n useEffect(() => sub.unsubscribe, []);\n return _state;\n}\n"],"mappings":";;;;;;;;;;AAiBA,SAAgB,SAMd,SAIA,SACG;CACH,MAAM,EACJ,YAAY,MAAyB,GACrC,SAAS,cACP,WAAW,CAAC;CAEhB,MAAM,CAAC,QAAQ,YAAYA,iBACzB,SAAS,QAAQ,KAAK,CACxB;CAEA,MAAM,YAAY,YAAY,UAAU,CAAC,QAAQ,CAAC;CAClD,MAAM,UAAU,YAAY,QAAQ,CAAC,MAAM,CAAC;CAE5C,MAAM,MAAM,QAAQ,WAClB,cAAa,SAAS,UAAU,SAAS,CAAC,GAC1C,EACE,SAAS,MAAM,SAAS;EACtB,MAAM,QAAQ,UAAU,IAAI;EAC5B,MAAM,QAAQ,UAAU,IAAI;EAC5B,OAAO,QAAQ,OAAO,KAAK;CAC7B,EACF,CACF;CAEA,gBAAgB,IAAI,aAAa,CAAC,CAAC;CACnC,OAAO;AACT"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bemedev/app-reactjs",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.2",
|
|
4
4
|
"description": "Middleware between @bemedev/app and reactjs",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"app",
|
|
@@ -47,13 +47,13 @@
|
|
|
47
47
|
"@bemedev/decompose": "2.3.0",
|
|
48
48
|
"@bemedev/dev-utils": "^1.1.1",
|
|
49
49
|
"@bemedev/sleep": "^0.2.2",
|
|
50
|
-
"@size-limit/file": "^13.0.
|
|
50
|
+
"@size-limit/file": "^13.0.3",
|
|
51
51
|
"@testing-library/jest-dom": "^7.0.0",
|
|
52
52
|
"@testing-library/react": "^16.3.2",
|
|
53
53
|
"@testing-library/user-event": "^14.6.1",
|
|
54
54
|
"@types/node": "^26.1.2",
|
|
55
|
-
"@types/react": "^19.2.
|
|
56
|
-
"@types/react-dom": "^19.2.
|
|
55
|
+
"@types/react": "^19.2.18",
|
|
56
|
+
"@types/react-dom": "^19.2.4",
|
|
57
57
|
"@vitest/coverage-v8": "^4.1.10",
|
|
58
58
|
"@vitest/ui": "4.1.10",
|
|
59
59
|
"glob": "^13.0.6",
|
|
@@ -68,18 +68,18 @@
|
|
|
68
68
|
"react": "^19.2.8",
|
|
69
69
|
"react-dom": "^19.2.8",
|
|
70
70
|
"rolldown": "1.2.1",
|
|
71
|
-
"rolldown-plugin-dts": "^0.
|
|
72
|
-
"size-limit": "^13.0.
|
|
71
|
+
"rolldown-plugin-dts": "^0.28.0",
|
|
72
|
+
"size-limit": "^13.0.3",
|
|
73
73
|
"tslib": "^2.8.1",
|
|
74
74
|
"tsx": "^4.23.1",
|
|
75
75
|
"typescript": "^6.0.3",
|
|
76
76
|
"vitest": "^4.1.10",
|
|
77
|
-
"@bemedev/app": "^1.9.
|
|
78
|
-
"@bemedev/app-vitest": "^1.9.
|
|
77
|
+
"@bemedev/app": "^1.9.1",
|
|
78
|
+
"@bemedev/app-vitest": "^1.9.1"
|
|
79
79
|
},
|
|
80
80
|
"peerDependencies": {
|
|
81
81
|
"react": "^19.2.8",
|
|
82
|
-
"@bemedev/app": "^1.9.
|
|
82
|
+
"@bemedev/app": "^1.9.1"
|
|
83
83
|
},
|
|
84
84
|
"size-limit": [
|
|
85
85
|
{
|