Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 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
30 changes: 15 additions & 15 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",
"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