@opensumi/ide-core-browser 2.27.2 → 2.27.3-next-1706509546.0

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 (72) hide show
  1. package/lib/bootstrap/app.d.ts +2 -2
  2. package/lib/bootstrap/app.d.ts.map +1 -1
  3. package/lib/bootstrap/app.js +13 -16
  4. package/lib/bootstrap/app.js.map +1 -1
  5. package/lib/bootstrap/app.view.d.ts +7 -4
  6. package/lib/bootstrap/app.view.d.ts.map +1 -1
  7. package/lib/bootstrap/app.view.js +8 -12
  8. package/lib/bootstrap/app.view.js.map +1 -1
  9. package/lib/bootstrap/connection.d.ts +7 -3
  10. package/lib/bootstrap/connection.d.ts.map +1 -1
  11. package/lib/bootstrap/connection.js +55 -25
  12. package/lib/bootstrap/connection.js.map +1 -1
  13. package/lib/common/common.module.d.ts +6 -2
  14. package/lib/common/common.module.d.ts.map +1 -1
  15. package/lib/common/common.module.js +2 -0
  16. package/lib/common/common.module.js.map +1 -1
  17. package/lib/components/layout/box-panel.d.ts.map +1 -1
  18. package/lib/components/layout/box-panel.js +8 -1
  19. package/lib/components/layout/box-panel.js.map +1 -1
  20. package/lib/components/layout/default-layout.d.ts +2 -2
  21. package/lib/components/layout/default-layout.d.ts.map +1 -1
  22. package/lib/components/layout/layout.d.ts +1 -1
  23. package/lib/components/layout/layout.d.ts.map +1 -1
  24. package/lib/components/layout/split-panel.d.ts.map +1 -1
  25. package/lib/components/layout/split-panel.js.map +1 -1
  26. package/lib/components/portal/index.d.ts +1 -0
  27. package/lib/components/portal/index.d.ts.map +1 -1
  28. package/lib/components/portal/index.js.map +1 -1
  29. package/lib/components/resize/resize.d.ts +3 -3
  30. package/lib/components/resize/resize.d.ts.map +1 -1
  31. package/lib/markdown/index.d.ts.map +1 -1
  32. package/lib/markdown/index.js.map +1 -1
  33. package/lib/progress/progress-indicator.d.ts.map +1 -1
  34. package/lib/react-providers/config-provider.d.ts +1 -1
  35. package/lib/react-providers/config-provider.d.ts.map +1 -1
  36. package/lib/react-providers/slot.d.ts +8 -6
  37. package/lib/react-providers/slot.d.ts.map +1 -1
  38. package/lib/react-providers/slot.js.map +1 -1
  39. package/lib/toolbar/components/button.d.ts +1 -1
  40. package/lib/toolbar/components/button.d.ts.map +1 -1
  41. package/lib/toolbar/components/button.js +4 -4
  42. package/lib/toolbar/components/button.js.map +1 -1
  43. package/lib/toolbar/components/dropdown-button.d.ts +2 -2
  44. package/lib/toolbar/components/dropdown-button.d.ts.map +1 -1
  45. package/lib/toolbar/components/select.d.ts +2 -2
  46. package/lib/toolbar/components/select.d.ts.map +1 -1
  47. package/lib/toolbar/toolbar.d.ts +2 -2
  48. package/lib/toolbar/toolbar.d.ts.map +1 -1
  49. package/lib/toolbar/toolbar.js +17 -18
  50. package/lib/toolbar/toolbar.js.map +1 -1
  51. package/lib/utils/create-overlay.d.ts.map +1 -1
  52. package/lib/utils/create-overlay.js +2 -1
  53. package/lib/utils/create-overlay.js.map +1 -1
  54. package/lib/utils/electron.d.ts +8 -2
  55. package/lib/utils/electron.d.ts.map +1 -1
  56. package/lib/utils/electron.js +9 -5
  57. package/lib/utils/electron.js.map +1 -1
  58. package/package.json +10 -11
  59. package/src/bootstrap/app.ts +22 -26
  60. package/src/bootstrap/app.view.tsx +13 -16
  61. package/src/bootstrap/connection.ts +73 -28
  62. package/src/common/common.module.ts +2 -0
  63. package/src/components/layout/box-panel.tsx +9 -0
  64. package/src/components/layout/split-panel.tsx +0 -1
  65. package/src/components/portal/index.tsx +1 -0
  66. package/src/markdown/index.tsx +5 -1
  67. package/src/progress/progress-indicator.ts +1 -1
  68. package/src/react-providers/slot.tsx +8 -3
  69. package/src/toolbar/components/button.tsx +5 -7
  70. package/src/toolbar/toolbar.tsx +15 -18
  71. package/src/utils/create-overlay.tsx +2 -1
  72. package/src/utils/electron.ts +13 -5
@@ -1,7 +1,7 @@
1
1
  import classnames from 'classnames';
2
2
  import throttle from 'lodash/throttle';
