diff --git a/packages/dockview/src/react/dockview/dockview.scss b/packages/dockview/src/react/dockview/dockview.scss new file mode 100644 index 000000000..d9a7a9485 --- /dev/null +++ b/packages/dockview/src/react/dockview/dockview.scss @@ -0,0 +1,4 @@ +.dockview-react-part { + height: 100%; + width: 100%; +} diff --git a/packages/dockview/src/react/dockview/dockview.tsx b/packages/dockview/src/react/dockview/dockview.tsx index b8c75b2f6..71cc9d8cc 100644 --- a/packages/dockview/src/react/dockview/dockview.tsx +++ b/packages/dockview/src/react/dockview/dockview.tsx @@ -13,7 +13,7 @@ import { import { DockviewPanelApi } from '../../api/groupPanelApi'; import { usePortalsLifecycle } from '../react'; import { DockviewApi } from '../../api/component.api'; -import { ReactWatermarkPart } from './reactWatermarkPart'; +import { IWatermarkPanelProps, ReactWatermarkPart } from './reactWatermarkPart'; import { PanelCollection, PanelParameters } from '../types'; import { watchElementResize } from '../../dom'; import { IContentRenderer, ITabRenderer } from '../../groupview/types'; @@ -25,24 +25,19 @@ export interface IGroupPanelBaseProps> containerApi: DockviewApi; } -export interface IDockviewPanelProps - extends IGroupPanelBaseProps { - // noop -} +export type IDockviewPanelHeaderProps> = + IGroupPanelBaseProps; + +export type IDockviewPanelProps = + IGroupPanelBaseProps; export interface DockviewReadyEvent { api: DockviewApi; } -export interface IWatermarkPanelProps> - extends PanelParameters { - containerApi: DockviewApi; - close(): void; -} - export interface IDockviewReactProps { components?: PanelCollection; - tabComponents?: PanelCollection; + tabComponents?: PanelCollection; watermarkComponent?: React.FunctionComponent; onReady?: (event: DockviewReadyEvent) => void; debug?: boolean; @@ -86,7 +81,7 @@ export const DockviewReact = React.forwardRef( createComponent: ( id: string, componentId: string, - component: React.FunctionComponent + component: React.FunctionComponent ): IContentRenderer => { return new ReactPanelContentPart( componentId, @@ -101,7 +96,7 @@ export const DockviewReact = React.forwardRef( createComponent: ( id: string, componentId: string, - component: React.FunctionComponent + component: React.FunctionComponent ): ITabRenderer => { return new ReactPanelHeaderPart( componentId, diff --git a/packages/dockview/src/react/dockview/reactContentPart.ts b/packages/dockview/src/react/dockview/reactContentPart.ts index b1a73699c..093b276f5 100644 --- a/packages/dockview/src/react/dockview/reactContentPart.ts +++ b/packages/dockview/src/react/dockview/reactContentPart.ts @@ -54,8 +54,7 @@ export class ReactPanelContentPart implements IContentRenderer { private readonly reactPortalStore: ReactPortalStore ) { this._element = document.createElement('div'); - this._element.style.height = '100%'; - this._element.style.width = '100%'; + this._element.className = 'dockview-react-part'; // this.hostedContainer = new HostedContainer({ // id, @@ -65,8 +64,7 @@ export class ReactPanelContentPart implements IContentRenderer { // this.hostedContainer.onDidBlur(() => this._onDidBlur.fire()); this._actionsElement = document.createElement('div'); - this._actionsElement.style.height = '100%'; - this._actionsElement.style.width = '100%'; + this._actionsElement.className = 'dockview-react-part'; } focus() { diff --git a/packages/dockview/src/react/dockview/reactHeaderPart.ts b/packages/dockview/src/react/dockview/reactHeaderPart.ts index 4b0f69515..19858a17a 100644 --- a/packages/dockview/src/react/dockview/reactHeaderPart.ts +++ b/packages/dockview/src/react/dockview/reactHeaderPart.ts @@ -22,6 +22,7 @@ export class ReactPanelHeaderPart implements ITabRenderer { private readonly reactPortalStore: ReactPortalStore ) { this._element = document.createElement('div'); + this._element.className = 'dockview-react-part'; } focus() { diff --git a/packages/dockview/src/react/dockview/reactWatermarkPart.ts b/packages/dockview/src/react/dockview/reactWatermarkPart.ts index 369101a4e..da4240ab9 100644 --- a/packages/dockview/src/react/dockview/reactWatermarkPart.ts +++ b/packages/dockview/src/react/dockview/reactWatermarkPart.ts @@ -8,7 +8,7 @@ import { ReactPart, ReactPortalStore } from '../react'; import { IGroupPanelBaseProps } from './dockview'; import { PanelUpdateEvent } from '../../panel/types'; -interface IWatermarkPanelProps extends IGroupPanelBaseProps { +export interface IWatermarkPanelProps extends IGroupPanelBaseProps { close: () => void; } @@ -30,8 +30,7 @@ export class ReactWatermarkPart implements IWatermarkRenderer { private readonly reactPortalStore: ReactPortalStore ) { this._element = document.createElement('div'); - this._element.style.height = '100%'; - this._element.style.width = '100%'; + this._element.className = 'dockview-react-part'; } init(parameters: GroupPanelPartInitParameters): void { diff --git a/packages/dockview/src/react/index.ts b/packages/dockview/src/react/index.ts index da26aad82..05705fbdd 100644 --- a/packages/dockview/src/react/index.ts +++ b/packages/dockview/src/react/index.ts @@ -4,6 +4,7 @@ export * from './splitview/splitview'; export * from './gridview/gridview'; export * from './dockview/reactContentPart'; export * from './dockview/reactHeaderPart'; +export { IWatermarkPanelProps } from './dockview/reactWatermarkPart'; export * from './paneview/paneview'; export * from './types'; export * from './react';