Skip to content

Commit be8907a

Browse files
authored
Migrate to tanstack router (#3600)
* Migrate to tanstack router * all features: generate rows in a loader
1 parent 8815dd5 commit be8907a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+997
-273
lines changed

.prettierignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
*.js
22
*.json
3+
/website/routeTree.gen.ts

biome.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
"./coverage/**/*",
77
"./dist/**/*",
88
"./lib/**/*",
9-
"./node_modules/**/*"
9+
"./node_modules/**/*",
10+
"./website/routeTree.gen.ts"
1011
]
1112
},
1213
"formatter": {

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@
6969
"@microsoft/api-extractor": "^7.23.0",
7070
"@rollup/plugin-babel": "^6.0.3",
7171
"@rollup/plugin-node-resolve": "^15.1.0",
72+
"@tanstack/react-router": "^1.57.13",
73+
"@tanstack/router-plugin": "^1.57.13",
7274
"@testing-library/dom": "^10.1.0",
7375
"@testing-library/react": "^16.0.0",
7476
"@testing-library/user-event": "^14.5.2",
@@ -99,7 +101,6 @@
99101
"react-dnd": "^16.0.1",
100102
"react-dnd-html5-backend": "^16.0.1",
101103
"react-dom": "^18.3.1",
102-
"react-router-dom": "^6.11.1",
103104
"rollup": "^4.0.2",
104105
"rollup-plugin-postcss": "^4.0.2",
105106
"typescript": "~5.6.2",

vite.config.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1+
import { TanStackRouterVite } from '@tanstack/router-plugin/vite';
12
import react from '@vitejs/plugin-react';
23
import wyw from '@wyw-in-js/vite';
34
import browserslist from 'browserslist';
45
import { defineConfig } from 'vite';
56

67
const isCI = process.env.CI === 'true';
8+
const isTest = process.env.NODE_ENV === 'test';
79

810
export default defineConfig(({ command }) => ({
911
base: '/react-data-grid/',
@@ -19,6 +21,11 @@ export default defineConfig(({ command }) => ({
1921
stringify: true
2022
},
2123
plugins: [
24+
!isTest &&
25+
TanStackRouterVite({
26+
generatedRouteTree: 'website/routeTree.gen.ts',
27+
routesDirectory: 'website/routes'
28+
}),
2229
react({
2330
exclude: ['./.cache/**/*']
2431
}),

website/Nav.tsx

Lines changed: 28 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { NavLink } from 'react-router-dom';
1+
import { Link } from '@tanstack/react-router';
22
import { css } from '@linaria/core';
33

44
import type { Direction } from '../src/types';
@@ -27,15 +27,15 @@ const navClassname = css`
2727
&:hover {
2828
background-color: light-dark(hsl(210deg 50% 90%), hsl(210deg 50% 30%));
2929
}
30-
}
31-
`;
3230
33-
const activeNavClassname = css`
34-
font-weight: 500;
35-
background-color: light-dark(hsl(210deg 50% 80%), hsl(210deg 50% 40%));
31+
&[aria-current='page'] {
32+
font-weight: 500;
33+
background-color: light-dark(hsl(210deg 50% 80%), hsl(210deg 50% 40%));
3634
37-
a&:hover {
38-
background-color: light-dark(hsl(210deg 50% 70%), hsl(210deg 50% 50%));
35+
&:hover {
36+
background-color: light-dark(hsl(210deg 50% 70%), hsl(210deg 50% 50%));
37+
}
38+
}
3939
}
4040
`;
4141

@@ -54,66 +54,26 @@ export default function Nav({ direction, onDirectionChange }: Props) {
5454
<h1>react-data-grid</h1>
5555

5656
<h2>Demos</h2>
57-
<NavLink to="/common-features" end className={getActiveClassname}>
58-
Common Features
59-
</NavLink>
60-
<NavLink to="/all-features" end className={getActiveClassname}>
61-
All Features
62-
</NavLink>
63-
<NavLink to="/cell-navigation" end className={getActiveClassname}>
64-
Cell Navigation
65-
</NavLink>
66-
<NavLink to="/column-spanning" end className={getActiveClassname}>
67-
Column Spanning
68-
</NavLink>
69-
<NavLink to="/column-grouping" end className={getActiveClassname}>
70-
Column Grouping
71-
</NavLink>
72-
<NavLink to="/columns-reordering" end className={getActiveClassname}>
73-
Columns Reordering
74-
</NavLink>
75-
<NavLink to="/context-menu" end className={getActiveClassname}>
76-
Context Menu
77-
</NavLink>
78-
<NavLink to="/customizable-renderers" end className={getActiveClassname}>
79-
Customizable Renderers
80-
</NavLink>
81-
<NavLink to="/row-grouping" end className={getActiveClassname}>
82-
Row Grouping
83-
</NavLink>
84-
<NavLink to="/header-filters" end className={getActiveClassname}>
85-
Header Filters
86-
</NavLink>
87-
<NavLink to="/infinite-scrolling" end className={getActiveClassname}>
88-
Infinite Scrolling
89-
</NavLink>
90-
<NavLink to="/master-detail" end className={getActiveClassname}>
91-
Master Detail
92-
</NavLink>
93-
<NavLink to="/million-cells" end className={getActiveClassname}>
94-
A Million Cells
95-
</NavLink>
96-
<NavLink to="/no-rows" end className={getActiveClassname}>
97-
No Rows
98-
</NavLink>
99-
<NavLink to="/resizable-grid" end className={getActiveClassname}>
100-
Resizable Grid
101-
</NavLink>
102-
<NavLink to="/rows-reordering" end className={getActiveClassname}>
103-
Rows Reordering
104-
</NavLink>
105-
<NavLink to="/scroll-to-cell" end className={getActiveClassname}>
106-
Scroll To Cell
107-
</NavLink>
108-
<NavLink to="/tree-view" end className={getActiveClassname}>
109-
Tree View
110-
</NavLink>
111-
<NavLink to="/variable-row-height" end className={getActiveClassname}>
112-
Variable Row Height
113-
</NavLink>
114-
<NavLink to="/animation" end className={getActiveClassname}>
115-
Animation
116-
</NavLink>
57+
<Link to="/CommonFeatures">Common Features</Link>
58+
<Link to="/AllFeatures">All Features</Link>
59+
<Link to="/CellNavigation">Cell Navigation</Link>
60+
<Link to="/ColumnSpanning">Column Spanning</Link>
61+
<Link to="/ColumnGrouping">Column Grouping</Link>
62+
<Link to="/ColumnsReordering">Columns Reordering</Link>
63+
<Link to="/ContextMenu">Context Menu</Link>
64+
<Link to="/CustomizableRenderers">Customizable Renderers</Link>
65+
<Link to="/RowGrouping">Row Grouping</Link>
66+
<Link to="/HeaderFilters">Header Filters</Link>
67+
<Link to="/InfiniteScrolling">Infinite Scrolling</Link>
68+
<Link to="/MasterDetail">Master Detail</Link>
69+
<Link to="/MillionCells">A Million Cells</Link>
70+
<Link to="/NoRows">No Rows</Link>
71+
<Link to="/ResizableGrid">Resizable Grid</Link>
72+
<Link to="/RowsReordering">Rows Reordering</Link>
73+
<Link to="/ScrollToCell">Scroll To Cell</Link>
74+
<Link to="/TreeView">Tree View</Link>
75+
<Link to="/VariableRowHeight">Variable Row Height</Link>
76+
<Link to="/Animation">Animation</Link>
11777

11878
<h2>Links</h2>
11979
<a
@@ -153,7 +113,3 @@ export default function Nav({ direction, onDirectionChange }: Props) {
153113
</nav>
154114
);
155115
}
156-
157-
function getActiveClassname({ isActive }: { isActive: boolean }) {
158-
return isActive ? activeNavClassname : '';
159-
}

website/demos/components/DraggableRowRenderer.tsx renamed to website/components/DraggableRowRenderer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { useDrag, useDrop } from 'react-dnd';
22
import { css } from '@linaria/core';
33
import clsx from 'clsx';
44

5-
import { Row, type RenderRowProps } from '../../../src';
5+
import { Row, type RenderRowProps } from '../../src';
66

77
const rowDraggingClassname = css`
88
opacity: 0.5;
File renamed without changes.

website/demos/renderers/index.ts

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)