Skip to content
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
5 changes: 4 additions & 1 deletion eslint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ export default defineConfig([
'no-unsafe-finally': 1,
'no-unsafe-negation': [1, { enforceForOrderingRelations: true }],
'no-unsafe-optional-chaining': [1, { disallowArithmeticOperators: true }],
'no-unused-private-class-members': 0,
'no-unused-private-class-members': 0, // replaced by @typescript-eslint/no-unused-private-class-members
'no-unused-vars': 0, // replaced by @typescript-eslint/no-unused-vars
'no-use-before-define': 0,
'no-useless-backreference': 1,
Expand Down Expand Up @@ -588,6 +588,7 @@ export default defineConfig([
],
'@typescript-eslint/no-shadow': 0,
'@typescript-eslint/no-unused-expressions': 0,
'@typescript-eslint/no-unused-private-class-members': 0,
'@typescript-eslint/no-unused-vars': [1, { ignoreRestSiblings: true }],
'@typescript-eslint/no-use-before-define': 0,
'@typescript-eslint/no-useless-constructor': 0,
Expand Down Expand Up @@ -673,7 +674,9 @@ export default defineConfig([
'vitest/prefer-to-have-length': 1,
'vitest/prefer-todo': 1,
'vitest/prefer-vi-mocked': 1,
'vitest/require-awaited-expect-poll': 1,
'vitest/require-hook': 0,
'vitest/require-import-vi-mock': 1,
'vitest/require-local-test-context-for-concurrent-snapshots': 0,
'vitest/require-mock-type-parameters': 0,
'vitest/require-to-throw-message': 0,
Expand Down
32 changes: 16 additions & 16 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,42 +52,42 @@
"postpublish": "git push --follow-tags origin HEAD"
},
"devDependencies": {
"@biomejs/biome": "2.3.7",
"@eslint-react/eslint-plugin": "^2.0.2",
"@eslint/markdown": "^7.3.0",
"@biomejs/biome": "2.3.8",
"@eslint-react/eslint-plugin": "^2.3.12",
"@eslint/markdown": "^7.5.1",
"@faker-js/faker": "^10.0.0",
"@ianvs/prettier-plugin-sort-imports": "^4.6.2",
"@tanstack/react-router": "^1.132.31",
"@tanstack/router-plugin": "^1.132.31",
"@types/node": "^24.8.0",
"@types/react": "^19.2.0",
"@types/react-dom": "^19.2.0",
"@typescript-eslint/eslint-plugin": "^8.39.1",
"@typescript-eslint/parser": "^8.39.1",
"@typescript-eslint/eslint-plugin": "^8.48.1",
"@typescript-eslint/parser": "^8.48.1",
"@vitejs/plugin-react": "^5.1.1",
"@vitest/browser-playwright": "^4.0.14",
"@vitest/coverage-istanbul": "^4.0.14",
"@vitest/eslint-plugin": "^1.3.4",
"@vitest/browser-playwright": "^4.0.15",
"@vitest/coverage-istanbul": "^4.0.15",
"@vitest/eslint-plugin": "^1.5.1",
"clsx": "^2.1.1",
"ecij": "^0.2.0",
"eslint": "^9.36.0",
"eslint": "^9.39.1",
"eslint-plugin-jest-dom": "^5.5.0",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^7.0.0",
"eslint-plugin-react-hooks": "^7.0.1",
"eslint-plugin-sonarjs": "^3.0.5",
"eslint-plugin-testing-library": "^7.10.0",
"eslint-plugin-testing-library": "^7.13.5",
"jspdf": "^3.0.1",
"jspdf-autotable": "^5.0.2",
"playwright": "^1.57.0",
"playwright": "~1.57.0",
"postcss": "^8.5.2",
"prettier": "3.6.2",
"react": "^19.2.0",
"react-dom": "^19.2.0",
"prettier": "3.7.3",
"react": "^19.2.1",
"react-dom": "^19.2.1",
"rolldown": "^1.0.0-beta.51",
"rolldown-plugin-dts": "^0.18.0",
"typescript": "~5.9.2",
"vite": "npm:rolldown-vite@^7.2.5",
"vitest": "^4.0.14",
"vitest": "^4.0.15",
"vitest-browser-react": "^2.0.2"
},
"peerDependencies": {
Expand Down
3 changes: 2 additions & 1 deletion src/EditCell.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ const cellEditing = css`
type SharedCellRendererProps<R, SR> = Pick<CellRendererProps<R, SR>, 'colSpan'>;

interface EditCellProps<R, SR>
extends Omit<RenderEditCellProps<R, SR>, 'onRowChange' | 'onClose'>,
extends
Omit<RenderEditCellProps<R, SR>, 'onRowChange' | 'onClose'>,
SharedCellRendererProps<R, SR> {
rowIdx: number;
onRowChange: (row: R, commitChanges: boolean, shouldFocusCell: boolean) => void;
Expand Down
9 changes: 4 additions & 5 deletions src/TreeDataGrid.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,10 @@ import { useDefaultRenderers } from './DataGridDefaultRenderersContext';
import GroupedRow from './GroupRow';
import { defaultRenderRow } from './Row';

export interface TreeDataGridProps<R, SR = unknown, K extends Key = Key>
extends Omit<
DataGridProps<R, SR, K>,
'columns' | 'role' | 'aria-rowcount' | 'rowHeight' | 'onFill' | 'isRowSelectionDisabled'
> {
export interface TreeDataGridProps<R, SR = unknown, K extends Key = Key> extends Omit<
DataGridProps<R, SR, K>,
'columns' | 'role' | 'aria-rowcount' | 'rowHeight' | 'onFill' | 'isRowSelectionDisabled'
> {
columns: readonly Column<NoInfer<R>, NoInfer<SR>>[];
rowHeight?: Maybe<number | ((args: RowHeightArgs<NoInfer<R>>) => number)>;
groupBy: readonly string[];
Expand Down
30 changes: 18 additions & 12 deletions src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,8 @@ export interface RenderHeaderCellProps<TRow, TSummaryRow = unknown> {
}

interface BaseCellRendererProps<TRow, TSummaryRow = unknown>
extends Omit<React.ComponentProps<'div'>, 'children'>,
extends
Omit<React.ComponentProps<'div'>, 'children'>,
Pick<
DataGridProps<TRow, TSummaryRow>,
'onCellMouseDown' | 'onCellClick' | 'onCellDoubleClick' | 'onCellContextMenu'
Expand All @@ -170,8 +171,10 @@ interface BaseCellRendererProps<TRow, TSummaryRow = unknown>
selectCell: (position: Position, options?: SelectCellOptions) => void;
}

export interface CellRendererProps<TRow, TSummaryRow>
extends BaseCellRendererProps<TRow, TSummaryRow> {
export interface CellRendererProps<TRow, TSummaryRow> extends BaseCellRendererProps<
TRow,
TSummaryRow
> {
column: CalculatedColumn<TRow, TSummaryRow>;
row: TRow;
colSpan: number | undefined;
Expand Down Expand Up @@ -229,8 +232,10 @@ export type CellMouseEventHandler<R, SR> = Maybe<
(args: CellMouseArgs<NoInfer<R>, NoInfer<SR>>, event: CellMouseEvent) => void
>;

export interface BaseRenderRowProps<TRow, TSummaryRow = unknown>
extends BaseCellRendererProps<TRow, TSummaryRow> {
export interface BaseRenderRowProps<TRow, TSummaryRow = unknown> extends BaseCellRendererProps<
TRow,
TSummaryRow
> {
viewportColumns: readonly CalculatedColumn<TRow, TSummaryRow>[];
rowIdx: number;
selectedCellIdx: number | undefined;
Expand All @@ -239,8 +244,10 @@ export interface BaseRenderRowProps<TRow, TSummaryRow = unknown>
gridRowStart: number;
}

export interface RenderRowProps<TRow, TSummaryRow = unknown>
extends BaseRenderRowProps<TRow, TSummaryRow> {
export interface RenderRowProps<TRow, TSummaryRow = unknown> extends BaseRenderRowProps<
TRow,
TSummaryRow
> {
row: TRow;
lastFrozenColumnIndex: number;
draggedOverCellIdx: number | undefined;
Expand Down Expand Up @@ -317,11 +324,10 @@ export interface RenderSortPriorityProps {

export interface RenderSortStatusProps extends RenderSortIconProps, RenderSortPriorityProps {}

export interface RenderCheckboxProps
extends Pick<
React.ComponentProps<'input'>,
'aria-label' | 'aria-labelledby' | 'checked' | 'tabIndex' | 'disabled'
> {
export interface RenderCheckboxProps extends Pick<
React.ComponentProps<'input'>,
'aria-label' | 'aria-labelledby' | 'checked' | 'tabIndex' | 'disabled'
> {
indeterminate?: boolean | undefined;
onChange: (checked: boolean, shift: boolean) => void;
}
Expand Down
2 changes: 1 addition & 1 deletion test/browser/column/key.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ test('key is escaped in query selectors', () => {

expect(async () => {
await setup({ columns, rows: [] });
}).not.toThrow();
}).not.toThrowError();
});
3 changes: 2 additions & 1 deletion test/browser/column/renderEditCell.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -337,7 +337,8 @@ describe('Editor', () => {
});

interface EditorTestProps
extends Pick<Column<Row>, 'editorOptions' | 'editable'>,
extends
Pick<Column<Row>, 'editorOptions' | 'editable'>,
Pick<DataGridProps<Row>, 'onCellKeyDown'> {
onSave?: (rows: readonly Row[]) => void;
gridRows?: readonly Row[];
Expand Down