Skip to content

Commit 59a4279

Browse files
authored
fix: make grid renderer arguments required (#2097)
1 parent c2dfd43 commit 59a4279

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

packages/vaadin-grid/src/interfaces.d.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import { GridElement } from './vaadin-grid.js';
33

44
export type GridBodyRenderer<TItem> = (
55
root: HTMLElement,
6-
column?: GridColumnElement<TItem>,
7-
model?: GridItemModel<TItem>
6+
column: GridColumnElement<TItem>,
7+
model: GridItemModel<TItem>
88
) => void;
99

1010
export type GridCellClassNameGenerator<TItem> = (
@@ -51,7 +51,7 @@ export interface GridEventContext<TItem> {
5151
level?: number;
5252
}
5353

54-
export type GridHeaderFooterRenderer<TItem> = (root: HTMLElement, column?: GridColumnElement<TItem>) => void;
54+
export type GridHeaderFooterRenderer<TItem> = (root: HTMLElement, column: GridColumnElement<TItem>) => void;
5555

5656
export type GridDefaultItem = any;
5757

packages/vaadin-grid/test/typings/grid.types.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { ElementMixin } from '@vaadin/vaadin-element-mixin';
22
import { ThemableMixin } from '@vaadin/vaadin-themable-mixin';
3+
import { GridBodyRenderer } from '../../src/interfaces';
34
import { A11yMixin } from '../../src/vaadin-grid-a11y-mixin';
45
import { ActiveItemMixin } from '../../src/vaadin-grid-active-item-mixin';
56
import { ArrayDataProviderMixin } from '../../src/vaadin-grid-array-data-provider-mixin';
@@ -130,6 +131,18 @@ narrowedGrid.addEventListener('grid-drop', (event) => {
130131
const genericColumn = document.createElement('vaadin-grid-column');
131132
assertType<GridColumnElement>(genericColumn);
132133

134+
const bodyRenderer: GridBodyRenderer<TestGridItem> = (root, column, model) => {
135+
assertType<HTMLElement>(root);
136+
assertType<GridColumnElement>(column);
137+
assertType<TestGridItem>(model.item);
138+
};
139+
genericColumn.renderer = bodyRenderer;
140+
141+
genericColumn.headerRenderer = (root, column) => {
142+
assertType<HTMLElement>(root);
143+
assertType<GridColumnElement>(column);
144+
};
145+
133146
const narrowedColumn = genericColumn as GridColumnElement<TestGridItem>;
134147
assertType<HTMLElement>(narrowedColumn);
135148
assertType<ColumnBaseMixin<TestGridItem>>(narrowedColumn);

0 commit comments

Comments
 (0)