Skip to content
This repository was archived by the owner on Sep 11, 2024. It is now read-only.

Apply strictNullChecks to src/resizer/* #10378

Merged
merged 2 commits into from
Mar 15, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/resizer/distributors/collapse.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import Sizer from "../sizer";

export interface ICollapseConfig extends IConfig {
toggleSize: number;
onCollapsed?(collapsed: boolean, id: string, element: HTMLElement): void;
onCollapsed?(collapsed: boolean, id: string | null, element: HTMLElement): void;
isItemCollapsed(element: HTMLElement): boolean;
}

Expand All @@ -45,7 +45,7 @@ export default class CollapseDistributor extends FixedDistributor<ICollapseConfi
return new CollapseItem(resizeHandle, resizer, sizer, container);
}

private readonly toggleSize: number;
private readonly toggleSize: number | undefined;
private isCollapsed: boolean;

public constructor(item: CollapseItem) {
Expand All @@ -55,7 +55,7 @@ export default class CollapseDistributor extends FixedDistributor<ICollapseConfi
}

public resize(newSize: number): void {
const isCollapsedSize = newSize < this.toggleSize;
const isCollapsedSize = !!this.toggleSize && newSize < this.toggleSize;
if (isCollapsedSize !== this.isCollapsed) {
this.isCollapsed = isCollapsedSize;
this.item.notifyCollapsed(isCollapsedSize);
Expand Down
4 changes: 2 additions & 2 deletions src/resizer/distributors/percentage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ import { IConfig } from "../resizer";
class PercentageSizer extends Sizer {
public start(item: HTMLElement): void {
if (this.vertical) {
item.style.minHeight = null;
item.style.minHeight = "";
} else {
item.style.minWidth = null;
item.style.minWidth = "";
}
}

Expand Down
14 changes: 11 additions & 3 deletions src/resizer/item.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,16 @@ export default class ResizeItem<C extends IConfig = IConfig> {

private advance(forwards: boolean): ResizeItem | undefined {
// opposite direction from fromResizeHandle to get back to handle
let handle = this.reverse ? this.domNode.previousElementSibling : this.domNode.nextElementSibling;
let handle: Element | null | undefined = this.reverse
? this.domNode.previousElementSibling
: this.domNode.nextElementSibling;
const moveNext = forwards !== this.reverse; // xor
// iterate at least once to avoid infinite loop
do {
if (moveNext) {
handle = handle.nextElementSibling;
handle = handle?.nextElementSibling;
} else {
handle = handle.previousElementSibling;
handle = handle?.previousElementSibling;
}
} while (handle && !this.resizer.isResizeHandle(<HTMLElement>handle));

Expand Down Expand Up @@ -105,6 +107,9 @@ export default class ResizeItem<C extends IConfig = IConfig> {
}

public first(): ResizeItem | undefined {
if (!this.domNode.parentElement?.children) {
return;
}
const firstHandle = Array.from(this.domNode.parentElement.children).find((el) => {
return this.resizer.isResizeHandle(<HTMLElement>el);
});
Expand All @@ -114,6 +119,9 @@ export default class ResizeItem<C extends IConfig = IConfig> {
}

public last(): ResizeItem | undefined {
if (!this.domNode.parentElement?.children) {
return;
}
const lastHandle = Array.from(this.domNode.parentElement.children)
.reverse()
.find((el) => {
Expand Down