Skip to content

Commit 4e4de26

Browse files
committed
refactor: Make resize container dynamic again
Don't render it disabled resize state, maximized and fullscreen modes
1 parent de453f7 commit 4e4de26

File tree

5 files changed

+49
-113
lines changed

5 files changed

+49
-113
lines changed

src/components/resize-container/resize-container.ts

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ export default class IgcResizeContainerComponent extends EventEmitterMixin<
5151

5252
private _controller: ReturnType<typeof addResizeController>;
5353

54-
private _enabled = true;
5554
private _mode: ResizeMode = 'immediate';
5655
private _ghostFactory?: ResizeGhostFactory;
5756

@@ -68,17 +67,6 @@ export default class IgcResizeContainerComponent extends EventEmitterMixin<
6867
@state()
6968
private _isActive = false;
7069

71-
/** Whether the resize behavior is enabled. */
72-
@property({ type: Boolean })
73-
public set enabled(value: boolean) {
74-
this._enabled = value;
75-
this._controller.set({ enabled: value });
76-
}
77-
78-
public get enabled(): boolean {
79-
return this._enabled;
80-
}
81-
8270
/**
8371
* Whether to always show the resize element adorners.
8472
*/
@@ -106,15 +94,6 @@ export default class IgcResizeContainerComponent extends EventEmitterMixin<
10694
return this._mode;
10795
}
10896

109-
public setSize(width: number | null, height: number | null): void {
110-
this._controller.setSize(width, height);
111-
}
112-
113-
public getSize() {
114-
const { width, height } = this._container.value!.style;
115-
return { width, height };
116-
}
117-
11897
constructor() {
11998
super();
12099

@@ -190,7 +169,7 @@ export default class IgcResizeContainerComponent extends EventEmitterMixin<
190169
}
191170

192171
protected _renderAdorners() {
193-
if (!this._enabled || (!this._isActive && !this.active)) {
172+
if (!this._isActive && !this.active) {
194173
return nothing;
195174
}
196175

@@ -207,14 +186,12 @@ export default class IgcResizeContainerComponent extends EventEmitterMixin<
207186
active: this._isActive || this.active,
208187
});
209188

