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

Commit 31a959e

Browse files
author
Kerry
authored
Apply strictNullChecks to src/resizer/* (#10378)
1 parent 37d218e commit 31a959e

File tree

3 files changed

+16
-8
lines changed

3 files changed

+16
-8
lines changed

src/resizer/distributors/collapse.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import Sizer from "../sizer";
2121

2222
export interface ICollapseConfig extends IConfig {
2323
toggleSize: number;
24-
onCollapsed?(collapsed: boolean, id: string, element: HTMLElement): void;
24+
onCollapsed?(collapsed: boolean, id: string | null, element: HTMLElement): void;
2525
isItemCollapsed(element: HTMLElement): boolean;
2626
}
2727

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

48-
private readonly toggleSize: number;
48+
private readonly toggleSize: number | undefined;
4949
private isCollapsed: boolean;
5050

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

5757
public resize(newSize: number): void {
58-
const isCollapsedSize = newSize < this.toggleSize;
58+
const isCollapsedSize = !!this.toggleSize && newSize < this.toggleSize;
5959
if (isCollapsedSize !== this.isCollapsed) {
6060
this.isCollapsed = isCollapsedSize;
6161
this.item.notifyCollapsed(isCollapsedSize);

src/resizer/distributors/percentage.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ import { IConfig } from "../resizer";
2121
class PercentageSizer extends Sizer {
2222
public start(item: HTMLElement): void {
2323
if (this.vertical) {
24-
item.style.minHeight = null;
24+
item.style.minHeight = "";
2525
} else {
26-
item.style.minWidth = null;
26+
item.style.minWidth = "";
2727
}
2828
}
2929

src/resizer/item.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,16 @@ export default class ResizeItem<C extends IConfig = IConfig> {
4444

4545
private advance(forwards: boolean): ResizeItem | undefined {
4646
// opposite direction from fromResizeHandle to get back to handle
47-
let handle = this.reverse ? this.domNode.previousElementSibling : this.domNode.nextElementSibling;
47+
let handle: Element | null | undefined = this.reverse
48+
? this.domNode.previousElementSibling
49+
: this.domNode.nextElementSibling;
4850
const moveNext = forwards !== this.reverse; // xor
4951
// iterate at least once to avoid infinite loop
5052
do {
5153
if (moveNext) {
52-
handle = handle.nextElementSibling;
54+
handle = handle?.nextElementSibling;
5355
} else {
54-
handle = handle.previousElementSibling;
56+
handle = handle?.previousElementSibling;
5557
}
5658
} while (handle && !this.resizer.isResizeHandle(<HTMLElement>handle));
5759

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

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

116121
public last(): ResizeItem | undefined {
122+
if (!this.domNode.parentElement?.children) {
123+
return;
124+
}
117125
const lastHandle = Array.from(this.domNode.parentElement.children)
118126
.reverse()
119127
.find((el) => {

0 commit comments

Comments
 (0)