Skip to content

Commit 9051710

Browse files
v0.16.0 (#5014)
1 parent bc82eb5 commit 9051710

14 files changed

Lines changed: 65 additions & 22 deletions

File tree

CHANGELOG.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,45 @@
11
# Changelog
22

3+
## v0.16.0
4+
5+
<!-- generated comparing v0.15.0..master -->
6+
7+
_Jun 11, 2025_
8+
9+
A big thanks to the 5 contributors who made this release possible. Here are some highlights ✨:
10+
11+
- CRUD improvements including non-editable fields, rendering custom fields, and page containers out-of-the-box!
12+
13+
**BREAKING CHANGE**: CRUD pages now include a `PageContainer` based on the `pageTitles` prop. Either remove the `PageContainer` you were using in these pages and set the `pageTitles` prop, or override the container using the `pageContainer` slot.
14+
You can find more detailed instructions and examples in the [CRUD component documentation](https://mui.com/toolpad/core/react-crud/).
15+
16+
- New app provider for [Tanstack React Router](https://mui.com/toolpad/core/integrations/tanstack-router/).
17+
- New `useNavigationHook` to access your navigation configuration from anywhere.
18+
- Japanese locale support.
19+
20+
### `@toolpad/core`
21+
22+
- Support non-editable items in CRUD form pages (#4918) @apedroferreira
23+
- Allow custom form fields in CRUD (#4968) @apedroferreira
24+
- Add Tanstack React Router provider (#4971) @apedroferreira
25+
- CRUD page titles with `pageTitles` and `pageTitle` props (#4930) @apedroferreira
26+
- Add new `useNavigation` hook (#4965) @apedroferreira
27+
- Make CRUD forms React 18 compatible (#4966) @apedroferreira
28+
- Allow full customization for dashboard header (#4820) @rkristelijn
29+
- Fix closing behavior under strict mode (#4973) @Janpot
30+
- CRUD UI improvements (#4937) @apedroferreira
31+
- Add Japanese locale support (#4970) @yuito-it
32+
- Small adjustment to Data Grid selection in CRUD. (#4983) @apedroferreira
33+
- Use named imports for locales (#4945) @yuito-it
34+
35+
### Core
36+
37+
- Remove Toolpad Studio (#4987) @apedroferreira
38+
- Remove @vitejs/plugin-react as dependency (#4977) @Janpot
39+
- Remove required checkout step (f916976) @oliviertassinari
40+
41+
All contributors of this release in alphabetical order: @apedroferreira, @Janpot, @oliviertassinari, @rkristelijn, @yuito-it
42+
343
## v0.15.0
444

545
<!-- generated comparing v0.14.0..master -->

docs/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "docs",
3-
"version": "0.15.0",
3+
"version": "0.16.0",
44
"private": true,
55
"license": "MIT",
66
"scripts": {

lerna.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"$schema": "node_modules/lerna/schemas/lerna-schema.json",
3-
"version": "0.15.0",
3+
"version": "0.16.0",
44
"npmClient": "pnpm"
55
}

packages/create-toolpad-app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "create-toolpad-app",
3-
"version": "0.15.0",
3+
"version": "0.16.0",
44
"author": "MUI Team",
55
"description": "Create Toolpad apps with one command",
66
"keywords": [

packages/create-toolpad-app/src/templates/employeesPage.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const ordersPage: Template = (options) => {
55
const routerType = options.router;
66
const framework = options.framework;
77

8-
let imports = `${routerType === 'nextjs-app' ? 'use client;' : ''}import * as React from 'react';
8+
let imports = `${routerType === 'nextjs-app' ? `'use client';\n` : ''}import * as React from 'react';
99
${routerType === 'nextjs-pages' ? `import { useRouter } from 'next/router';` : ''}
1010
${routerType === 'nextjs-app' ? `import { useParams } from 'next/navigation';` : ''}
1111
${framework === 'vite' ? `import { useParams } from 'react-router';` : ''}
@@ -32,8 +32,6 @@ import { employeesDataSource, Employee, employeesCache } from '${routerType ===
3232
}
3333
}
3434

35-
const isAsync = authEnabled && routerType === 'nextjs-app' ? 'async ' : '';
36-
3735
let requireAuth = '';
3836
if (authEnabled && routerType === 'nextjs-pages') {
3937
requireAuth = `\n\nEmployeesCrudPage.requireAuth = true;`;
@@ -42,15 +40,20 @@ import { employeesDataSource, Employee, employeesCache } from '${routerType ===
4240
return `${imports}
4341
4442
45-
export default ${isAsync}function EmployeesCrudPage() {
43+
export default function EmployeesCrudPage() {
4644
${
4745
routerType === 'nextjs-pages'
4846
? `const router = useRouter();
4947
const { segments = [] } = router.query;
5048
const [employeeId] = segments;`
5149
: ''
5250
}
53-
${routerType === 'nextjs-app' ? 'const { employeeId } = useParams();' : ''}
51+
${
52+
routerType === 'nextjs-app'
53+
? `const params = useParams();
54+
const [employeeId] = params.segments ?? [];`
55+
: ''
56+
}
5457
${framework === 'vite' ? 'const { employeeId } = useParams();' : ''}
5558
5659
${sessionHandling}

packages/create-toolpad-app/src/templates/indexPage.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,11 @@ export default ${isAsync}function HomePage() {
5151
${sessionHandling}
5252
5353
return (
54+
<PageContainer>
5455
<Typography>
55-
<PageContainer>
56-
${welcomeMessage}
57-
</PageContainer>
56+
${welcomeMessage}
5857
</Typography>
58+
</PageContainer>
5959
);
6060
}${requireAuth}
6161
`;

packages/create-toolpad-app/src/templates/vite/dashboardLayout.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,8 @@ const dashboardTemplate: Template = (options) => {
99
`
1010
: ``
1111
}
12-
import { Outlet } from 'react-router';
12+
import { Outlet${auth ? `, Navigate, useLocation` : ''} } from 'react-router';
1313
import { DashboardLayout${auth ? ', ThemeSwitcher' : ''} } from '@toolpad/core/DashboardLayout';
14-
import { PageContainer } from '@toolpad/core/PageContainer';
1514
${
1615
auth
1716
? `import { Account } from '@toolpad/core/Account';
@@ -55,7 +54,7 @@ export default function Layout() {
5554
}
5655
5756
return (
58-
<DashboardLayout title={title} ${auth ? ` slots={{ toolbarActions: CustomActions }}` : ''}>
57+
<DashboardLayout ${auth ? ` slots={{ toolbarActions: CustomActions }}` : ''}>
5958
<Outlet />
6059
</DashboardLayout>
6160
);

packages/eslint-plugin-material-ui/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "eslint-plugin-material-ui",
3-
"version": "0.15.0",
3+
"version": "0.16.0",
44
"private": true,
55
"description": "Custom eslint rules for Material UI.",
66
"main": "src/index.js",

packages/toolpad-core/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@toolpad/core",
3-
"version": "0.15.0",
3+
"version": "0.16.0",
44
"author": "MUI Team",
55
"description": "Dashboard framework powered by Material UI.",
66
"main": "./node/index.js",
@@ -66,8 +66,8 @@
6666
"@types/react": "^19.1.6",
6767
"@types/react-dom": "^19.1.6",
6868
"@types/sinon": "^17.0.4",
69-
"@vitest/browser": "2.1.9",
7069
"@vitejs/plugin-react": "4.5.2",
70+
"@vitest/browser": "2.1.9",
7171
"next": "^15.3.3",
7272
"next-router-mock": "^0.9.13",
7373
"playwright": "1.52.0",

packages/toolpad-utils/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@toolpad/utils",
3-
"version": "0.15.0",
3+
"version": "0.16.0",
44
"author": "MUI Team",
55
"description": "Shared utilities used by Toolpad packages.",
66
"homepage": "https://github.com/mui/toolpad#readme",

0 commit comments

Comments
 (0)