3
3
  import React from 'react';
4
- import ReactDOM from 'react-dom';
4
+ import ReactDOM from 'react-dom/client';
5
5
 
6
6
  import { IEventBus, Disposable, Emitter } from '@opensumi/ide-core-common';
7
7
 
@@ -638,7 +638,7 @@ class ToolbarActionRenderer {
638
638
  element.classList.add(...this.resolvedToolbarAction.extraClassNames);
639
639
  }
640
640
  let setInDropDown: (inDropDown: boolean) => void | undefined;
641
- ReactDOM.render(
641
+ ReactDOM.createRoot(element).render(
642
642
  <ToolbarActionRenderWrapper
643
643
  initialInDropDown={inDropDown}
644
644
  action={this.toolbarAction}
@@ -651,23 +651,20 @@ class ToolbarActionRenderer {
651
651
  }}
652
652
  location={location}
653
653
  />,
654
- element,
655
- () => {
656
- if (canceled) {
657
- reject('canceled render toolbar');
658
- } else {
659
- this.reactElement = {
660
- element,
661
- setInDropDown: (inDropdown: boolean) => {
662
- if (setInDropDown) {
663
- setInDropDown(inDropdown);
664
- }
665
- },
666
- };
667
- resolve(element);
668
- }
669
- },
670
654
  );
655
+ if (canceled) {
656
+ reject('canceled render toolbar');
657
+ } else {
658
+ this.reactElement = {
659
+ element,
660
+ setInDropDown: (inDropdown: boolean) => {
661
+ if (setInDropDown) {
662
+ setInDropDown(inDropdown);
663
+ }
664
+ },
665
+ };
666
+ resolve(element);
667
+ }
671
668
  }
672
669
  }).then((resolved) => {
673
670
  this.renderPromise.resolved = resolved;
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import ReactDOM from 'react-dom';
3
+ import ReactDOMClient from 'react-dom/client';
3
4
 
4
5
  export const destroyFns: Array<() => void> = [];
5
6
 
@@ -31,7 +32,7 @@ export function createOverlay(children: React.ReactElement) {
31
32
  }
32
33
 
33
34
  function render(comp: React.ReactElement) {
34
- ReactDOM.render(React.cloneElement(comp), div);
35
+ ReactDOMClient.createRoot(div).render(React.cloneElement(comp));
35
36
  }
36
37
 
37
38
  function update(newChildren: React.ReactElement) {
@@ -1,6 +1,6 @@
1
+ import { NetSocketConnection } from '@opensumi/ide-connection/lib/common/connection';
1
2
  import { IDisposable, isDefined } from '@opensumi/ide-core-common';
2
3
  import { IElectronMainApi } from '@opensumi/ide-core-common/lib/electron';
3
- import type { MessageConnection } from '@opensumi/vscode-jsonrpc';
4
4
 
5
5
  declare const ElectronIpcRenderer: IElectronIpcRenderer;
6
6
 
@@ -92,12 +92,18 @@ export function createElectronMainApi(name: string, enableCaptured?: boolean): I
92
92
  );
93
93
  }
94
94
 
95
+ export interface IElectronEnvMetadata {
96
+ windowClientId: string;
97
+ [key: string]: any;
98
+ }
99
+
95
100
  export const electronEnv: {
96
101
  currentWindowId: number;
97
102
  currentWebContentsId: number;
98
103
  ipcRenderer: IElectronIpcRenderer;
99
104
  webviewPreload: string;
100
105
  plainWebviewPreload: string;
106
+ metadata: IElectronEnvMetadata;
101
107
  [key: string]: any;
102
108
  } = (global as any) || {};
103
109
 
@@ -107,19 +113,21 @@ if (typeof ElectronIpcRenderer !== 'undefined') {
107
113
 
108
114
  export interface IElectronNativeDialogService {
109
115
  showOpenDialog(options: Electron.OpenDialogOptions): Promise<string[] | undefined>;
110
-
111
116
  showSaveDialog(options: Electron.SaveDialogOptions): Promise<string | undefined>;
112
117
  }
113
118
 
114
119
  export const IElectronNativeDialogService = Symbol('IElectronNativeDialogService');
115
120
 
116
- export function createElectronClientConnection(connectPath?: string): MessageConnection {
121
+ export function createNetSocketConnection(connectPath?: string): NetSocketConnection {
117
122
  let socket;
118
123
  if (connectPath) {
119
124
  socket = electronEnv.createNetConnection(connectPath);
120
125
  } else {
121
126
  socket = electronEnv.createRPCNetConnection();
122
127
  }
123
- const { createSocketConnection } = require('@opensumi/ide-connection/lib/node/connect');
124
- return createSocketConnection(socket);
128
+ return new NetSocketConnection(socket);
129
+ }
130
+
131
+ export function fromWindowClientId(suffix: string) {
132
+ return `${suffix}-${electronEnv.metadata.windowClientId}`;
125
133
  }