@uxland/primary-shell 7.14.0 → 7.15.1

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.
@@ -1 +1,4 @@
1
- export declare const initializeShell: (hostAppElement: HTMLElement) => void;
1
+ export interface IShellParams {
2
+ visitId: string;
3
+ }
4
+ export declare const initializeShell: (hostAppElement: HTMLElement, shellParams?: IShellParams) => void;
@@ -1,3 +1,4 @@
1
1
  import { PrimariaApi } from '../api/api';
2
- export declare const useFeatures: (api: PrimariaApi) => void;
2
+ import { IShellParams } from '../bootstrapper';
3
+ export declare const useFeatures: (api: PrimariaApi, shellParams?: IShellParams) => void;
3
4
  export declare const disposeFeatures: (api: PrimariaApi) => void;
@@ -1,3 +1,4 @@
1
1
  import { PrimariaApi } from '../../../api/api';
2
- export declare const useFinalizeVisit: (api: PrimariaApi) => void;
2
+ import { IShellParams } from '../../../bootstrapper';
3
+ export declare const useFinalizeVisit: (api: PrimariaApi, shellParams?: IShellParams) => void;
3
4
  export declare const disposeFinalizeVisit: () => void;
@@ -1,8 +1,7 @@
1
1
  import { LitElement } from 'lit';
2
2
  export declare class FinalizeVisitButton extends LitElement {
3
+ constructor(visitId: string);
3
4
  render(): import('lit').TemplateResult<1>;
4
- connectedCallback(): void;
5
- visitId: string | undefined;
6
- getVisitId(): Promise<void>;
5
+ visitId: string;
7
6
  finalizeVisitHandler(): void;
8
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxland/primary-shell",
3
- "version": "7.14.0",
3
+ "version": "7.15.1",
4
4
  "description": "Primaria Shell",
5
5
  "author": "UXLand <dev@uxland.es>",
6
6
  "homepage": "https://github.com/uxland/harmonix/tree/app#readme",
@@ -19,7 +19,6 @@ export const template = (props: PrimariaShellHeader) => {
19
19
  <div id="header-region-container"></div>
20
20
  </div>
21
21
  <div class="header__right">
22
- <finalize-visit-button></finalize-visit-button>
23
22
  <div id="header-actions-region-container"></div>
24
23
  <header-divider></header-divider>
25
24
  ${when(
@@ -4,10 +4,14 @@ import { useFeatures } from "./features/bootstrapper";
4
4
  import { useLocalization } from "./locales";
5
5
  import { useUI } from "./UI/bootstrapper";
6
6
 
7
- export const initializeShell = (hostAppElement: HTMLElement) => {
7
+ export interface IShellParams {
8
+ visitId: string;
9
+ }
10
+
11
+ export const initializeShell = (hostAppElement: HTMLElement, shellParams?: IShellParams) => {
8
12
  useLocalization(shellApi);
9
13
  useUI();
10
- useFeatures(shellApi);
14
+ useFeatures(shellApi, shellParams);
11
15
  const shell = new PrimariaShell();
12
16
  hostAppElement.appendChild(shell as any);
13
17
  };
@@ -1,5 +1,6 @@
1
1
  import { mediatorSettings } from "mediatr-ts";
2
2
  import { PrimariaApi } from "../api/api";
3
+ import { IShellParams } from "../bootstrapper";
3
4
  import { container } from "../infrastructure/ioc/container";
4
5
  import { TYPES } from "../infrastructure/ioc/types";
5
6
  import { useExitShell, disposeExitShell } from "./exit/bootstrapper";
@@ -8,12 +9,12 @@ import { GetUserInfo } from "./get-user-info/request";
8
9
  import { disposeGetVisitId, useGetVisitId } from "./visit/get-visit-id/bootstrapper";
9
10
  import { disposeFinalizeVisit, useFinalizeVisit } from "./visit/finalize-visit/bootstrapper";
10
11
 
11
- export const useFeatures = (api: PrimariaApi) => {
12
+ export const useFeatures = (api: PrimariaApi, shellParams?: IShellParams) => {
12
13
  container.bind(TYPES.primaryApi).toConstantValue(api);
13
14
  useGetUserInfo(api);
14
15
  useExitShell(api);
15
16
  useGetVisitId(api);
16
- useFinalizeVisit(api);
17
+ useFinalizeVisit(api, shellParams);
17
18
  api.broker.send(new GetUserInfo());
18
19
  };
19
20
 
@@ -1,15 +1,24 @@
1
1
  import { PrimariaApi } from "../../../api/api";
2
+ import { IShellParams } from "../../../bootstrapper";
2
3
  import { BrokerDisposableHandler } from "../../../api/broker/primaria-broker";
3
4
  import { container } from "../../../infrastructure/ioc/container";
4
5
  import { registerRequest } from "../../utils";
5
6
  import { FinalizeVisitHandler } from "./handler";
6
7
  import { FinalizeVisit } from "./request";
8
+ import { FinalizeVisitButton } from "./component/finalize-visit-button";
7
9
 
8
10
  let request: BrokerDisposableHandler;
9
11
 
10
- export const useFinalizeVisit = (api: PrimariaApi) => {
12
+ export const useFinalizeVisit = (api: PrimariaApi, shellParams?: IShellParams) => {
11
13
  disposeFinalizeVisit();
12
- request = registerRequest(api, container)(FinalizeVisit, FinalizeVisitHandler);
14
+ if (shellParams?.visitId) {
15
+ api.regionManager.registerView(api.regionManager.regions.shell.headerRightActions, {
16
+ id: "finalize-visit-button",
17
+ sortHint: "0001",
18
+ factory: () => Promise.resolve(new FinalizeVisitButton(shellParams.visitId)),
19
+ });
20
+ request = registerRequest(api, container)(FinalizeVisit, FinalizeVisitHandler);
21
+ }
13
22
  };
14
23
 
15
24
  export const disposeFinalizeVisit = () => {
@@ -1,32 +1,21 @@
1
1
  import { LitElement, html } from "lit";
2
2
  import { template } from "./template";
3
3
  import { property } from "lit/decorators.js";
4
- import { GetVisitId } from "../../get-visit-id/request";
5
4
  import { shellApi } from "../../../../api/api";
6
5
  import { FinalizeVisit } from "../request";
7
6
 
8
7
  export class FinalizeVisitButton extends LitElement {
9
- render() {
10
- return html`${template(this)}`;
8
+ constructor(visitId: string) {
9
+ super();
10
+ this.visitId = visitId;
11
11
  }
12
12
 
13
- connectedCallback() {
14
- super.connectedCallback();
15
- this.getVisitId();
13
+ render() {
14
+ return html`${template(this)}`;
16
15
  }
17
16
 
18
- @property({ type: String })
19
- visitId: string | undefined;
20
-
21
- async getVisitId() {
22
- try {
23
- await shellApi.broker.send(new GetVisitId()).then((visitIdResponse: string | undefined) => {
24
- this.visitId = visitIdResponse;
25
- });
26
- } catch (error) {
27
- console.error(error.message);
28
- }
29
- }
17
+ @property({ type: String })
18
+ visitId: string;
30
19
 
31
20
  finalizeVisitHandler() {
32
21
  if (this.visitId) {