Merge pull request #740 from mathuo/739-sonar-code-cleanup

chore: code cleanup
This commit is contained in:
mathuo 2024-10-27 20:09:46 +00:00 committed by GitHub
commit 4bf3fc4820
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
31 changed files with 130 additions and 90 deletions

View File

@ -69,7 +69,7 @@ export class DockviewPanelApiImpl
implements DockviewPanelApi implements DockviewPanelApi
{ {
private _group: DockviewGroupPanel; private _group: DockviewGroupPanel;
private _tabComponent: string | undefined; private readonly _tabComponent: string | undefined;
readonly _onDidTitleChange = new Emitter<TitleEvent>(); readonly _onDidTitleChange = new Emitter<TitleEvent>();
readonly onDidTitleChange = this._onDidTitleChange.event; readonly onDidTitleChange = this._onDidTitleChange.event;
@ -131,7 +131,7 @@ export class DockviewPanelApiImpl
} }
constructor( constructor(
private panel: DockviewPanel, private readonly panel: DockviewPanel,
group: DockviewGroupPanel, group: DockviewGroupPanel,
private readonly accessor: DockviewComponent, private readonly accessor: DockviewComponent,
component: string, component: string,

View File

@ -1,4 +1,4 @@
import { disableIframePointEvents, getElementsByTagName } from '../dom'; import { disableIframePointEvents } from '../dom';
import { addDisposableListener, Emitter } from '../events'; import { addDisposableListener, Emitter } from '../events';
import { import {
CompositeDisposable, CompositeDisposable,

View File

@ -13,8 +13,8 @@ export class DragAndDropObserver extends CompositeDisposable {
private target: EventTarget | null = null; private target: EventTarget | null = null;
constructor( constructor(
private element: HTMLElement, private readonly element: HTMLElement,
private callbacks: IDragAndDropObserverCallbacks private readonly callbacks: IDragAndDropObserverCallbacks
) { ) {
super(); super();

View File

@ -3,12 +3,7 @@ import {
IDisposable, IDisposable,
MutableDisposable, MutableDisposable,
} from '../../../lifecycle'; } from '../../../lifecycle';
import { import { Emitter, Event } from '../../../events';
addDisposableListener,
addDisposableWindowListener,
Emitter,
Event,
} from '../../../events';
import { trackFocus } from '../../../dom'; import { trackFocus } from '../../../dom';
import { IDockviewPanel } from '../../dockviewPanel'; import { IDockviewPanel } from '../../dockviewPanel';
import { DockviewComponent } from '../../dockviewComponent'; import { DockviewComponent } from '../../dockviewComponent';
@ -33,9 +28,9 @@ export class ContentContainer
extends CompositeDisposable extends CompositeDisposable
implements IContentContainer implements IContentContainer
{ {
private _element: HTMLElement; private readonly _element: HTMLElement;
private panel: IDockviewPanel | undefined; private panel: IDockviewPanel | undefined;
private disposable = new MutableDisposable(); private readonly disposable = new MutableDisposable();
private readonly _onDidFocus = new Emitter<void>(); private readonly _onDidFocus = new Emitter<void>();
readonly onDidFocus: Event<void> = this._onDidFocus.event; readonly onDidFocus: Event<void> = this._onDidFocus.event;

View File

@ -4,9 +4,9 @@ import { addDisposableListener } from '../../../events';
import { createCloseButton } from '../../../svg'; import { createCloseButton } from '../../../svg';
export class DefaultTab extends CompositeDisposable implements ITabRenderer { export class DefaultTab extends CompositeDisposable implements ITabRenderer {
private _element: HTMLElement; private readonly _element: HTMLElement;
private _content: HTMLElement; private readonly _content: HTMLElement;
private action: HTMLElement; private readonly action: HTMLElement;
private _title: string | undefined; private _title: string | undefined;
get element(): HTMLElement { get element(): HTMLElement {

View File

@ -13,7 +13,7 @@ export class Watermark
extends CompositeDisposable extends CompositeDisposable
implements IWatermarkRenderer implements IWatermarkRenderer
{ {
private _element: HTMLElement; private readonly _element: HTMLElement;
private _group: IDockviewGroupPanel | undefined; private _group: IDockviewGroupPanel | undefined;
private _api: DockviewApi | undefined; private _api: DockviewApi | undefined;

View File

@ -39,7 +39,7 @@ import {
toTarget, toTarget,
} from '../gridview/baseComponentGridview'; } from '../gridview/baseComponentGridview';
import { DockviewApi } from '../api/component.api'; import { DockviewApi } from '../api/component.api';
import { Orientation, Sizing } from '../splitview/splitview'; import { Orientation } from '../splitview/splitview';
import { import {
GroupOptions, GroupOptions,
GroupPanelViewState, GroupPanelViewState,
@ -1977,7 +1977,7 @@ export class DockviewComponent
const newGroup = this.createGroupAtLocation(targetLocation); const newGroup = this.createGroupAtLocation(targetLocation);
this.movingLock(() => this.movingLock(() =>
newGroup.model.openPanel(removedPanel!, { newGroup.model.openPanel(removedPanel, {
skipSetActive: true, skipSetActive: true,
}) })
); );

View File

@ -272,7 +272,7 @@ export class DockviewGroupPanelModel
private _width = 0; private _width = 0;
private _height = 0; private _height = 0;
private _panels: IDockviewPanel[] = []; private readonly _panels: IDockviewPanel[] = [];
private readonly _panelDisposables = new Map<string, IDisposable>(); private readonly _panelDisposables = new Map<string, IDisposable>();
private readonly _onMove = new Emitter<GroupMoveEvent>(); private readonly _onMove = new Emitter<GroupMoveEvent>();
@ -429,7 +429,7 @@ export class DockviewGroupPanelModel
constructor( constructor(
private readonly container: HTMLElement, private readonly container: HTMLElement,
private accessor: DockviewComponent, private readonly accessor: DockviewComponent,
public id: string, public id: string,
private readonly options: GroupOptions, private readonly options: GroupOptions,
private readonly groupPanel: DockviewGroupPanel private readonly groupPanel: DockviewGroupPanel

View File

@ -45,10 +45,10 @@ export class DockviewPanel
private _title: string | undefined; private _title: string | undefined;
private _renderer: DockviewPanelRenderer | undefined; private _renderer: DockviewPanelRenderer | undefined;
private _minimumWidth: number | undefined; private readonly _minimumWidth: number | undefined;
private _minimumHeight: number | undefined; private readonly _minimumHeight: number | undefined;
private _maximumWidth: number | undefined; private readonly _maximumWidth: number | undefined;
private _maximumHeight: number | undefined; private readonly _maximumHeight: number | undefined;
get params(): Parameters | undefined { get params(): Parameters | undefined {
return this._params; return this._params;

View File

@ -14,7 +14,6 @@ import {
import { IDockviewPanel } from './dockviewPanel'; import { IDockviewPanel } from './dockviewPanel';
import { DockviewPanelRenderer } from '../overlay/overlayRenderContainer'; import { DockviewPanelRenderer } from '../overlay/overlayRenderContainer';
import { IGroupHeaderProps } from './framework'; import { IGroupHeaderProps } from './framework';
import { AnchoredBox } from '../types';
import { FloatingGroupOptions } from './dockviewComponent'; import { FloatingGroupOptions } from './dockviewComponent';
import { Contraints } from '../gridview/gridviewPanel'; import { Contraints } from '../gridview/gridviewPanel';

View File

@ -6,6 +6,36 @@ import {
} from './events'; } from './events';
import { IDisposable, CompositeDisposable } from './lifecycle'; import { IDisposable, CompositeDisposable } from './lifecycle';
export interface OverflowEvent {
hasScrollX: boolean;
hasScrollY: boolean;
}
export class OverflowObserver extends CompositeDisposable {
private readonly _onDidChange = new Emitter<OverflowEvent>();
readonly onDidChange = this._onDidChange.event;
private _value: OverflowEvent | null = null;
constructor(el: HTMLElement) {
super();
this.addDisposables(
this._onDidChange,
watchElementResize(el, (entry) => {
const hasScrollX =
entry.target.scrollWidth > entry.target.clientWidth;
const hasScrollY =
entry.target.scrollHeight > entry.target.clientHeight;
this._value = { hasScrollX, hasScrollY };
this._onDidChange.fire(this._value);
})
);
}
}
export function watchElementResize( export function watchElementResize(
element: HTMLElement, element: HTMLElement,
cb: (entry: ResizeObserverEntry) => void cb: (entry: ResizeObserverEntry) => void
@ -106,7 +136,7 @@ class FocusTracker extends CompositeDisposable implements IFocusTracker {
private readonly _onDidBlur = new Emitter<void>(); private readonly _onDidBlur = new Emitter<void>();
public readonly onDidBlur: DockviewEvent<void> = this._onDidBlur.event; public readonly onDidBlur: DockviewEvent<void> = this._onDidBlur.event;
private _refreshStateHandler: () => void; private readonly _refreshStateHandler: () => void;
constructor(element: HTMLElement | Window) { constructor(element: HTMLElement | Window) {
super(); super();

View File

@ -7,7 +7,7 @@ import { ISplitviewStyles, Orientation, Sizing } from '../splitview/splitview';
import { IPanel } from '../panel/types'; import { IPanel } from '../panel/types';
import { MovementOptions2 } from '../dockview/options'; import { MovementOptions2 } from '../dockview/options';
import { Resizable } from '../resizable'; import { Resizable } from '../resizable';
import { Classnames, toggleClass } from '../dom'; import { Classnames } from '../dom';
const nextLayoutId = sequentialNumberGenerator(); const nextLayoutId = sequentialNumberGenerator();

View File

@ -32,7 +32,7 @@ export abstract class BasePanelView<T extends PanelApiImpl>
{ {
private _height = 0; private _height = 0;
private _width = 0; private _width = 0;
private _element: HTMLElement; private readonly _element: HTMLElement;
protected part?: IFrameworkPart; protected part?: IFrameworkPart;
protected _params?: PanelInitParameters; protected _params?: PanelInitParameters;

View File

@ -19,7 +19,7 @@ import { CompositeDisposable, IDisposable, Disposable } from '../lifecycle';
export class BranchNode extends CompositeDisposable implements IView { export class BranchNode extends CompositeDisposable implements IView {
readonly element: HTMLElement; readonly element: HTMLElement;
private splitview: Splitview; private readonly splitview: Splitview;
private _orthogonalSize: number; private _orthogonalSize: number;
private _size: number; private _size: number;
private _childrenDisposable: IDisposable = Disposable.NONE; private _childrenDisposable: IDisposable = Disposable.NONE;

View File

@ -17,7 +17,7 @@ export class LeafNode implements IView {
this._onDidChange.event; this._onDidChange.event;
private _size: number; private _size: number;
private _orthogonalSize: number; private _orthogonalSize: number;
private _disposable: IDisposable; private readonly _disposable: IDisposable;
private get minimumWidth(): number { private get minimumWidth(): number {
return this.view.minimumWidth; return this.view.minimumWidth;

View File

@ -1,4 +1,9 @@
export * from './dnd/dataTransfer'; export {
getPaneData,
getPanelData,
PaneTransfer,
PanelTransfer,
} from './dnd/dataTransfer';
/** /**
* Events, Emitters and Disposables are very common concepts that many codebases will contain, however we need * Events, Emitters and Disposables are very common concepts that many codebases will contain, however we need
@ -7,14 +12,13 @@ export * from './dnd/dataTransfer';
*/ */
export { Emitter as DockviewEmitter, Event as DockviewEvent } from './events'; export { Emitter as DockviewEmitter, Event as DockviewEvent } from './events';
export { export {
IDisposable as IDockviewDisposable, IDisposable as DockviewIDisposable,
MutableDisposable as DockviewMutableDisposable, MutableDisposable as DockviewMutableDisposable,
CompositeDisposable as DockviewCompositeDisposable, CompositeDisposable as DockviewCompositeDisposable,
Disposable as DockviewDisposable, Disposable as DockviewDisposable,
} from './lifecycle'; } from './lifecycle';
export * from './panel/types'; export * from './panel/types';
export * from './panel/componentFactory';
export * from './splitview/splitview'; export * from './splitview/splitview';
export { export {
@ -27,7 +31,10 @@ export * from './gridview/gridview';
export { GridviewComponentOptions } from './gridview/options'; export { GridviewComponentOptions } from './gridview/options';
export * from './gridview/baseComponentGridview'; export * from './gridview/baseComponentGridview';
export * from './paneview/draggablePaneviewPanel'; export {
DraggablePaneviewPanel,
PaneviewDropEvent,
} from './paneview/draggablePaneviewPanel';
export * from './dockview/components/panel/content'; export * from './dockview/components/panel/content';
export * from './dockview/components/tab/tab'; export * from './dockview/components/tab/tab';
@ -50,8 +57,11 @@ export {
export * from './dockview/options'; export * from './dockview/options';
export * from './dockview/dockviewPanel'; export * from './dockview/dockviewPanel';
export * from './dockview/components/tab/defaultTab'; export { DefaultTab } from './dockview/components/tab/defaultTab';
export * from './dockview/deserializer'; export {
DefaultDockviewDeserialzier,
IPanelDeserializer,
} from './dockview/deserializer';
export * from './dockview/dockviewComponent'; export * from './dockview/dockviewComponent';
export * from './gridview/gridviewComponent'; export * from './gridview/gridviewComponent';
@ -60,7 +70,7 @@ export * from './paneview/paneviewComponent';
export { PaneviewComponentOptions } from './paneview/options'; export { PaneviewComponentOptions } from './paneview/options';
export * from './gridview/gridviewPanel'; export * from './gridview/gridviewPanel';
export * from './splitview/splitviewPanel'; export { SplitviewPanel, ISplitviewPanel } from './splitview/splitviewPanel';
export * from './paneview/paneviewPanel'; export * from './paneview/paneviewPanel';
export * from './dockview/types'; export * from './dockview/types';

View File

@ -45,7 +45,7 @@ class AriaLevelTracker {
const arialLevelTracker = new AriaLevelTracker(); const arialLevelTracker = new AriaLevelTracker();
export class Overlay extends CompositeDisposable { export class Overlay extends CompositeDisposable {
private _element: HTMLElement = document.createElement('div'); private readonly _element: HTMLElement = document.createElement('div');
private readonly _onDidChange = new Emitter<void>(); private readonly _onDidChange = new Emitter<void>();
readonly onDidChange: Event<void> = this._onDidChange.event; readonly onDidChange: Event<void> = this._onDidChange.event;
@ -53,8 +53,8 @@ export class Overlay extends CompositeDisposable {
private readonly _onDidChangeEnd = new Emitter<void>(); private readonly _onDidChangeEnd = new Emitter<void>();
readonly onDidChangeEnd: Event<void> = this._onDidChangeEnd.event; readonly onDidChangeEnd: Event<void> = this._onDidChangeEnd.event;
private static MINIMUM_HEIGHT = 20; private static readonly MINIMUM_HEIGHT = 20;
private static MINIMUM_WIDTH = 20; private static readonly MINIMUM_WIDTH = 20;
private verticalAlignment: 'top' | 'bottom' | undefined; private verticalAlignment: 'top' | 'bottom' | undefined;
private horiziontalAlignment: 'left' | 'right' | undefined; private horiziontalAlignment: 'left' | 'right' | undefined;

View File

@ -16,7 +16,9 @@ export class DefaultHeader
private readonly _element: HTMLElement; private readonly _element: HTMLElement;
private readonly _content: HTMLElement; private readonly _content: HTMLElement;
private readonly _expander: HTMLElement; private readonly _expander: HTMLElement;
private apiRef: { api: PaneviewPanelApiImpl | null } = { api: null }; private readonly apiRef: { api: PaneviewPanelApiImpl | null } = {
api: null,
};
get element(): HTMLElement { get element(): HTMLElement {
return this._element; return this._element;

View File

@ -15,10 +15,10 @@ interface PaneItem {
} }
export class Paneview extends CompositeDisposable implements IDisposable { export class Paneview extends CompositeDisposable implements IDisposable {
private element: HTMLElement; private readonly element: HTMLElement;
private splitview: Splitview; private readonly splitview: Splitview;
private paneItems: PaneItem[] = []; private paneItems: PaneItem[] = [];
private _orientation: Orientation; private readonly _orientation: Orientation;
private animationTimer: any; private animationTimer: any;
private skipAnimation = false; private skipAnimation = false;

View File

@ -24,7 +24,7 @@ import { sequentialNumberGenerator } from '../math';
import { PaneTransfer } from '../dnd/dataTransfer'; import { PaneTransfer } from '../dnd/dataTransfer';
import { Resizable } from '../resizable'; import { Resizable } from '../resizable';
import { Parameters } from '../panel/types'; import { Parameters } from '../panel/types';
import { Classnames, toggleClass } from '../dom'; import { Classnames } from '../dom';
const nextLayoutId = sequentialNumberGenerator(); const nextLayoutId = sequentialNumberGenerator();
@ -133,8 +133,8 @@ export interface IPaneviewComponent extends IDisposable {
export class PaneviewComponent extends Resizable implements IPaneviewComponent { export class PaneviewComponent extends Resizable implements IPaneviewComponent {
private readonly _id = nextLayoutId.next(); private readonly _id = nextLayoutId.next();
private _options: PaneviewComponentOptions; private _options: PaneviewComponentOptions;
private _disposable = new MutableDisposable(); private readonly _disposable = new MutableDisposable();
private _viewDisposables = new Map<string, IDisposable>(); private readonly _viewDisposables = new Map<string, IDisposable>();
private _paneview!: Paneview; private _paneview!: Paneview;
private readonly _onDidLayoutfromJSON = new Emitter<void>(); private readonly _onDidLayoutfromJSON = new Emitter<void>();

View File

@ -67,9 +67,8 @@ export abstract class PaneviewPanel
extends BasePanelView<PaneviewPanelApiImpl> extends BasePanelView<PaneviewPanelApiImpl>
implements IPaneview, IPaneviewPanel implements IPaneview, IPaneviewPanel
{ {
private _onDidChangeExpansionState: Emitter<boolean> = new Emitter<boolean>( private readonly _onDidChangeExpansionState: Emitter<boolean> =
{ replay: true } new Emitter<boolean>({ replay: true });
);
onDidChangeExpansionState = this._onDidChangeExpansionState.event; onDidChangeExpansionState = this._onDidChangeExpansionState.event;
private readonly _onDidChange = new Emitter<{ private readonly _onDidChange = new Emitter<{
size?: number; size?: number;
@ -78,7 +77,7 @@ export abstract class PaneviewPanel
readonly onDidChange: Event<{ size?: number; orthogonalSize?: number }> = readonly onDidChange: Event<{ size?: number; orthogonalSize?: number }> =
this._onDidChange.event; this._onDidChange.event;
private headerSize = 22; private readonly headerSize = 22;
private _orthogonalSize = 0; private _orthogonalSize = 0;
private _size = 0; private _size = 0;
private _minimumBodySize = 100; private _minimumBodySize = 100;

View File

@ -7,7 +7,6 @@ import {
removeClasses, removeClasses,
addClasses, addClasses,
toggleClass, toggleClass,
getElementsByTagName,
disableIframePointEvents, disableIframePointEvents,
} from '../dom'; } from '../dom';
import { Event, Emitter } from '../events'; import { Event, Emitter } from '../events';
@ -98,17 +97,17 @@ export interface ISplitViewDescriptor {
} }
export class Splitview { export class Splitview {
private element: HTMLElement; private readonly element: HTMLElement;
private viewContainer: HTMLElement; private readonly viewContainer: HTMLElement;
private sashContainer: HTMLElement; private readonly sashContainer: HTMLElement;
private viewItems: ViewItem[] = []; private readonly viewItems: ViewItem[] = [];
private sashes: ISashItem[] = []; private sashes: ISashItem[] = [];
private _orientation: Orientation; private _orientation: Orientation;
private _size = 0; private _size = 0;
private _orthogonalSize = 0; private _orthogonalSize = 0;
private _contentSize = 0; private _contentSize = 0;
private _proportions: (number | undefined)[] | undefined = undefined; private _proportions: (number | undefined)[] | undefined = undefined;
private proportionalLayout: boolean; private readonly proportionalLayout: boolean;
private _startSnappingEnabled = true; private _startSnappingEnabled = true;
private _endSnappingEnabled = true; private _endSnappingEnabled = true;
private _disabled = false; private _disabled = false;
@ -989,7 +988,11 @@ export class Splitview {
} }
private updateSash(sash: ISashItem, state: SashState): void { private updateSash(sash: ISashItem, state: SashState): void {
toggleClass(sash.container, 'dv-disabled', state === SashState.DISABLED); toggleClass(
sash.container,
'dv-disabled',
state === SashState.DISABLED
);
toggleClass(sash.container, 'dv-enabled', state === SashState.ENABLED); toggleClass(sash.container, 'dv-enabled', state === SashState.ENABLED);
toggleClass(sash.container, 'dv-maximum', state === SashState.MAXIMUM); toggleClass(sash.container, 'dv-maximum', state === SashState.MAXIMUM);
toggleClass(sash.container, 'dv-minimum', state === SashState.MINIMUM); toggleClass(sash.container, 'dv-minimum', state === SashState.MINIMUM);

View File

@ -17,7 +17,7 @@ import { Emitter, Event } from '../events';
import { SplitviewPanel, ISplitviewPanel } from './splitviewPanel'; import { SplitviewPanel, ISplitviewPanel } from './splitviewPanel';
import { createComponent } from '../panel/componentFactory'; import { createComponent } from '../panel/componentFactory';
import { Resizable } from '../resizable'; import { Resizable } from '../resizable';
import { Classnames, toggleClass } from '../dom'; import { Classnames } from '../dom';
export interface SerializedSplitviewPanelData { export interface SerializedSplitviewPanelData {
id: string; id: string;
@ -82,10 +82,10 @@ export class SplitviewComponent
extends Resizable extends Resizable
implements ISplitviewComponent implements ISplitviewComponent
{ {
private _splitviewChangeDisposable = new MutableDisposable(); private readonly _splitviewChangeDisposable = new MutableDisposable();
private _splitview!: Splitview; private _splitview!: Splitview;
private _activePanel: SplitviewPanel | undefined; private _activePanel: SplitviewPanel | undefined;
private _panels = new Map<string, IDisposable>(); private readonly _panels = new Map<string, IDisposable>();
private _options: SplitviewComponentOptions; private _options: SplitviewComponentOptions;
private readonly _onDidLayoutfromJSON = new Emitter<void>(); private readonly _onDidLayoutfromJSON = new Emitter<void>();

View File

@ -51,7 +51,7 @@ export class ViewItem {
public container: HTMLElement, public container: HTMLElement,
public view: IView, public view: IView,
size: number | { cachedVisibleSize: number }, size: number | { cachedVisibleSize: number },
private disposable: IDisposable private readonly disposable: IDisposable
) { ) {
if (typeof size === 'number') { if (typeof size === 'number') {
this._size = size; this._size = size;

View File

@ -315,7 +315,9 @@
top: 50%; top: 50%;
left: 50%; left: 50%;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
background-color: var(--dv-separator-handle-background-color); background-color: var(
--dv-separator-handle-background-color
);
position: absolute; position: absolute;
} }
@ -328,6 +330,7 @@
} }
} }
} }
}
} }
.dockview-theme-replit { .dockview-theme-replit {

View File

@ -12,8 +12,8 @@ import {
} from 'dockview-core'; } from 'dockview-core';
export class ReactHeaderActionsRendererPart implements IHeaderActionsRenderer { export class ReactHeaderActionsRendererPart implements IHeaderActionsRenderer {
private mutableDisposable = new DockviewMutableDisposable(); private readonly mutableDisposable = new DockviewMutableDisposable();
private _element: HTMLElement; private readonly _element: HTMLElement;
private _part?: ReactPart<IDockviewHeaderActionsProps>; private _part?: ReactPart<IDockviewHeaderActionsProps>;
get element(): HTMLElement { get element(): HTMLElement {

View File

@ -10,7 +10,7 @@ import {
} from 'dockview-core'; } from 'dockview-core';
export class ReactPanelContentPart implements IContentRenderer { export class ReactPanelContentPart implements IContentRenderer {
private _element: HTMLElement; private readonly _element: HTMLElement;
private part?: ReactPart<IDockviewPanelProps>; private part?: ReactPart<IDockviewPanelProps>;
private readonly _onDidFocus = new DockviewEmitter<void>(); private readonly _onDidFocus = new DockviewEmitter<void>();

View File

@ -8,7 +8,7 @@ import {
} from 'dockview-core'; } from 'dockview-core';
export class ReactPanelHeaderPart implements ITabRenderer { export class ReactPanelHeaderPart implements ITabRenderer {
private _element: HTMLElement; private readonly _element: HTMLElement;
private part?: ReactPart<IGroupPanelBaseProps>; private part?: ReactPart<IGroupPanelBaseProps>;
get element(): HTMLElement { get element(): HTMLElement {

View File

@ -2,7 +2,6 @@ import React from 'react';
import { ReactPart, ReactPortalStore } from '../react'; import { ReactPart, ReactPortalStore } from '../react';
import { import {
PanelUpdateEvent, PanelUpdateEvent,
DockviewGroupPanel,
GroupPanelPartInitParameters, GroupPanelPartInitParameters,
IWatermarkRenderer, IWatermarkRenderer,
WatermarkRendererInitParameters, WatermarkRendererInitParameters,
@ -10,9 +9,9 @@ import {
} from 'dockview-core'; } from 'dockview-core';
export class ReactWatermarkPart implements IWatermarkRenderer { export class ReactWatermarkPart implements IWatermarkRenderer {
private _element: HTMLElement; private readonly _element: HTMLElement;
private part?: ReactPart<IWatermarkPanelProps>; private part?: ReactPart<IWatermarkPanelProps>;
private parameters: GroupPanelPartInitParameters | undefined; private readonly parameters: GroupPanelPartInitParameters | undefined;
get element(): HTMLElement { get element(): HTMLElement {
return this._element; return this._element;

View File

@ -8,7 +8,7 @@ import { ReactPart, ReactPortalStore } from '../react';
import { IPaneviewPanelProps } from './paneview'; import { IPaneviewPanelProps } from './paneview';
export class PanePanelSection implements IPaneBodyPart { export class PanePanelSection implements IPaneBodyPart {
private _element: HTMLElement; private readonly _element: HTMLElement;
private part?: ReactPart<IPaneviewPanelProps>; private part?: ReactPart<IPaneviewPanelProps>;
get element() { get element() {

View File

@ -3,12 +3,12 @@ import ReactDOM from 'react-dom';
import { import {
DockviewDisposable, DockviewDisposable,
IFrameworkPart, IFrameworkPart,
IDockviewDisposable, DockviewIDisposable,
Parameters, Parameters,
} from 'dockview-core'; } from 'dockview-core';
export interface ReactPortalStore { export interface ReactPortalStore {
addPortal: (portal: React.ReactPortal) => IDockviewDisposable; addPortal: (portal: React.ReactPortal) => DockviewIDisposable;
} }
interface IPanelWrapperProps { interface IPanelWrapperProps {
@ -75,7 +75,7 @@ export class ReactPart<P extends object, C extends object = {}>
private componentInstance?: IPanelWrapperRef; private componentInstance?: IPanelWrapperRef;
private ref?: { private ref?: {
portal: React.ReactPortal; portal: React.ReactPortal;
disposable: IDockviewDisposable; disposable: DockviewIDisposable;
}; };
private disposed = false; private disposed = false;
@ -163,7 +163,7 @@ export class ReactPart<P extends object, C extends object = {}>
type PortalLifecycleHook = () => [ type PortalLifecycleHook = () => [
React.ReactPortal[], React.ReactPortal[],
(portal: React.ReactPortal) => IDockviewDisposable (portal: React.ReactPortal) => DockviewIDisposable
]; ];
/** /**