feat: adjust watermark component props

This commit is contained in:
mathuo 2023-03-15 21:26:34 +03:00
parent 015cef7fb0
commit 454542b729
No known key found for this signature in database
GPG Key ID: C6EEDEFD6CA07281
5 changed files with 26 additions and 26 deletions

View File

@ -1,4 +1,8 @@
import { GroupPanelPartInitParameters, IWatermarkRenderer } from '../../types';
import {
GroupPanelPartInitParameters,
IWatermarkRenderer,
WatermarkRendererInitParameters,
} from '../../types';
import { addDisposableListener } from '../../../events';
import { toggleClass } from '../../../dom';
import { CompositeDisposable } from '../../../lifecycle';
@ -69,15 +73,7 @@ export class Watermark
// noop
}
init(params: GroupPanelPartInitParameters) {
this.params = params;
this.addDisposables(
this.params.containerApi.onDidLayoutChange(() => {
this.render();
})
);
init(_params: WatermarkRendererInitParameters) {
this.render();
}

View File

@ -632,9 +632,6 @@ export class DockviewComponent
this.watermark.init({
containerApi: new DockviewApi(this),
params: {},
title: '',
api: null as any,
});
const watermarkContainer = document.createElement('div');

View File

@ -670,9 +670,7 @@ export class DockviewGroupPanelModel
const watermark = this.accessor.createWatermarkComponent();
watermark.init({
containerApi: new DockviewApi(this.accessor),
params: {},
title: '',
api: null as any,
group: this.groupPanel,
});
this.watermark = watermark;

View File

@ -9,7 +9,7 @@ import {
import { DockviewApi } from '../api/component.api';
import { Event } from '../events';
import { Optional } from '../types';
import { DockviewGroupPanel } from './dockviewGroupPanel';
import { DockviewGroupPanel, IDockviewGroupPanel } from './dockviewGroupPanel';
export enum DockviewDropTargets {
Tab,
@ -34,13 +34,18 @@ export interface GroupPanelContentPartInitParameters
tab: ITabRenderer;
}
export interface WatermarkRendererInitParameters {
containerApi: DockviewApi;
group?: IDockviewGroupPanel;
}
export interface IWatermarkRenderer
extends Optional<
Omit<IPanel, 'id'>,
Omit<IPanel, 'id' | 'init'>,
'dispose' | 'update' | 'layout' | 'toJSON'
> {
readonly element: HTMLElement;
init: (params: GroupPanelPartInitParameters) => void;
init: (params: WatermarkRendererInitParameters) => void;
updateParentGroup(group: DockviewGroupPanel, visible: boolean): void;
}

View File

@ -6,9 +6,14 @@ import {
DockviewGroupPanel,
GroupPanelPartInitParameters,
IWatermarkRenderer,
WatermarkRendererInitParameters,
DockviewApi,
IDockviewGroupPanel,
} from 'dockview-core';
export interface IWatermarkPanelProps extends IGroupPanelBaseProps {
export interface IWatermarkPanelProps {
containerApi: DockviewApi;
group?: IDockviewGroupPanel;
close: () => void;
}
@ -30,19 +35,18 @@ export class ReactWatermarkPart implements IWatermarkRenderer {
this._element.className = 'dockview-react-part';
}
init(parameters: GroupPanelPartInitParameters): void {
this.parameters = parameters;
init(parameters: WatermarkRendererInitParameters): void {
this.part = new ReactPart(
this.element,
this.reactPortalStore,
this.component,
{
params: parameters.params,
api: parameters.api,
group: parameters.group,
containerApi: parameters.containerApi,
close: () => {
parameters.containerApi.removeGroup(parameters.api.group);
if (parameters.group) {
parameters.containerApi.removeGroup(parameters.group);
}
},
}
);