piral-core 0.14.8-beta.3490 → 0.14.8-beta.3509

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.
Files changed (66) hide show
  1. package/esm/Piral.d.ts +2 -2
  2. package/esm/Piral.js +1 -1
  3. package/esm/Piral.js.map +1 -1
  4. package/esm/components/Mediator.js +11 -8
  5. package/esm/components/Mediator.js.map +1 -1
  6. package/esm/components/ResponsiveLayout.js +3 -3
  7. package/esm/components/ResponsiveLayout.js.map +1 -1
  8. package/esm/components/SetComponent.js +2 -2
  9. package/esm/components/SetComponent.js.map +1 -1
  10. package/esm/components/SetError.js +2 -2
  11. package/esm/components/SetError.js.map +1 -1
  12. package/esm/components/SetProvider.js +2 -2
  13. package/esm/components/SetProvider.js.map +1 -1
  14. package/esm/components/SetRedirect.js +2 -2
  15. package/esm/components/SetRedirect.js.map +1 -1
  16. package/esm/components/SetRoute.js +2 -2
  17. package/esm/components/SetRoute.js.map +1 -1
  18. package/esm/createInstance.d.ts +2 -2
  19. package/esm/createInstance.js +3 -1
  20. package/esm/createInstance.js.map +1 -1
  21. package/esm/modules/api.js +35 -7
  22. package/esm/modules/api.js.map +1 -1
  23. package/esm/state/withApi.js +2 -3
  24. package/esm/state/withApi.js.map +1 -1
  25. package/esm/types/instance.d.ts +18 -3
  26. package/lib/Piral.d.ts +2 -2
  27. package/lib/Piral.js +1 -1
  28. package/lib/Piral.js.map +1 -1
  29. package/lib/components/Mediator.js +10 -7
  30. package/lib/components/Mediator.js.map +1 -1
  31. package/lib/components/ResponsiveLayout.js +2 -2
  32. package/lib/components/ResponsiveLayout.js.map +1 -1
  33. package/lib/components/SetComponent.js +1 -1
  34. package/lib/components/SetComponent.js.map +1 -1
  35. package/lib/components/SetError.js +1 -1
  36. package/lib/components/SetError.js.map +1 -1
  37. package/lib/components/SetProvider.js +1 -1
  38. package/lib/components/SetProvider.js.map +1 -1
  39. package/lib/components/SetRedirect.js +1 -1
  40. package/lib/components/SetRedirect.js.map +1 -1
  41. package/lib/components/SetRoute.js +1 -1
  42. package/lib/components/SetRoute.js.map +1 -1
  43. package/lib/createInstance.d.ts +2 -2
  44. package/lib/createInstance.js +3 -1
  45. package/lib/createInstance.js.map +1 -1
  46. package/lib/modules/api.js +35 -7
  47. package/lib/modules/api.js.map +1 -1
  48. package/lib/state/withApi.js +1 -2
  49. package/lib/state/withApi.js.map +1 -1
  50. package/lib/types/instance.d.ts +18 -3
  51. package/package.json +4 -4
  52. package/src/Piral.tsx +3 -3
  53. package/src/actions/app.ts +1 -1
  54. package/src/components/Mediator.test.tsx +4 -3
  55. package/src/components/Mediator.tsx +15 -8
  56. package/src/components/ResponsiveLayout.test.tsx +15 -5
  57. package/src/components/ResponsiveLayout.tsx +3 -3
  58. package/src/components/SetComponent.tsx +2 -2
  59. package/src/components/SetError.tsx +2 -2
  60. package/src/components/SetProvider.tsx +2 -2
  61. package/src/components/SetRedirect.tsx +2 -2
  62. package/src/components/SetRoute.tsx +2 -2
  63. package/src/createInstance.tsx +5 -2
  64. package/src/modules/api.ts +40 -7
  65. package/src/state/withApi.tsx +2 -3
  66. package/src/types/instance.ts +19 -3
@@ -6,6 +6,7 @@ const piral_base_1 = require("piral-base");
6
6
  const modules_1 = require("./modules");
7
7
  const state_1 = require("./state");
