piral-core 0.15.0-alpha.4098 → 0.15.0-alpha.4122
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/esm/components/ForeignComponentContainer.d.ts +1 -1
- package/esm/components/ForeignComponentContainer.js.map +1 -1
- package/esm/components/wrapComponent.d.ts +1 -1
- package/esm/state/withApi.js.map +1 -1
- package/lib/components/ForeignComponentContainer.d.ts +1 -1
- package/lib/components/ForeignComponentContainer.js.map +1 -1
- package/lib/components/wrapComponent.d.ts +1 -1
- package/lib/state/withApi.js.map +1 -1
- package/package.json +17 -4
- package/src/RootListener.test.tsx +7 -5
- package/src/actions/app.test.ts +1 -1
- package/src/components/ForeignComponentContainer.test.tsx +25 -16
- package/src/components/ForeignComponentContainer.tsx +1 -2
- package/src/components/PiralView-server.test.tsx +27 -27
- package/src/components/wrapComponent.tsx +1 -1
- package/src/hooks/setter.test.ts +3 -2
- package/src/state/withApi.tsx +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { ForeignComponent, BaseComponentProps, ComponentContext } from '../types';
|
|
2
|
+
import type { ForeignComponent, BaseComponentProps, ComponentContext } from '../types';
|
|
3
3
|
interface ForeignComponentContainerProps<T> {
|
|
4
4
|
$portalId: string;
|
|
5
5
|
$component: ForeignComponent<T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ForeignComponentContainer.js","sourceRoot":"","sources":["../../src/components/ForeignComponentContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ForeignComponentContainer.js","sourceRoot":"","sources":["../../src/components/ForeignComponentContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAUpC,MAAM,OAAO,yBAA6B,SAAQ,KAAK,CAAC,SAA4C;IAApG;;QACU,WAAM,GAAyB,EAAE,CAAC;QAGlC,YAAO,GAAG,CAAC,EAAe,EAAE,EAAE;YACpC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;YAClC,EAAE,CAAC,eAAe,EAAE,CAAC;YACrB,UAAU,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1E,CAAC,CAAC;QAEM,YAAO,GAAG,CAAC,IAAoB,EAAE,EAAE;YACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC,CAAC;IA6CJ,CAAC;IA3CC,iBAAiB;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1B,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACxD,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;QAE7B,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;YACzB,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC3D;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,kBAAkB;QAChB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QACnC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACxD,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;QAE9B,IAAI,OAAO,KAAK,QAAQ,EAAE;YACxB,QAAQ,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACxC,OAAO,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACrC;aAAM,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE;YACzB,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SACpD;IACH,CAAC;IAED,oBAAoB;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAClC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;QAE/B,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE;YAC3B,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC9D;QAED,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACjC,OAAO,+CAAqB,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,GAAI,CAAC;IAC/D,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { AnyComponent, ComponentConverters, PiletApi, BaseComponentProps } from '../types';
|
|
2
|
+
import type { AnyComponent, ComponentConverters, PiletApi, BaseComponentProps } from '../types';
|
|
3
3
|
interface CapturedProps {
|
|
4
4
|
piral: PiletApi;
|
|
5
5
|
}
|
package/esm/state/withApi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withApi.js","sourceRoot":"","sources":["../../src/state/withApi.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"withApi.js","sourceRoot":"","sources":["../../src/state/withApi.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,cAAc,GAA0C,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAEvG,SAAS,UAAU,CAAC,QAAkD,EAAE,WAAmB;IACzF,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEvC,IAAI,OAAO,IAAI,QAAQ,EAAE;QACvB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAChB,oBAAC,OAAO,oBAAK,KAAK;YAChB,oBAAC,QAAQ,oBAAK,KAAK,EAAI,CACf,CACX,CAAC;KACH;IAED,OAAO,QAAQ,IAAI,OAAO,IAAI,cAAc,CAAC;AAC/C,CAAC;AAED,SAAS,WAAW,CAClB,OAA2B,EAC3B,UAAe,EACf,WAAmB,EACnB,SAAuB;IAEvB,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAE5F,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAChB,oBAAC,YAAY,oBAAK,UAAU,EAAM,KAAK;QACrC,oBAAC,aAAa,oBAAK,UAAU,EAAM,KAAK,IAAE,SAAS,EAAE,SAAS,KAC3D,KAAK,CAAC,QAAQ,CACD,CACH,CAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,OAA2B,EAC3B,SAAoD,EACpD,KAAe,EACf,SAAuB,EACvB,cAAsB,SAAS,EAC/B,QAAQ,GAAG,EAAE;IAEb,MAAM,UAAU,mCAAQ,QAAQ,KAAE,KAAK,GAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,MAAM,OAAO,GAAG,WAAW,CAAS,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACjF,OAAO,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { ForeignComponent, BaseComponentProps, ComponentContext } from '../types';
|
|
2
|
+
import type { ForeignComponent, BaseComponentProps, ComponentContext } from '../types';
|
|
3
3
|
interface ForeignComponentContainerProps<T> {
|
|
4
4
|
$portalId: string;
|
|
5
5
|
$component: ForeignComponent<T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ForeignComponentContainer.js","sourceRoot":"","sources":["../../src/components/ForeignComponentContainer.tsx"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,2CAAoC;
|
|
1
|
+
{"version":3,"file":"ForeignComponentContainer.js","sourceRoot":"","sources":["../../src/components/ForeignComponentContainer.tsx"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,2CAAoC;AAUpC,MAAa,yBAA6B,SAAQ,KAAK,CAAC,SAA4C;IAApG;;QACU,WAAM,GAAyB,EAAE,CAAC;QAGlC,YAAO,GAAG,CAAC,EAAe,EAAE,EAAE;YACpC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;YAClC,EAAE,CAAC,eAAe,EAAE,CAAC;YACrB,UAAU,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1E,CAAC,CAAC;QAEM,YAAO,GAAG,CAAC,IAAoB,EAAE,EAAE;YACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC,CAAC;IA6CJ,CAAC;IA3CC,iBAAiB;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QAC1B,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACxD,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;QAE7B,IAAI,IAAI,IAAI,IAAA,mBAAM,EAAC,KAAK,CAAC,EAAE;YACzB,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC3D;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,kBAAkB;QAChB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QACnC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACxD,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;QAE9B,IAAI,OAAO,KAAK,QAAQ,EAAE;YACxB,QAAQ,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACxC,OAAO,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACrC;aAAM,IAAI,IAAA,mBAAM,EAAC,MAAM,CAAC,EAAE;YACzB,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SACpD;IACH,CAAC;IAED,oBAAoB;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAClC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;QAE/B,IAAI,IAAI,IAAI,IAAA,mBAAM,EAAC,OAAO,CAAC,EAAE;YAC3B,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC9D;QAED,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACjC,OAAO,+CAAqB,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,GAAI,CAAC;IAC/D,CAAC;CACF;AAzDD,8DAyDC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { AnyComponent, ComponentConverters, PiletApi, BaseComponentProps } from '../types';
|
|
2
|
+
import type { AnyComponent, ComponentConverters, PiletApi, BaseComponentProps } from '../types';
|
|
3
3
|
interface CapturedProps {
|
|
4
4
|
piral: PiletApi;
|
|
5
5
|
}
|
package/lib/state/withApi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withApi.js","sourceRoot":"","sources":["../../src/state/withApi.tsx"],"names":[],"mappings":";;;AAAA,+BAA+B;
|
|
1
|
+
{"version":3,"file":"withApi.js","sourceRoot":"","sources":["../../src/state/withApi.tsx"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,8CAA6D;AAC7D,oCAAyC;AAGzC,MAAM,cAAc,GAA0C,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,qBAAa,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAEvG,SAAS,UAAU,CAAC,QAAkD,EAAE,WAAmB;IACzF,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEvC,IAAI,OAAO,IAAI,QAAQ,EAAE;QACvB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAChB,oBAAC,OAAO,oBAAK,KAAK;YAChB,oBAAC,QAAQ,oBAAK,KAAK,EAAI,CACf,CACX,CAAC;KACH;IAED,OAAO,QAAQ,IAAI,OAAO,IAAI,cAAc,CAAC;AAC/C,CAAC;AAED,SAAS,WAAW,CAClB,OAA2B,EAC3B,UAAe,EACf,WAAmB,EACnB,SAAuB;IAEvB,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAE5F,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAChB,oBAAC,YAAY,oBAAK,UAAU,EAAM,KAAK;QACrC,oBAAC,0BAAa,oBAAK,UAAU,EAAM,KAAK,IAAE,SAAS,EAAE,SAAS,KAC3D,KAAK,CAAC,QAAQ,CACD,CACH,CAChB,CAAC;AACJ,CAAC;AAED,SAAgB,OAAO,CACrB,OAA2B,EAC3B,SAAoD,EACpD,KAAe,EACf,SAAuB,EACvB,cAAsB,SAAS,EAC/B,QAAQ,GAAG,EAAE;IAEb,MAAM,UAAU,mCAAQ,QAAQ,KAAE,KAAK,GAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,MAAM,OAAO,GAAG,WAAW,CAAS,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACjF,OAAO,IAAA,0BAAa,EAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AAZD,0BAYC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "piral-core",
|
|
3
|
-
"version": "0.15.0-alpha.
|
|
3
|
+
"version": "0.15.0-alpha.4122",
|
|
4
4
|
"description": "The core library for creating a Piral instance.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"portal",
|
|
@@ -29,6 +29,19 @@
|
|
|
29
29
|
"module": "esm/index.js",
|
|
30
30
|
"main": "lib/index.js",
|
|
31
31
|
"typings": "lib/index.d.ts",
|
|
32
|
+
"exports": {
|
|
33
|
+
".": {
|
|
34
|
+
"import": "./esm/index.js",
|
|
35
|
+
"require": "./lib/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./esm/": {
|
|
38
|
+
"import": "./esm/"
|
|
39
|
+
},
|
|
40
|
+
"./lib/": {
|
|
41
|
+
"require": "./lib/"
|
|
42
|
+
},
|
|
43
|
+
"./package.json": "./package.json"
|
|
44
|
+
},
|
|
32
45
|
"sideEffects": false,
|
|
33
46
|
"files": [
|
|
34
47
|
"esm",
|
|
@@ -60,8 +73,8 @@
|
|
|
60
73
|
},
|
|
61
74
|
"dependencies": {
|
|
62
75
|
"@dbeining/react-atom": "^4.0.0",
|
|
63
|
-
"piral-base": "0.15.0-alpha.
|
|
64
|
-
"piral-debug-utils": "0.15.0-alpha.
|
|
76
|
+
"piral-base": "0.15.0-alpha.4122",
|
|
77
|
+
"piral-debug-utils": "0.15.0-alpha.4122"
|
|
65
78
|
},
|
|
66
79
|
"peerDependencies": {
|
|
67
80
|
"react": ">=16.8.0",
|
|
@@ -91,5 +104,5 @@
|
|
|
91
104
|
"@libre/atom",
|
|
92
105
|
"@dbeining/react-atom"
|
|
93
106
|
],
|
|
94
|
-
"gitHead": "
|
|
107
|
+
"gitHead": "fa0957fe7dedebbbd97a530e518c1a2b7754d475"
|
|
95
108
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { createRoot } from 'react-dom/client';
|
|
3
3
|
import { act } from 'react-dom/test-utils';
|
|
4
4
|
import { RootListener } from './RootListener';
|
|
5
5
|
|
|
@@ -15,7 +15,8 @@ describe('RootListener Component', () => {
|
|
|
15
15
|
const removed = jest.fn();
|
|
16
16
|
document.body.appendChild(element);
|
|
17
17
|
const container = document.body.appendChild(document.createElement('div'));
|
|
18
|
-
|
|
18
|
+
const root = createRoot(container);
|
|
19
|
+
root.render(<RootListener />);
|
|
19
20
|
document.body.removeEventListener = removed;
|
|
20
21
|
await act(() => {
|
|
21
22
|
const event = new CustomEvent('render-html', {
|
|
@@ -23,7 +24,7 @@ describe('RootListener Component', () => {
|
|
|
23
24
|
detail: {
|
|
24
25
|
target: element,
|
|
25
26
|
props: {},
|
|
26
|
-
}
|
|
27
|
+
},
|
|
27
28
|
});
|
|
28
29
|
element.dispatchEvent(event);
|
|
29
30
|
return Promise.resolve();
|
|
@@ -35,10 +36,11 @@ describe('RootListener Component', () => {
|
|
|
35
36
|
it('removes the RootListener successfully', async () => {
|
|
36
37
|
const container = document.body.appendChild(document.createElement('div'));
|
|
37
38
|
const removed = jest.fn();
|
|
38
|
-
|
|
39
|
+
const root = createRoot(container);
|
|
40
|
+
root.render(<RootListener />);
|
|
39
41
|
document.body.removeEventListener = removed;
|
|
40
42
|
await act(() => Promise.resolve());
|
|
41
|
-
|
|
43
|
+
root.unmount();
|
|
42
44
|
await act(() => Promise.resolve());
|
|
43
45
|
expect(removed).toHaveBeenCalled();
|
|
44
46
|
});
|
package/src/actions/app.test.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { mount } from 'enzyme';
|
|
1
2
|
import { createElement } from 'react';
|
|
2
3
|
import { Atom, deref } from '@dbeining/react-atom';
|
|
3
4
|
import { createListener, Pilet } from 'piral-base';
|
|
@@ -11,7 +12,6 @@ import {
|
|
|
11
12
|
setRoute,
|
|
12
13
|
} from './app';
|
|
13
14
|
import { createActions } from '../state';
|
|
14
|
-
import { mount } from 'enzyme';
|
|
15
15
|
import { RootListener } from '../RootListener';
|
|
16
16
|
|
|
17
17
|
const pilet: Pilet = {
|
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { createRoot } from 'react-dom/client';
|
|
3
|
+
import { act } from 'react-dom/test-utils';
|
|
3
4
|
import { ForeignComponentContainer } from './ForeignComponentContainer';
|
|
4
5
|
|
|
6
|
+
async function render(element: any, container: Element) {
|
|
7
|
+
const root = createRoot(container);
|
|
8
|
+
root.render(element);
|
|
9
|
+
await act(() => Promise.resolve());
|
|
10
|
+
return root;
|
|
11
|
+
}
|
|
12
|
+
|
|
5
13
|
describe('ForeignComponentContainer component', () => {
|
|
6
|
-
it('mounts an HTML component', () => {
|
|
14
|
+
it('mounts an HTML component', async () => {
|
|
7
15
|
const container = document.body.appendChild(document.createElement('div'));
|
|
8
16
|
const mount = jest.fn();
|
|
9
17
|
const component = { mount };
|
|
10
|
-
render(
|
|
18
|
+
await render(
|
|
11
19
|
<ForeignComponentContainer $component={component} $context={undefined} $portalId="foo" innerProps={{}} />,
|
|
12
20
|
container,
|
|
13
21
|
);
|
|
@@ -15,28 +23,28 @@ describe('ForeignComponentContainer component', () => {
|
|
|
15
23
|
container.remove();
|
|
16
24
|
});
|
|
17
25
|
|
|
18
|
-
it('unmounts an HTML component', () => {
|
|
26
|
+
it('unmounts an HTML component', async () => {
|
|
19
27
|
const container = document.body.appendChild(document.createElement('div'));
|
|
20
28
|
const mount = jest.fn();
|
|
21
29
|
const unmount = jest.fn();
|
|
22
30
|
const component = { mount, unmount };
|
|
23
|
-
render(
|
|
31
|
+
const root = await render(
|
|
24
32
|
<ForeignComponentContainer $component={component} $context={undefined} $portalId="foo" innerProps={{}} />,
|
|
25
33
|
container,
|
|
26
34
|
);
|
|
27
35
|
expect(mount).toHaveBeenCalled();
|
|
28
36
|
expect(unmount).not.toHaveBeenCalled();
|
|
29
|
-
|
|
37
|
+
root.unmount();
|
|
30
38
|
expect(unmount).toHaveBeenCalled();
|
|
31
39
|
container.remove();
|
|
32
40
|
});
|
|
33
41
|
|
|
34
|
-
it('updates an HTML component', () => {
|
|
42
|
+
it('updates an HTML component', async () => {
|
|
35
43
|
const container = document.body.appendChild(document.createElement('div'));
|
|
36
44
|
const mount = jest.fn();
|
|
37
45
|
const update = jest.fn();
|
|
38
46
|
const component = { mount, update };
|
|
39
|
-
render(
|
|
47
|
+
const root = await render(
|
|
40
48
|
<ForeignComponentContainer
|
|
41
49
|
$component={component}
|
|
42
50
|
$context={undefined}
|
|
@@ -47,20 +55,20 @@ describe('ForeignComponentContainer component', () => {
|
|
|
47
55
|
);
|
|
48
56
|
expect(mount).toHaveBeenCalled();
|
|
49
57
|
expect(update).not.toHaveBeenCalled();
|
|
50
|
-
render(
|
|
58
|
+
root.render(
|
|
51
59
|
<ForeignComponentContainer
|
|
52
60
|
$component={component}
|
|
53
61
|
$context={undefined}
|
|
54
62
|
$portalId="foo"
|
|
55
63
|
innerProps={{ a: 'foo' }}
|
|
56
64
|
/>,
|
|
57
|
-
container,
|
|
58
65
|
);
|
|
66
|
+
await act(() => Promise.resolve());
|
|
59
67
|
expect(update).toHaveBeenCalled();
|
|
60
68
|
container.remove();
|
|
61
69
|
});
|
|
62
70
|
|
|
63
|
-
it('forces re-rendering of an HTML component', () => {
|
|
71
|
+
it('forces re-rendering of an HTML component', async () => {
|
|
64
72
|
const container = document.body.appendChild(document.createElement('div'));
|
|
65
73
|
const componentDidMount = ForeignComponentContainer.prototype.componentDidMount;
|
|
66
74
|
ForeignComponentContainer.prototype.componentDidMount = function () {
|
|
@@ -73,7 +81,7 @@ describe('ForeignComponentContainer component', () => {
|
|
|
73
81
|
const update = jest.fn();
|
|
74
82
|
const unmount = jest.fn();
|
|
75
83
|
const component = { mount, update, unmount };
|
|
76
|
-
render(
|
|
84
|
+
const root = await render(
|
|
77
85
|
<ForeignComponentContainer
|
|
78
86
|
$component={component}
|
|
79
87
|
$context={undefined}
|
|
@@ -85,27 +93,27 @@ describe('ForeignComponentContainer component', () => {
|
|
|
85
93
|
expect(mount).toHaveBeenCalled();
|
|
86
94
|
expect(unmount).not.toHaveBeenCalled();
|
|
87
95
|
expect(update).not.toHaveBeenCalled();
|
|
88
|
-
render(
|
|
96
|
+
root.render(
|
|
89
97
|
<ForeignComponentContainer
|
|
90
98
|
$component={component}
|
|
91
99
|
$context={undefined}
|
|
92
100
|
$portalId="foo"
|
|
93
101
|
innerProps={{ a: 'foo' }}
|
|
94
102
|
/>,
|
|
95
|
-
container,
|
|
96
103
|
);
|
|
104
|
+
await act(() => Promise.resolve());
|
|
97
105
|
expect(update).not.toHaveBeenCalled();
|
|
98
106
|
expect(unmount).toHaveBeenCalled();
|
|
99
107
|
container.remove();
|
|
100
108
|
});
|
|
101
109
|
|
|
102
|
-
it('listens to render-html', () => {
|
|
110
|
+
it('listens to render-html', async () => {
|
|
103
111
|
const container = document.body.appendChild(document.createElement('div'));
|
|
104
112
|
const mount = jest.fn();
|
|
105
113
|
const renderHtmlExtension = jest.fn();
|
|
106
114
|
const component = { mount };
|
|
107
115
|
const props = { piral: { renderHtmlExtension }, meta: {} };
|
|
108
|
-
render(
|
|
116
|
+
await render(
|
|
109
117
|
<ForeignComponentContainer $component={component} $context={undefined} $portalId="foo" innerProps={props} />,
|
|
110
118
|
container,
|
|
111
119
|
);
|
|
@@ -113,6 +121,7 @@ describe('ForeignComponentContainer component', () => {
|
|
|
113
121
|
const node = document.querySelector('[data-portal-id=foo]');
|
|
114
122
|
expect(renderHtmlExtension).not.toHaveBeenCalled();
|
|
115
123
|
node.dispatchEvent(new CustomEvent('render-html', { detail: {} }));
|
|
124
|
+
await act(() => Promise.resolve());
|
|
116
125
|
expect(renderHtmlExtension).toHaveBeenCalled();
|
|
117
126
|
container.remove();
|
|
118
127
|
});
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { isfunc } from 'piral-base';
|
|
3
|
-
import {
|
|
4
|
-
import { ForeignComponent, BaseComponentProps, ComponentContext } from '../types';
|
|
3
|
+
import type { ForeignComponent, BaseComponentProps, ComponentContext } from '../types';
|
|
5
4
|
|
|
6
5
|
interface ForeignComponentContainerProps<T> {
|
|
7
6
|
$portalId: string;
|
|
@@ -17,45 +17,45 @@ StubErrorInfo.displayName = 'StubErrorInfo';
|
|
|
17
17
|
const StubLoader: React.FC = () => <div />;
|
|
18
18
|
StubLoader.displayName = 'StubLoader';
|
|
19
19
|
|
|
20
|
-
const StubRouter: React.FC = ({ children }) => <div>{children}</div>;
|
|
20
|
+
const StubRouter: React.FC<React.PropsWithChildren<{}>> = ({ children }) => <div>{children}</div>;
|
|
21
21
|
StubRouter.displayName = 'StubRouter';
|
|
22
22
|
|
|
23
|
-
const StubLayout: React.FC = ({ children }) => <div>{children}</div>;
|
|
23
|
+
const StubLayout: React.FC<React.PropsWithChildren<{}>> = ({ children }) => <div>{children}</div>;
|
|
24
24
|
StubLayout.displayName = 'StubLayout';
|
|
25
25
|
|
|
26
26
|
jest.mock('../hooks');
|
|
27
27
|
jest.mock('./PiralRoutes');
|
|
28
28
|
|
|
29
29
|
const state = {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
30
|
+
app: {
|
|
31
|
+
error: undefined,
|
|
32
|
+
loading: true,
|
|
33
|
+
},
|
|
34
|
+
components: {
|
|
35
|
+
ErrorInfo: StubErrorInfo,
|
|
36
|
+
LoadingIndicator: StubLoader,
|
|
37
|
+
Router: StubRouter,
|
|
38
|
+
Layout: StubLayout,
|
|
39
|
+
},
|
|
40
|
+
registry: {
|
|
41
|
+
pages: {},
|
|
42
|
+
extensions: {},
|
|
43
|
+
},
|
|
44
|
+
portals: {},
|
|
45
|
+
routes: {},
|
|
46
|
+
provider: undefined,
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
(hooks as any).useGlobalState = (select: any) => select(state);
|
|
50
50
|
|
|
51
|
-
(routes as any).PiralRoutes = ({
|
|
51
|
+
(routes as any).PiralRoutes = ({}) => <StubDashboard />;
|
|
52
52
|
|
|
53
53
|
describe('Portal Module', () => {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
54
|
+
it('In this test window should be undefined', () => {
|
|
55
|
+
state.app.loading = false;
|
|
56
|
+
state.app.error = undefined;
|
|
57
|
+
const node = render(<PiralView children={undefined} />);
|
|
58
|
+
expect(typeof window).toBe('undefined');
|
|
59
|
+
expect(node.length).toBe(1);
|
|
60
|
+
});
|
|
61
61
|
});
|
|
@@ -4,7 +4,7 @@ import { PortalRenderer } from './PortalRenderer';
|
|
|
4
4
|
import { ForeignComponentContainer } from './ForeignComponentContainer';
|
|
5
5
|
import { useGlobalStateContext } from '../hooks';
|
|
6
6
|
import { convertComponent, none } from '../utils';
|
|
7
|
-
import { AnyComponent, ComponentConverters, ForeignComponent, PiletApi, BaseComponentProps } from '../types';
|
|
7
|
+
import type { AnyComponent, ComponentConverters, ForeignComponent, PiletApi, BaseComponentProps } from '../types';
|
|
8
8
|
|
|
9
9
|
// this is an arbitrary start number to have 6 digits
|
|
10
10
|
let portalIdBase = 123456;
|
package/src/hooks/setter.test.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { act } from 'react-dom/test-utils';
|
|
3
|
-
import {
|
|
3
|
+
import { createRoot } from 'react-dom/client';
|
|
4
4
|
import { useSetter } from './setter';
|
|
5
5
|
|
|
6
6
|
describe('UseSetter Hook Module', () => {
|
|
@@ -12,7 +12,8 @@ describe('UseSetter Hook Module', () => {
|
|
|
12
12
|
return null;
|
|
13
13
|
};
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
const root = createRoot(document.body.appendChild(document.createElement('div')));
|
|
16
|
+
root.render(React.createElement(MyComponent));
|
|
16
17
|
await act(() => Promise.resolve());
|
|
17
18
|
expect(cb).toHaveBeenCalled();
|
|
18
19
|
});
|
package/src/state/withApi.tsx
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { __RouterContext } from 'react-router';
|
|
3
2
|
import { ErrorBoundary, wrapComponent } from '../components';
|
|
4
3
|
import { defaultRender } from '../utils';
|
|
5
4
|
import { AnyComponent, Errors, PiletApi, BaseComponentProps, GlobalStateContext } from '../types';
|