210-
const skipHandlers = this.active || !this._enabled;
211-
212189
return html`
213190
<div
214191
${ref(this._container)}
215192
part=${parts}
216-
@pointerenter=${skipHandlers ? nothing : this._handlePointerEnter}
217-
@pointerleave=${skipHandlers ? nothing : this._handlePointerLeave}
193+
@pointerenter=${this.active ? nothing : this._handlePointerEnter}
194+
@pointerleave=${this.active ? nothing : this._handlePointerLeave}
218195
>
219196
<slot></slot>
220197
${this._renderAdorners()}

src/components/resize-container/resize-controller.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -88,16 +88,6 @@ class ResizeController implements ReactiveController {
8888
this._activeRef = null;
8989
}
9090

91-
/** Assign the given width and height in pixels to the resize target of the controller. */
92-
public setSize(width: number | null, height: number | null): void {
93-
if (this._resizeTarget) {
94-
Object.assign(this._resizeTarget.style, {
95-
width: width ? `${width}px` : '',
96-
height: height ? `${height}px` : '',
97-
});
98-
}
99-
}
100-
10191
/** @internal */
10292
public hostConnected(): void {
10393
this._host.addEventListener('pointerdown', this);

src/components/tile-manager/tile-manager.spec.ts

Lines changed: 19 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -155,53 +155,27 @@ describe('Tile Manager component', () => {
155155

156156
expect(tiles[0]).shadowDom.to.equal(
157157
`
158-
<igc-resize
159-
exportparts="trigger-side, trigger, trigger-bottom"
160-
mode="deferred"
161-
part="resize">
162-
<div part="base">
163-
<section part="header">
164-
<header part="title">
165-
<slot name="title"></slot>
166-
</header>
167-
<section id="tile-actions" part="actions">
168-
<slot name="maximize-action">
169-
<igc-icon-button
170-
aria-label="expand_content"
171-
collection="default"
172-
exportparts="icon"
173-
name="expand_content"
174-
type="button"
175-
variant="flat"
176-
>
177-
</slot>
178-
<slot name="fullscreen-action">
179-
<igc-icon-button
180-
aria-label="fullscreen"
181-
collection="default"
182-
exportparts="icon"
183-
name="fullscreen"
184-
type="button"
185-
variant="flat"
186-
>
187-
</slot>
188-
<slot name="actions"></slot>
189-
</section>
158+
<div part="base">
159+
<section part="header">
160+
<header part="title">
161+
<slot name="title"></slot>
162+
</header>
163+
<section id="tile-actions" part="actions">
164+
<slot name="maximize-action">
165+
<igc-icon-button variant="flat" collection="default" exportparts="icon" name="expand_content" aria-label="expand_content" type="button"></igc-icon-button>
166+
</slot>
167+
<slot name="fullscreen-action">
168+
<igc-icon-button variant="flat" collection="default" exportparts="icon" name="fullscreen" aria-label="fullscreen" type="button"></igc-icon-button>
169+
</slot>
170+
<slot name="actions"></slot>
190171
</section>
191-
<igc-divider type="solid"></igc-divider>
192-
<div part="content-container">
172+
</section>
173+
<igc-divider type="solid"></igc-divider>
174+
175+
<div part="content-container">
193176
<slot></slot>
194-
</div>
195177
</div>
196-
<slot name="side-adorner" slot="side-adorner">
197-
</slot>
198-
199-
<slot name="corner-adorner" slot="corner-adorner">
200-
</slot>
201-
202-
<slot name="bottom-adorner" slot="bottom-adorner">
203-
</slot>
204-
</igc-resize>
178+
</div>
205179
`
206180
);
207181
});
@@ -495,10 +469,7 @@ describe('Tile Manager component', () => {
495469
tileManager.resizeMode = 'none';
496470
await elementUpdated(tileManager);
497471

498-
const resize = tile.renderRoot.querySelector('igc-resize')!;
499-
500-
expect(resize).is.not.null;
501-
expect(resize.enabled).to.be.false;
472+
expect(tile.renderRoot.querySelector('igc-resize')).is.null;
502473
});
503474
});
504475

src/components/tile-manager/tile-resize.spec.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -393,13 +393,11 @@ describe('Tile resize', () => {
393393
const DOM = getTileDOM(firstTile);
394394

395395
expect(DOM.resizeElement).is.not.null;
396-
expect(DOM.resizeElement.enabled).is.true;
397396

398397
firstTile.disableResize = true;
399398
await elementUpdated(firstTile);
400399

401-
expect(DOM.resizeElement).is.not.null;
402-
expect(DOM.resizeElement.enabled).is.false;
400+
expect(DOM.resizeElement).is.null;
403401
});
404402

405403
it('should update tile parts on resizing', async () => {

src/components/tile-manager/tile.ts

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -635,32 +635,32 @@ export default class IgcTileComponent extends EventEmitterMixin<
635635
}
636636

637637
protected override render() {
638-
const isEnabled = !this._resizeDisabled;
639-
const isActive = !this._resizeDisabled && this._resizeMode === 'always';
640-
641-
return html`
642-
<igc-resize
643-
part=${partNameMap({
644-
resize: true,
645-
'side-adorner': this._customAdorners.get('side')!,
646-
'corner-adorner': this._customAdorners.get('corner')!,
647-
'bottom-adorner': this._customAdorners.get('bottom')!,
648-
})}
649-
exportparts="trigger-side, trigger, trigger-bottom"
650-
mode="deferred"
651-
.enabled=${isEnabled}
652-
?active=${isActive}
653-
.ghostFactory=${this._createResizeGhost}
654-
@igcResizeStart=${this._handleResizeStart}
655-
@igcResize=${this._handleResize}
656-
@igcResizeEnd=${this._handleResizeEnd}
657-
@igcResizeCancel=${this._handleResizeCancel}
658-
>
659-
${this._renderContent()} ${this._renderAdornerSlot('side')}
660-
${this._renderAdornerSlot('corner')}
661-
${this._renderAdornerSlot('bottom')}
662-
</igc-resize>
663-
`;
638+
const isActive = this._resizeMode === 'always';
639+
640+
return this._resizeDisabled
641+
? this._renderContent()
642+
: html`
643+
<igc-resize
644+
part=${partNameMap({
645+
resize: true,
646+
'side-adorner': this._customAdorners.get('side')!,
647+
'corner-adorner': this._customAdorners.get('corner')!,
648+
'bottom-adorner': this._customAdorners.get('bottom')!,
649+
})}
650+
exportparts="trigger-side, trigger, trigger-bottom"
651+
mode="deferred"
652+
?active=${isActive}
653+
.ghostFactory=${this._createResizeGhost}
654+
@igcResizeStart=${this._handleResizeStart}
655+
@igcResize=${this._handleResize}
656+
@igcResizeEnd=${this._handleResizeEnd}
657+
@igcResizeCancel=${this._handleResizeCancel}
658+
>
659+
${this._renderContent()} ${this._renderAdornerSlot('side')}
660+
${this._renderAdornerSlot('corner')}
661+
${this._renderAdornerSlot('bottom')}
662+
</igc-resize>
663+
`;
664664
}
665665
}
666666

0 commit comments

Comments
 (0)