8
8
  const helpers_1 = require("./helpers");
9
+ const utils_1 = require("./utils");
9
10
  /**
10
11
  * Creates a new PiralInstance component, which can be used for
11
12
  * bootstrapping the application easily.
@@ -27,7 +28,7 @@ render(app, document.querySelector('#app'));
27
28
  ```
28
29
  */
29
30
  function createInstance(config = {}) {
30
- const { state, actions, availablePilets = [], plugins, requestPilets = modules_1.defaultModuleRequester, loaderConfig, async = false, shareDependencies = modules_1.defaultDependencySelector, loadPilet, loaders, debug, apiFactory = modules_1.defaultApiFactory, } = config;
31
+ const { id = (0, utils_1.generateId)(), state, actions, availablePilets = [], plugins, requestPilets = modules_1.defaultModuleRequester, loaderConfig, async = false, shareDependencies = modules_1.defaultDependencySelector, loadPilet, loaders, debug, apiFactory = modules_1.defaultApiFactory, } = config;
31
32
  const globalState = (0, state_1.createGlobalState)(state);
32
33
  const events = (0, piral_base_1.createListener)(globalState);
33
34
  const context = (0, state_1.createActions)(globalState, events);
@@ -56,6 +57,7 @@ function createInstance(config = {}) {
56
57
  }
57
58
  context.options = options;
58
59
  return (0, tslib_1.__assign)(events, {
60
+ id,
59
61
  createApi,
60
62
  context,
61
63
  root,
@@ -1 +1 @@
1
- {"version":3,"file":"createInstance.js","sourceRoot":"","sources":["../src/createInstance.tsx"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,2CAAuF;AACvF,uCAAiG;AACjG,mCAA2E;AAC3E,uCAA+C;AAG/C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,cAAc,CAAC,SAA6B,EAAE;IAC5D,MAAM,EACJ,KAAK,EACL,OAAO,EACP,eAAe,GAAG,EAAE,EACpB,OAAO,EACP,aAAa,GAAG,gCAAsB,EACtC,YAAY,EACZ,KAAK,GAAG,KAAK,EACb,iBAAiB,GAAG,mCAAyB,EAC7C,SAAS,EACT,OAAO,EACP,KAAK,EACL,UAAU,GAAG,2BAAiB,GAC/B,GAAG,MAAM,CAAC;IACX,MAAM,WAAW,GAAG,IAAA,yBAAiB,EAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAA,2BAAc,EAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAA,qBAAa,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,OAAO,IAAI,EAAE,CAAC;IACrC,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACtF,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,SAAS,CAAC;QACrB,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO;QAClD,IAAI,EAAE,EAAE;KACT,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAA,4BAAkB,EAAC;QACjC,OAAO;QACP,SAAS;QACT,OAAO;QACP,SAAS;QACT,eAAe;QACf,YAAY;QACZ,iBAAiB;QACjB,QAAQ,EAAE,IAAA,mBAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,4BAAe,CAAC,CAAC,CAAC,6BAAgB;QAC5E,aAAa;QACb,KAAK;KACN,CAAC,CAAC;IAEH,IAAI,OAAO,EAAE;QACX,IAAA,sBAAc,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;KAClC;IAED,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;IAE1B,OAAO,IAAA,gBAAQ,EAAC,MAAM,EAAE;QACtB,SAAS;QACT,OAAO;QACP,IAAI;QACJ,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAnDD,wCAmDC"}
1
+ {"version":3,"file":"createInstance.js","sourceRoot":"","sources":["../src/createInstance.tsx"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,2CAAuF;AACvF,uCAAiG;AACjG,mCAA2E;AAC3E,uCAA+C;AAC/C,mCAAqC;AAGrC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,cAAc,CAAC,SAA+B,EAAE;IAC9D,MAAM,EACJ,EAAE,GAAG,IAAA,kBAAU,GAAE,EACjB,KAAK,EACL,OAAO,EACP,eAAe,GAAG,EAAE,EACpB,OAAO,EACP,aAAa,GAAG,gCAAsB,EACtC,YAAY,EACZ,KAAK,GAAG,KAAK,EACb,iBAAiB,GAAG,mCAAyB,EAC7C,SAAS,EACT,OAAO,EACP,KAAK,EACL,UAAU,GAAG,2BAAiB,GAC/B,GAAG,MAAM,CAAC;IACX,MAAM,WAAW,GAAG,IAAA,yBAAiB,EAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAA,2BAAc,EAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAA,qBAAa,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,OAAO,IAAI,EAAE,CAAC;IACrC,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACtF,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,SAAS,CAAC;QACrB,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO;QAClD,IAAI,EAAE,EAAE;KACT,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAA,4BAAkB,EAAC;QACjC,OAAO;QACP,SAAS;QACT,OAAO;QACP,SAAS;QACT,eAAe;QACf,YAAY;QACZ,iBAAiB;QACjB,QAAQ,EAAE,IAAA,mBAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,4BAAe,CAAC,CAAC,CAAC,6BAAgB;QAC5E,aAAa;QACb,KAAK;KACN,CAAC,CAAC;IAEH,IAAI,OAAO,EAAE;QACX,IAAA,sBAAc,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;KAClC;IAED,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;IAE1B,OAAO,IAAA,gBAAQ,EAAC,MAAM,EAAE;QACtB,EAAE;QACF,SAAS;QACT,OAAO;QACP,IAAI;QACJ,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AArDD,wCAqDC"}
@@ -11,11 +11,32 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
11
11
  super(...arguments);
12
12
  this.dispose = utils_1.noop;
13
13
  this.update = utils_1.noop;
14
+ this.props = {
15
+ name: this.getAttribute('name'),
16
+ params: (0, utils_1.tryParseJson)(this.getAttribute('params')),
17
+ empty: undefined,
18
+ };
14
19
  }
15
- getProps() {
16
- const name = this.getAttribute('name');
17
- const params = (0, utils_1.tryParseJson)(this.getAttribute('params'));
18
- return { name, params };
20
+ get params() {
21
+ return this.props.params;
22
+ }
23
+ set params(value) {
24
+ this.props.params = value;
25
+ this.update(this.props);
26
+ }
27
+ get name() {
28
+ return this.props.name;
29
+ }
30
+ set name(value) {
31
+ this.props.name = value;
32
+ this.update(this.props);
33
+ }
34
+ get empty() {
35
+ return this.props.empty;
36
+ }
37
+ set empty(value) {
38
+ this.props.empty = value;
39
+ this.update(this.props);
19
40
  }
20
41
  connectedCallback() {
21
42
  if (this.isConnected) {
@@ -23,7 +44,7 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
23
44
  bubbles: true,
24
45
  detail: {
25
46
  target: this,
26
- props: this.getProps(),
47
+ props: this.props,
27
48
  },
28
49
  }));
29
50
  }
@@ -33,8 +54,15 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
33
54
  this.dispose = utils_1.noop;
34
55
  this.update = utils_1.noop;
35
56
  }
36
- attributeChangedCallback() {
37
- this.update(this.getProps());
57
+ attributeChangedCallback(name, _, newValue) {
58
+ switch (name) {
59
+ case 'name':
60
+ this.name = newValue;
61
+ break;
62
+ case 'params':
63
+ this.params = (0, utils_1.tryParseJson)(newValue);
64
+ break;
65
+ }
38
66
  }
39
67
  static get observedAttributes() {
40
68
  return ['name', 'params'];
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/modules/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/modules/api.ts"],"names":[],"mappings":"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"}
@@ -66,8 +66,7 @@ function wrapReactComponent(Component, stasisOptions, piral, Wrapper) {
66
66
  }
67
67
  function wrapForeignComponent(component, stasisOptions, piral, Wrapper) {
68
68
  return React.memo((props) => {
69
- const { destroyPortal } = (0, hooks_1.useActions)();
70
- const { state, readState } = (0, hooks_1.useGlobalStateContext)();
69
+ const { state, readState, destroyPortal } = (0, hooks_1.useGlobalStateContext)();
71
70
  const router = React.useContext(react_router_1.__RouterContext);
72
71
  const id = React.useMemo(() => (portalIdBase++).toString(26), utils_1.none);
73
72
  const context = React.useMemo(() => ({ router, state, readState }), [router, state]);
@@ -1 +1 @@
1
- {"version":3,"file":"withApi.js","sourceRoot":"","sources":["../../src/state/withApi.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"withApi.js","sourceRoot":"","sources":["../../src/state/withApi.tsx"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  import type { PiletApi, PiletApiCreator, LoadPiletsOptions, EventEmitter } from 'piral-base';
2
2
  import type { GlobalStateContext } from './state';
3
3
  import type { LayoutBreakpoints } from './layout';
4
+ import { PiralConfiguration } from './config';
4
5
  /**
5
6
  * The props of the Piral component.
6
7
  */
7
- export interface PortalProps {
8
+ export interface PiralProps {
8
9
  /**
9
10
  * The specific Piral instance to be used.
10
11
  */
@@ -15,10 +16,24 @@ export interface PortalProps {
15
16
  breakpoints?: LayoutBreakpoints;
16
17
  }
17
18
  /**
18
- * The PiralInstance component, which is an event emitter containing the React
19
- * functional component as well as some other utilities and helpers.
19
+ * The options for creating a new PiralInstance object.
20
+ */
21
+ export interface PiralInstanceOptions extends PiralConfiguration {
22
+ /**
23
+ * Defines the id of this instance. Used in case of multiple instances.
24
+ */
25
+ id?: string;
26
+ }
27
+ /**
28
+ * The PiralInstance object, which is an event emitter with some other
29
+ * utilities and helper. This object is the source for the React
30
+ * functional component (`Piral`).
20
31
  */
21
32
  export interface PiralInstance extends EventEmitter {
33
+ /**
34
+ * The id of the Piral instance.
35
+ */
36
+ id: string;
22
37
  /**
23
38
  * The global state context instance.
24
39
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "piral-core",
3
- "version": "0.14.8-beta.3490",
3
+ "version": "0.14.8-beta.3509",
4
4
  "description": "The core library for creating a Piral instance.",
5
5
  "keywords": [
6
6
  "portal",
@@ -50,8 +50,8 @@
50
50
  },
51
51
  "dependencies": {
52
52
  "@dbeining/react-atom": "^4.0.0",
53
- "piral-base": "0.14.8-beta.3490",
54
- "piral-debug-utils": "0.14.8-beta.3490"
53
+ "piral-base": "0.14.8-beta.3509",
54
+ "piral-debug-utils": "0.14.8-beta.3509"
55
55
  },
56
56
  "peerDependencies": {
57
57
  "react": ">=16.8.0",
@@ -78,5 +78,5 @@
78
78
  "@libre/atom",
79
79
  "@dbeining/react-atom"
80
80
  ],
81
- "gitHead": "c8a70566a926e3306ad5aee94e0f3f7b1bc3d690"
81
+ "gitHead": "309b0cc1deb3e3a7d717963913d0b834b9f484ac"
82
82
  }
package/src/Piral.tsx CHANGED
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { StateContext } from './state';
3
3
  import { createInstance } from './createInstance';
4
4
  import { PiralView, Mediator, ResponsiveLayout, PortalRenderer } from './components';
5
- import type { PortalProps } from './types';
5
+ import type { PiralProps } from './types';
6
6
 
7
7
  /**
8
8
  * Represents the Piral app shell frame. Use this component together
@@ -19,10 +19,10 @@ const app = (
19
19
  );
20
20
  ```
21
21
  */
22
- export const Piral: React.FC<PortalProps> = ({ instance = createInstance(), breakpoints, children }) => (
22
+ export const Piral: React.FC<PiralProps> = ({ instance = createInstance(), breakpoints, children }) => (
23
23
  <StateContext.Provider value={instance.context}>
24
24
  <ResponsiveLayout breakpoints={breakpoints} />
25
- <Mediator options={instance.options} />
25
+ <Mediator options={instance.options} key={instance.id} />
26
26
  <PiralView>
27
27
  <PortalRenderer id="root" />
28
28
  {children}
@@ -1,4 +1,4 @@
1
- import { ComponentType, cloneElement, createElement } from 'react';
1
+ import { ComponentType } from 'react';
2
2
  import { RouteComponentProps } from 'react-router';
3
3
  import { withKey, replaceOrAddItem, removeNested, withProvider, withRoute } from '../utils';
4
4
  import {
@@ -22,6 +22,9 @@ function createMockContainer() {
22
22
  dispatch(update) {
23
23
  swap(state, update);
24
24
  },
25
+ readState(select) {
26
+ return select(deref(state));
27
+ },
25
28
  initialize(loading, error, modules) {
26
29
  swap(state, (state) => ({
27
30
  ...state,
@@ -42,9 +45,7 @@ describe('Component Mediator', () => {
42
45
  const options = {
43
46
  createApi: jest.fn(),
44
47
  fetchPilets: () => {
45
- return new Promise<Array<PiletMetadata>>((resolve, reject) => {
46
- resolve([]);
47
- });
48
+ return new Promise<Array<PiletMetadata>>((resolve) => resolve([]));
48
49
  },
49
50
  };
50
51
  const { context } = createMockContainer();
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { LoadPiletsOptions, startLoadingPilets, PiletsLoading } from 'piral-base';
3
- import { useAction } from '../hooks';
3
+ import { useGlobalStateContext } from '../hooks';
4
4
  import { none } from '../utils';
5
5
 
6
6
  /**
@@ -17,15 +17,22 @@ export interface MediatorProps {
17
17
  * The Mediator component for interfacing with pilets loading.
18
18
  */
19
19
  export const Mediator: React.FC<MediatorProps> = ({ options }) => {
20
- const initialize = useAction('initialize');
20
+ const { initialize, readState } = useGlobalStateContext();
21
+
21
22
  React.useEffect(() => {
22
- const { connect, disconnect } = startLoadingPilets(options);
23
- const notifier: PiletsLoading = (error, pilets, loaded) => {
24
- initialize(!loaded, error, pilets);
25
- };
26
- connect(notifier);
27
- return () => disconnect(notifier);
23
+ const shouldLoad = readState(s => s.app.loading);
24
+
25
+ if (shouldLoad) {
26
+ const { connect, disconnect } = startLoadingPilets(options);
27
+ const notifier: PiletsLoading = (error, pilets, loaded) => {
28
+ initialize(!loaded, error, pilets);
29
+ };
30
+ connect(notifier);
31
+ return () => disconnect(notifier);
32
+ }
33
+
28
34
  }, none);
35
+
29
36
  // tslint:disable-next-line:no-null-keyword
30
37
  return null;
31
38
  };
@@ -19,7 +19,9 @@ StubComponent.displayName = 'StubComponent';
19
19
  describe('Responsive Module', () => {
20
20
  it('always renders the given children', () => {
21
21
  const changeTo = jest.fn();
22
- (hooks as any).useAction = () => changeTo;
22
+ (hooks as any).useGlobalStateContext = () => ({
23
+ changeLayout: changeTo,
24
+ });
23
25
  (hooks as any).useMedia = () => 'desktop';
24
26
  const node = mount(
25
27
  <ResponsiveLayout breakpoints={defaultBreakpoints}>
@@ -31,7 +33,9 @@ describe('Responsive Module', () => {
31
33
 
32
34
  it('does not call changeTo when nothing changed', () => {
33
35
  const changeTo = jest.fn();
34
- (hooks as any).useAction = () => changeTo;
36
+ (hooks as any).useGlobalStateContext = () => ({
37
+ changeLayout: changeTo,
38
+ });
35
39
  (hooks as any).useMedia = () => 'desktop';
36
40
  mount(<ResponsiveLayout breakpoints={defaultBreakpoints} />);
37
41
  expect(changeTo).not.toHaveBeenCalled();
@@ -39,7 +43,9 @@ describe('Responsive Module', () => {
39
43
 
40
44
  it('does not call changeTo when nothing changed', () => {
41
45
  const changeTo = jest.fn();
42
- (hooks as any).useAction = () => changeTo;
46
+ (hooks as any).useGlobalStateContext = () => ({
47
+ changeLayout: changeTo,
48
+ });
43
49
  (hooks as any).useMedia = () => 'desktop';
44
50
  mount(<ResponsiveLayout breakpoints={defaultBreakpoints} />);
45
51
  expect(changeTo).not.toHaveBeenCalled();
@@ -47,7 +53,9 @@ describe('Responsive Module', () => {
47
53
 
48
54
  it('does calls changeTo when someething changed (desktop -> tablet)', () => {
49
55
  const changeTo = jest.fn();
50
- (hooks as any).useAction = () => changeTo;
56
+ (hooks as any).useGlobalStateContext = () => ({
57
+ changeLayout: changeTo,
58
+ });
51
59
  (hooks as any).useMedia = () => 'tablet';
52
60
  mount(<ResponsiveLayout breakpoints={defaultBreakpoints} />);
53
61
  expect(changeTo).toHaveBeenCalledWith('tablet');
@@ -55,7 +63,9 @@ describe('Responsive Module', () => {
55
63
 
56
64
  it('does calls changeTo when someething changed (desktop -> mobile)', () => {
57
65
  const changeTo = jest.fn();
58
- (hooks as any).useAction = () => changeTo;
66
+ (hooks as any).useGlobalStateContext = () => ({
67
+ changeLayout: changeTo,
68
+ });
59
69
  (hooks as any).useMedia = () => 'mobile';
60
70
  mount(<ResponsiveLayout breakpoints={defaultBreakpoints} />);
61
71
  expect(changeTo).toHaveBeenCalledWith('mobile');
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { useMedia, useGlobalState, useAction } from '../hooks';
2
+ import { useMedia, useGlobalState, useGlobalStateContext } from '../hooks';
3
3
  import { defaultLayouts, defaultRender, defaultBreakpoints } from '../utils';
4
4
  import { LayoutBreakpoints } from '../types';
5
5
 
@@ -18,12 +18,12 @@ export interface ResponsiveLayoutProps {
18
18
  */
19
19
  export const ResponsiveLayout: React.FC<ResponsiveLayoutProps> = ({ breakpoints = defaultBreakpoints, children }) => {
20
20
  const current = useGlobalState((m) => m.app.layout) || 'desktop';
21
- const changeTo = useAction('changeLayout');
21
+ const { changeLayout } = useGlobalStateContext();
22
22
  const selected = useMedia(breakpoints, defaultLayouts, current);
23
23
 
24
24
  React.useEffect(() => {
25
25
  if (selected !== current) {
26
- changeTo(selected);
26
+ changeLayout(selected);
27
27
  }
28
28
  }, [selected]);
29
29
 
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { useAction, useSetter } from '../hooks';
2
+ import { useGlobalStateContext, useSetter } from '../hooks';
3
3
  import { ComponentsState } from '../types';
4
4
 
5
5
  /**
@@ -23,7 +23,7 @@ export function SetComponent<TKey extends keyof ComponentsState>({
23
23
  name,
24
24
  component,
25
25
  }: SetComponentProps<TKey>): React.ReactElement {
26
- const setComponent = useAction('setComponent');
26
+ const { setComponent } = useGlobalStateContext();
27
27
  useSetter(() => component && setComponent(name, component));
28
28
  // tslint:disable-next-line:no-null-keyword
29
29
  return null;
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { useAction, useSetter } from '../hooks';
2
+ import { useGlobalStateContext, useSetter } from '../hooks';
3
3
  import { ErrorComponentsState } from '../types';
4
4
 
5
5
  /**
@@ -23,7 +23,7 @@ export function SetError<TKey extends keyof ErrorComponentsState>({
23
23
  type,
24
24
  component,
25
25
  }: SetErrorProps<TKey>): React.ReactElement {
26
- const setErrorComponent = useAction('setErrorComponent');
26
+ const { setErrorComponent } = useGlobalStateContext();
27
27
  useSetter(() => component && setErrorComponent(type, component));
28
28
  // tslint:disable-next-line:no-null-keyword
29
29
  return null;
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { useAction, useSetter } from '../hooks';
2
+ import { useGlobalStateContext, useSetter } from '../hooks';
3
3
 
4
4
  /**
5
5
  * The props for the SetProvider component.
@@ -15,7 +15,7 @@ export interface SetProviderProps {
15
15
  * The component capable of setting a global provider at mounting.
16
16
  */
17
17
  export function SetProvider({ provider }: SetProviderProps): React.ReactElement {
18
- const includeProvider = useAction('includeProvider');
18
+ const {includeProvider} = useGlobalStateContext();
19
19
  useSetter(() => provider && includeProvider(provider));
20
20
  // tslint:disable-next-line:no-null-keyword
21
21
  return null;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { Redirect } from 'react-router';
3
- import { useAction, useSetter } from '../hooks';
3
+ import { useGlobalStateContext, useSetter } from '../hooks';
4
4
 
5
5
  /**
6
6
  * The props for the SetRedirect component.
@@ -20,7 +20,7 @@ export interface SetRedirectProps {
20
20
  * The component capable of setting a global redirect route at mounting.
21
21
  */
22
22
  export function SetRedirect({ from, to }: SetRedirectProps): React.ReactElement {
23
- const setRoute = useAction('setRoute');
23
+ const { setRoute } = useGlobalStateContext();
24
24
  useSetter(() => setRoute(from, () => <Redirect to={to} />));
25
25
  // tslint:disable-next-line:no-null-keyword
26
26
  return null;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { RouteComponentProps } from 'react-router';
3
- import { useAction, useSetter } from '../hooks';
3
+ import { useGlobalStateContext, useSetter } from '../hooks';
4
4
 
5
5
  /**
6
6
  * The props for the SetRoute component.
@@ -20,7 +20,7 @@ export interface SetRouteProps<T = {}> {
20
20
  * The component capable of setting a global route at mounting.
21
21
  */
22
22
  export function SetRoute<T = {}>({ path, component }: SetRouteProps<T>): React.ReactElement {
23
- const setRoute = useAction('setRoute');
23
+ const { setRoute } = useGlobalStateContext();
24
24
  useSetter(() => component && setRoute(path, component));
25
25
  // tslint:disable-next-line:no-null-keyword
26
26
  return null;
@@ -3,7 +3,8 @@ import { blazingStrategy, standardStrategy, createListener, isfunc } from 'piral
3
3
  import { defaultApiFactory, defaultDependencySelector, defaultModuleRequester } from './modules';
4
4
  import { createGlobalState, createActions, includeActions } from './state';
5
5
  import { createPiletOptions } from './helpers';
6
- import type { PiralConfiguration, PiralInstance } from './types';
6
+ import { generateId } from './utils';
7
+ import type { PiralInstanceOptions, PiralInstance } from './types';
7
8
 
8
9
  /**
9
10
  * Creates a new PiralInstance component, which can be used for
@@ -25,8 +26,9 @@ const app = (
25
26
  render(app, document.querySelector('#app'));
26
27
  ```
27
28
  */
28
- export function createInstance(config: PiralConfiguration = {}): PiralInstance {
29
+ export function createInstance(config: PiralInstanceOptions = {}): PiralInstance {
29
30
  const {
31
+ id = generateId(),
30
32
  state,
31
33
  actions,
32
34
  availablePilets = [],
@@ -71,6 +73,7 @@ export function createInstance(config: PiralConfiguration = {}): PiralInstance {
71
73
  context.options = options;
72
74
 
73
75
  return __assign(events, {
76
+ id,
74
77
  createApi,
75
78
  context,
76
79
  root,
@@ -13,11 +13,37 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
13
13
  class PiralExtension extends HTMLElement {
14
14
  dispose: Disposable = noop;
15
15
  update: Updatable = noop;
16
+ props = {
17
+ name: this.getAttribute('name'),
18
+ params: tryParseJson(this.getAttribute('params')),
19
+ empty: undefined,
20
+ };
21
+
22
+ get params() {
23
+ return this.props.params;
24
+ }
25
+
26
+ set params(value) {
27
+ this.props.params = value;
28
+ this.update(this.props);
29
+ }
30
+
31
+ get name() {
32
+ return this.props.name;
33
+ }
34
+
35
+ set name(value) {
36
+ this.props.name = value;
37
+ this.update(this.props);
38
+ }
16
39
 
17
- getProps() {
18
- const name = this.getAttribute('name');
19
- const params = tryParseJson(this.getAttribute('params'));
20
- return { name, params };
40
+ get empty() {
41
+ return this.props.empty;
42
+ }
43
+
44
+ set empty(value) {
45
+ this.props.empty = value;
46
+ this.update(this.props);
21
47
  }
22
48
 
23
49
  connectedCallback() {
@@ -27,7 +53,7 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
27
53
  bubbles: true,
28
54
  detail: {
29
55
  target: this,
30
- props: this.getProps(),
56
+ props: this.props,
31
57
  },
32
58
  }),
33
59
  );
@@ -40,8 +66,15 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
40
66
  this.update = noop;
41
67
  }
42
68
 
43
- attributeChangedCallback() {
44
- this.update(this.getProps());
69
+ attributeChangedCallback(name: string, _: any, newValue: any) {
70
+ switch (name) {
71
+ case 'name':
72
+ this.name = newValue;
73
+ break;
74
+ case 'params':
75
+ this.params = tryParseJson(newValue);
76
+ break;
77
+ }
45
78
  }
46
79
 
47
80
  static get observedAttributes() {
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { isfunc } from 'piral-base';
3
3
  import { __RouterContext } from 'react-router';
4
4
  import { PiralError, PiralLoadingIndicator, ErrorBoundary, ErrorBoundaryOptions, PortalRenderer } from '../components';
5
- import { useActions, useGlobalStateContext } from '../hooks';
5
+ import { useGlobalStateContext } from '../hooks';
6
6
  import { defaultRender, convertComponent, none } from '../utils';
7
7
  import {
8
8
  AnyComponent,
@@ -107,8 +107,7 @@ function wrapForeignComponent<T>(
107
107
  Wrapper: React.ComponentType<any>,
108
108
  ) {
109
109
  return React.memo((props: T) => {
110
- const { destroyPortal } = useActions();
111
- const { state, readState } = useGlobalStateContext();
110
+ const { state, readState, destroyPortal } = useGlobalStateContext();
112
111
  const router = React.useContext(__RouterContext);
113
112
  const id = React.useMemo(() => (portalIdBase++).toString(26), none);
114
113
  const context = React.useMemo(() => ({ router, state, readState }), [router, state]);
@@ -1,11 +1,12 @@
1
1
  import type { PiletApi, PiletApiCreator, LoadPiletsOptions, EventEmitter } from 'piral-base';
2
2
  import type { GlobalStateContext } from './state';
3
3
  import type { LayoutBreakpoints } from './layout';
4
+ import { PiralConfiguration } from './config';
4
5
 
5
6
  /**
6
7
  * The props of the Piral component.
7
8
  */
8
- export interface PortalProps {
9
+ export interface PiralProps {
9
10
  /**
10
11
  * The specific Piral instance to be used.
11
12
  */
@@ -17,10 +18,25 @@ export interface PortalProps {
17
18
  }
18
19
 
19
20
  /**
20
- * The PiralInstance component, which is an event emitter containing the React
21
- * functional component as well as some other utilities and helpers.
21
+ * The options for creating a new PiralInstance object.
22
+ */
23
+ export interface PiralInstanceOptions extends PiralConfiguration {
24
+ /**
25
+ * Defines the id of this instance. Used in case of multiple instances.
26
+ */
27
+ id?: string;
28
+ }
29
+
30
+ /**
31
+ * The PiralInstance object, which is an event emitter with some other
32
+ * utilities and helper. This object is the source for the React
33
+ * functional component (`Piral`).
22
34
  */
23
35
  export interface PiralInstance extends EventEmitter {
36
+ /**
37
+ * The id of the Piral instance.
38
+ */
39
+ id: string;
24
40
  /**
25
41
  * The global state context instance.
26
42
  */