@uxland/primary-shell 7.29.3 → 7.29.5

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.
@@ -15,10 +15,8 @@ export declare class PdfViewerManager {
15
15
  constructor(broker: PrimariaBroker, notificationService: PrimariaNotificationService);
16
16
  private pdfs;
17
17
  private activePdf;
18
- private hasBeenActivated;
19
18
  add(pdfName: string, data: PdfData): void;
20
19
  delete(pdfId: string): void;
21
20
  getPdfs(): IPdfDocument[];
22
- private registerNavButton;
23
21
  }
24
22
  export declare const createPdfViewerManager: (broker: PrimariaBroker, notificationService: PrimariaNotificationService) => PdfViewerManager;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxland/primary-shell",
3
- "version": "7.29.3",
3
+ "version": "7.29.5",
4
4
  "description": "Primaria Shell",
5
5
  "author": "UXLand <dev@uxland.es>",
6
6
  "homepage": "https://github.com/uxland/harmonix/tree/app#readme",
@@ -1,5 +1,5 @@
1
1
  import { shellApi } from "../../api/api";
2
- import { registerPDFVisorMainView } from "../../api/pdf-viewer-manager/handle-views";
2
+ import { registerPDFVisorMainView, registerPdfViewerNavItem } from "../../api/pdf-viewer-manager/handle-views";
3
3
  import { registerAdministrativeNavMenuViews } from "./administrative-nav-menu";
4
4
  import { registerDoctorNavMenuViews } from "./doctor-nav-menu";
5
5
  import { registerDoctorQuickActionViews } from "./doctor-quick-action-menu";
@@ -8,8 +8,13 @@ const registerMainViews = () => {
8
8
  registerPDFVisorMainView();
9
9
  };
10
10
 
11
+ const registerPdfViewerNavButton = () => {
12
+ registerPdfViewerNavItem();
13
+ };
14
+
11
15
  export const useInternalViews = () => {
12
16
  registerMainViews();
17
+ registerPdfViewerNavButton();
13
18
  const isUserRoleAdministrative = shellApi.userManager.isUserRoleAdministrative();
14
19
  if (isUserRoleAdministrative) registerAdministrativeNavMenuViews();
15
20
  else {
@@ -3,12 +3,11 @@ import { translate } from "../../locales";
3
3
  import { PrimariaNavItem } from "../../UI/shared-components/primaria-nav-item/primaria-nav-item";
4
4
  import { shellApi } from "../api";
5
5
  import { PdfVisor } from "./pdf-visor/pdf-visor";
6
- import { showNavItemTooltip } from "../../UI/components/navigation-tooltip/tooltip-manager";
7
- import { primariaShellId } from "../../constants";
8
6
 
9
7
  export const registerPdfViewerNavItem = () => {
10
8
  shellApi.regionManager.registerView(shellApi.regionManager.regions.shell.navigationMenu, {
11
9
  id: pdfViewerId,
10
+ sortHint: "0110",
12
11
  factory: () => {
13
12
  const menuItem = new PrimariaNavItem({
14
13
  icon: "picture_as_pdf",
@@ -20,12 +19,6 @@ export const registerPdfViewerNavItem = () => {
20
19
  return Promise.resolve(menuItem);
21
20
  },
22
21
  });
23
-
24
- // Show tooltip when PDF viewer is registered
25
- setTimeout(() => {
26
- const navItemKey = `${primariaShellId}::${pdfViewerId}`;
27
- showNavItemTooltip(navItemKey, translate("pdfManager.tooltipMessage"));
28
- }, 100);
29
22
  };
30
23
 
31
24
  export const registerPDFVisorMainView = () => {
@@ -36,9 +36,9 @@ describe("PdfViewerManager", () => {
36
36
  success: vi.fn(),
37
37
  };
38
38
 
39
- manager = createPdfViewerManager(broker, notificationService);
40
-
41
39
  vi.clearAllMocks();
40
+
41
+ manager = createPdfViewerManager(broker, notificationService);
42
42
  });
43
43
 
44
44
  it("should show error if neither url nor b64 is provided", () => {
@@ -120,16 +120,19 @@ describe("PdfViewerManager", () => {
120
120
  vi.useRealTimers();
121
121
  });
122
122
 
123
- it("should call registerNavButton only once", () => {
123
+ it("should not call registerNavButton when adding PDFs", () => {
124
+ // registerPdfViewerNavItem is now called from UI/internal-views, not from the manager
124
125
  manager.add("Doc1", { url: "u" });
125
126
  manager.add("Doc2", { url: "u2" });
126
127
 
127
- expect(registerPdfViewerNavItem).toHaveBeenCalledTimes(1);
128
+ expect(registerPdfViewerNavItem).not.toHaveBeenCalled();
128
129
  });
129
130
 
130
131
  it("should delete a pdf and publish deletion event", () => {
131
132
  manager.add("Doc1", { url: "u" });
132
- const id = manager.getPdfs()[0].id;
133
+ const pdfs = manager.getPdfs();
134
+ expect(pdfs.length).toBeGreaterThan(0);
135
+ const id = pdfs[0]!.id;
133
136
 
134
137
  manager.delete(id);
135
138
 
@@ -139,7 +142,9 @@ describe("PdfViewerManager", () => {
139
142
 
140
143
  it("should clear activePdf if deleted", () => {
141
144
  manager.add("Doc1", { url: "u" });
142
- const id = manager.getPdfs()[0].id;
145
+ const pdfs = manager.getPdfs();
146
+ expect(pdfs.length).toBeGreaterThan(0);
147
+ const id = pdfs[0]!.id;
143
148
 
144
149
  // simula que esté activo
145
150
  (manager as any).activePdf = { id } as any;
@@ -1,6 +1,5 @@
1
1
  import { generateId } from "@primaria/plugins-core";
2
2
  import { customElement } from "lit/decorators.js";
3
- import { registerPdfViewerNavItem } from "./handle-views";
4
3
  import { translate } from "../../locales";
5
4
  import { PrimariaBroker } from "../broker/primaria-broker";
6
5
  import { PrimariaNotificationService } from "../notification-service/notification-service";
@@ -37,7 +36,6 @@ export class PdfViewerManager {
37
36
 
38
37
  private pdfs: IPdfDocument[] = [];
39
38
  private activePdf: IPdfDocument | null = null;
40
- private hasBeenActivated = false;
41
39
 
42
40
  add(pdfName: string, data: PdfData) {
43
41
  const id = generateId();
@@ -51,10 +49,6 @@ export class PdfViewerManager {
51
49
  this.notificationService.error(translate("pdfManager.duplicatedSource"));
52
50
  return;
53
51
  }
54
- if (!this.hasBeenActivated) {
55
- this.registerNavButton();
56
- this.hasBeenActivated = true;
57
- }
58
52
  if (this.pdfs.some((p) => p.pdfName === pdf.pdfName)) {
59
53
  this.notificationService.warning(translate("pdfManager.alreadyUploaded"));
60
54
  } else {
@@ -82,10 +76,6 @@ export class PdfViewerManager {
82
76
  getPdfs(): IPdfDocument[] {
83
77
  return this.pdfs;
84
78
  }
85
-
86
- private registerNavButton() {
87
- registerPdfViewerNavItem();
88
- }
89
79
  }
90
80
 
91
81
  export const createPdfViewerManager = (broker: PrimariaBroker, notificationService: PrimariaNotificationService) =>