Skip to content

Commit cb1e3e9

Browse files
authored
Merge pull request #2 from echohello-dev/feature/mui-upgrade
feat: Upgrade to MUI v5
2 parents e541521 + bbabec9 commit cb1e3e9

File tree

11 files changed

+396
-139
lines changed

11 files changed

+396
-139
lines changed

Makefile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@ dev: install
2626
@echo "Starting the server at http://localhost:3000"
2727
yarn dev
2828

29+
dev-app:
30+
yarn workspace app start
31+
32+
dev-backend:
33+
yarn workspace backend start
34+
2935
docker-dev:
3036
docker compose up
3137

app-config.example.yaml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,9 @@
1-
# Backstage override configuration for your local development environment
1+
backend:
2+
auth:
3+
keys:
4+
- secret: super-secret
5+
6+
auth:
7+
providers:
8+
guest:
9+
dangerouslyAllowOutsideDevelopment: true

app-config.yaml

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,7 @@ backend:
3535
integrations:
3636
github:
3737
- host: github.com
38-
# This is a Personal Access Token or PAT from GitHub. You can find out how to generate this token, and more information
39-
# about setting up the GitHub integration here: https://backstage.io/docs/integrations/github/locations#configuration
4038
token: ${GITHUB_TOKEN}
41-
### Example for how to add your GitHub Enterprise instance using the API:
42-
# - host: ghe.example.net
43-
# apiBaseUrl: https://ghe.example.net/api/v3
44-
# token: ${GHE_TOKEN}
4539

4640
proxy:
4741
### Example for how to add a proxy endpoint for the frontend.
@@ -76,7 +70,7 @@ catalog:
7670
entityFilename: catalog-info.yaml
7771
pullRequestBranchName: backstage-integration
7872
rules:
79-
- allow: [Component, System, API, Resource, Location]
73+
- allow: [Component, System, API, Resource, Location, Template, User, Group]
8074
locations:
8175
# Local example data, file locations are relative to the backend process, typically `packages/backend`
8276
- type: file

packages/app/package.json

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,11 @@
3737
"@backstage/plugin-techdocs-react": "^1.2.4",
3838
"@backstage/plugin-user-settings": "^0.8.6",
3939
"@backstage/theme": "^0.5.4",
40-
"@material-ui/core": "^4.12.2",
41-
"@material-ui/icons": "^4.9.1",
40+
"@emotion/react": "^11.11.4",
41+
"@emotion/styled": "^11.11.5",
42+
"@mui/icons-material": "^5.15.19",
43+
"@mui/material": "^5.15.19",
44+
"@mui/styles": "^5.15.19",
4245
"history": "^5.0.0",
4346
"react": "^18.0.2",
4447
"react-dom": "^18.0.2",
@@ -72,4 +75,4 @@
7275
"files": [
7376
"dist"
7477
]
75-
}
78+
}

packages/app/src/App.tsx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import { apis } from './apis';
2525
import { entityPage } from './components/catalog/EntityPage';
2626
import { searchPage } from './components/search/SearchPage';
2727
import { Root } from './components/Root';
28+
import AcUnitIcon from '@mui/icons-material/AcUnit';
2829

2930
import {
3031
AlertDisplay,
@@ -36,6 +37,7 @@ import { AppRouter, FlatRoutes } from '@backstage/core-app-api';
3637
import { CatalogGraphPage } from '@backstage/plugin-catalog-graph';
3738
import { RequirePermission } from '@backstage/plugin-permission-react';
3839
import { catalogEntityCreatePermission } from '@backstage/plugin-catalog-common/alpha';
40+
import { themes, UnifiedThemeProvider } from '@backstage/theme';
3941

4042
const app = createApp({
4143
apis,
@@ -59,6 +61,17 @@ const app = createApp({
5961
components: {
6062
SignInPage: props => <SignInPage {...props} auto providers={['guest']} />,
6163
},
64+
themes: [
65+
{
66+
id: 'my-theme',
67+
title: 'My Custom Theme',
68+
variant: 'light',
69+
icon: <AcUnitIcon />,
70+
Provider: ({ children }) => (
71+
<UnifiedThemeProvider theme={themes.light} children={children} />
72+
),
73+
},
74+
],
6275
});
6376

6477
const routes = (

packages/app/src/components/Root/LogoFull.tsx

Lines changed: 12 additions & 21 deletions
Large diffs are not rendered by default.

packages/app/src/components/Root/LogoIcon.tsx

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,20 @@
11
import React from 'react';
2-
import { makeStyles } from '@material-ui/core';
2+
import { styled } from '@mui/material/styles';
33

4-
const useStyles = makeStyles({
5-
svg: {
6-
width: 'auto',
7-
height: 28,
8-
},
9-
path: {
10-
fill: '#7df3e1',
11-
},
4+
const Svg = styled('svg')({
5+
width: 'auto',
6+
height: 28,
127
});
138

14-
const LogoIcon = () => {
15-
const classes = useStyles();
9+
const Path = styled('path')({
10+
fill: '#7df3e1',
11+
});
1612

13+
const LogoIcon = () => {
1714
return (
18-
<svg
19-
className={classes.svg}
20-
xmlns="http://www.w3.org/2000/svg"
21-
viewBox="0 0 337.46 428.5"
22-
>
23-
<path
24-
className={classes.path}
25-
d="M303,166.05a80.69,80.69,0,0,0,13.45-10.37c.79-.77,1.55-1.53,2.3-2.3a83.12,83.12,0,0,0,7.93-9.38A63.69,63.69,0,0,0,333,133.23a48.58,48.58,0,0,0,4.35-16.4c1.49-19.39-10-38.67-35.62-54.22L198.56,0,78.3,115.23,0,190.25l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.69,19.16-18.36,25.52-42.12,13.7-61.87a49.22,49.22,0,0,0-6.8-8.87A89.17,89.17,0,0,0,259,178.29h.15a85.08,85.08,0,0,0,31-5.79A80.88,80.88,0,0,0,303,166.05ZM202.45,225.86c-19.32,18.51-50.4,21.23-75.7,5.9L51.61,186.15l67.45-64.64,76.41,46.38C223,184.58,221.49,207.61,202.45,225.86Zm8.93-82.22-70.65-42.89L205.14,39,274.51,81.1c25.94,15.72,29.31,37,10.55,55A60.69,60.69,0,0,1,211.38,143.64Zm29.86,190c-19.57,18.75-46.17,29.09-74.88,29.09a123.73,123.73,0,0,1-64.1-18.2L0,282.52v24.67L108.6,373.1a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.27,87.27,0,0,1,241.24,333.68Zm0-39c-19.57,18.75-46.17,29.08-74.88,29.08a123.81,123.81,0,0,1-64.1-18.19L0,243.53v24.68l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.5v-1.78A87.27,87.27,0,0,1,241.24,294.7Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.81,123.81,0,0,1-64.1-18.19L0,204.55v24.68l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.68,12.88-12.35,20-27.13,19.68-41.5v-1.82A86.09,86.09,0,0,1,241.24,255.71Zm83.7,25.74a94.15,94.15,0,0,1-60.2,25.86h0V334a81.6,81.6,0,0,0,51.74-22.37c14-13.38,21.14-28.11,21-42.64v-2.19A94.92,94.92,0,0,1,324.94,281.45Zm-83.7,91.21c-19.57,18.76-46.17,29.09-74.88,29.09a123.73,123.73,0,0,1-64.1-18.2L0,321.5v24.68l108.6,65.9a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.8,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A86.29,86.29,0,0,1,241.24,372.66ZM327,162.45c-.68.69-1.35,1.38-2.05,2.06a94.37,94.37,0,0,1-10.64,8.65,91.35,91.35,0,0,1-11.6,7,94.53,94.53,0,0,1-26.24,8.71,97.69,97.69,0,0,1-14.16,1.57c.5,1.61.9,3.25,1.25,4.9a53.27,53.27,0,0,1,1.14,12V217h.05a84.41,84.41,0,0,0,25.35-5.55,81,81,0,0,0,26.39-16.82c.8-.77,1.5-1.56,2.26-2.34a82.08,82.08,0,0,0,7.93-9.38A63.76,63.76,0,0,0,333,172.17a48.55,48.55,0,0,0,4.32-16.45c.09-1.23.2-2.47.19-3.7V150q-1.08,1.54-2.25,3.09A96.73,96.73,0,0,1,327,162.45Zm0,77.92c-.69.7-1.31,1.41-2,2.1a94.2,94.2,0,0,1-60.2,25.86h0l0,26.67h0a81.6,81.6,0,0,0,51.74-22.37A73.51,73.51,0,0,0,333,250.13a48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.47.19-3.71v-2.19c-.74,1.07-1.46,2.15-2.27,3.21A95.68,95.68,0,0,1,327,240.37Zm0-39c-.69.7-1.31,1.41-2,2.1a93.18,93.18,0,0,1-10.63,8.65,91.63,91.63,0,0,1-11.63,7,95.47,95.47,0,0,1-37.94,10.18h0V256h0a81.65,81.65,0,0,0,51.74-22.37c.8-.77,1.5-1.56,2.26-2.34a82.08,82.08,0,0,0,7.93-9.38A63.76,63.76,0,0,0,333,211.15a48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.48.19-3.71v-2.2c-.74,1.08-1.46,2.16-2.27,3.22A95.68,95.68,0,0,1,327,201.39Z"
26-
/>
27-
</svg>
15+
<Svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 337.46 428.5">
16+
<Path d="M303,166.05a80.69,80.69,0,0,0,13.45-10.37c.79-.77,1.55-1.53,2.3-2.3a83.12,83.12,0,0,0,7.93-9.38A63.69,63.69,0,0,0,333,133.23a48.58,48.58,0,0,0,4.35-16.4c1.49-19.39-10-38.67-35.62-54.22L198.56,0,78.3,115.23,0,190.25l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.69,19.16-18.36,25.52-42.12,13.7-61.87a49.22,49.22,0,0,0-6.8-8.87A89.17,89.17,0,0,0,259,178.29h.15a85.08,85.08,0,0,0,31-5.79A80.88,80.88,0,0,0,303,166.05ZM202.45,225.86c-19.32,18.51-50.4,21.23-75.7,5.9L51.61,186.15l67.45-64.64,76.41,46.38C223,184.58,221.49,207.61,202.45,225.86Zm8.93-82.22-70.65-42.89L205.14,39,274.51,81.1c25.94,15.72,29.31,37,10.55,55A60.69,60.69,0,0,1,211.38,143.64Zm29.86,190c-19.57,18.75-46.17,29.09-74.88,29.09a123.73,123.73,0,0,1-64.1-18.2L0,282.52v24.67L108.6,373.1a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.27,87.27,0,0,1,241.24,333.68Zm0-39c-19.57,18.75-46.17,29.08-74.88,29.08a123.81,123.81,0,0,1-64.1-18.19L0,243.53v24.68l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.5v-1.78A87.27,87.27,0,0,1,241.24,294.7Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.81,123.81,0,0,1-64.1-18.19L0,204.55v24.68l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.68,12.88-12.35,20-27.13,19.68-41.5v-1.82A86.09,86.09,0,0,1,241.24,255.71Zm83.7,25.74a94.15,94.15,0,0,1-60.2,25.86h0V334a81.6,81.6,0,0,0,51.74-22.37c14-13.38,21.14-28.11,21-42.64v-2.19A94.92,94.92,0,0,1,324.94,281.45Zm-83.7,91.21c-19.57,18.76-46.17,29.09-74.88,29.09a123.73,123.73,0,0,1-64.1-18.2L0,321.5v24.68l108.6,65.9a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.8,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A86.29,86.29,0,0,1,241.24,372.66ZM327,162.45c-.68.69-1.35,1.38-2.05,2.06a94.37,94.37,0,0,1-10.64,8.65,91.35,91.35,0,0,1-11.6,7,94.53,94.53,0,0,1-26.24,8.71,97.69,97.69,0,0,1-14.16,1.57c.5,1.61.9,3.25,1.25,4.9a53.27,53.27,0,0,1,1.14,12V217h.05a84.41,84.41,0,0,0,25.35-5.55,81,81,0,0,0,26.39-16.82c.8-.77,1.5-1.56,2.26-2.34a82.08,82.08,0,0,0,7.93-9.38A63.76,63.76,0,0,0,333,172.17a48.55,48.55,0,0,0,4.32-16.45c.09-1.23.2-2.47.19-3.7V150q-1.08,1.54-2.25,3.09A96.73,96.73,0,0,1,327,162.45Zm0,77.92c-.69.7-1.31,1.41-2,2.1a94.2,94.2,0,0,1-60.2,25.86h0l0,26.67h0a81.6,81.6,0,0,0,51.74-22.37A73.51,73.51,0,0,0,333,250.13a48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.47.19-3.71v-2.19c-.74,1.07-1.46,2.15-2.27,3.21A95.68,95.68,0,0,1,327,240.37Zm0-39c-.69.7-1.31,1.41-2,2.1a93.18,93.18,0,0,1-10.63,8.65,91.63,91.63,0,0,1-11.63,7,95.47,95.47,0,0,1-37.94,10.18h0V256h0a81.65,81.65,0,0,0,51.74-22.37c.8-.77,1.5-1.56,2.26-2.34a82.08,82.08,0,0,0,7.93-9.38A63.76,63.76,0,0,0,333,211.15a48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.48.19-3.71v-2.2c-.74,1.08-1.46,2.16-2.27,3.22A95.68,95.68,0,0,1,327,201.39Z" />
17+
</Svg>
2818
);
2919
};
3020

packages/app/src/components/Root/Root.tsx

Lines changed: 49 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import React, { PropsWithChildren } from 'react';
2-
import { makeStyles } from '@material-ui/core';
3-
import HomeIcon from '@material-ui/icons/Home';
4-
import ExtensionIcon from '@material-ui/icons/Extension';
5-
import MapIcon from '@material-ui/icons/MyLocation';
6-
import LibraryBooks from '@material-ui/icons/LibraryBooks';
7-
import CreateComponentIcon from '@material-ui/icons/AddCircleOutline';
2+
import { styled } from '@mui/material/styles';
3+
import Home from '@mui/icons-material/Home';
4+
import Extension from '@mui/icons-material/Extension';
5+
import Map from '@mui/icons-material/MyLocation';
6+
import LibraryBooks from '@mui/icons-material/LibraryBooks';
7+
import CreateComponent from '@mui/icons-material/AddCircleOutline';
88
import LogoFull from './LogoFull';
99
import LogoIcon from './LogoIcon';
1010
import {
@@ -24,55 +24,70 @@ import {
2424
useSidebarOpenState,
2525
Link,
2626
} from '@backstage/core-components';
27-
import MenuIcon from '@material-ui/icons/Menu';
28-
import SearchIcon from '@material-ui/icons/Search';
27+
import Menu from '@mui/icons-material/Menu';
28+
import Search from '@mui/icons-material/Search';
29+
import { IconComponent } from '@backstage/core-plugin-api';
2930

30-
const useSidebarLogoStyles = makeStyles({
31-
root: {
32-
width: sidebarConfig.drawerWidthClosed,
33-
height: 3 * sidebarConfig.logoHeight,
34-
display: 'flex',
35-
flexFlow: 'row nowrap',
36-
alignItems: 'center',
37-
marginBottom: -14,
38-
},
39-
link: {
40-
width: sidebarConfig.drawerWidthClosed,
41-
marginLeft: 24,
42-
},
43-
});
31+
const SidebarLogoRoot = styled('div')(() => ({
32+
width: sidebarConfig.drawerWidthClosed,
33+
height: 3 * sidebarConfig.logoHeight,
34+
display: 'flex',
35+
flexFlow: 'row nowrap',
36+
alignItems: 'center',
37+
marginBottom: -14,
38+
}));
39+
40+
const SidebarLogoLink = styled(Link)(() => ({
41+
width: sidebarConfig.drawerWidthClosed,
42+
marginLeft: 24,
43+
}));
4444

4545
const SidebarLogo = () => {
46-
const classes = useSidebarLogoStyles();
4746
const { isOpen } = useSidebarOpenState();
4847

4948
return (
50-
<div className={classes.root}>
51-
<Link to="/" underline="none" className={classes.link} aria-label="Home">
49+
<SidebarLogoRoot>
50+
<SidebarLogoLink to="/" underline="none" aria-label="Home">
5251
{isOpen ? <LogoFull /> : <LogoIcon />}
53-
</Link>
54-
</div>
52+
</SidebarLogoLink>
53+
</SidebarLogoRoot>
5554
);
5655
};
5756

5857
export const Root = ({ children }: PropsWithChildren<{}>) => (
5958
<SidebarPage>
6059
<Sidebar>
6160
<SidebarLogo />
62-
<SidebarGroup label="Search" icon={<SearchIcon />} to="/search">
61+
<SidebarGroup label="Search" icon={<Search />} to="/search">
6362
<SidebarSearchModal />
6463
</SidebarGroup>
6564
<SidebarDivider />
66-
<SidebarGroup label="Menu" icon={<MenuIcon />}>
65+
<SidebarGroup label="Menu" icon={<Menu />}>
6766
{/* Global nav, not org-specific */}
68-
<SidebarItem icon={HomeIcon} to="catalog" text="Home" />
69-
<SidebarItem icon={ExtensionIcon} to="api-docs" text="APIs" />
70-
<SidebarItem icon={LibraryBooks} to="docs" text="Docs" />
71-
<SidebarItem icon={CreateComponentIcon} to="create" text="Create..." />
67+
<SidebarItem icon={Home as IconComponent} to="catalog" text="Home" />
68+
<SidebarItem
69+
icon={Extension as IconComponent}
70+
to="api-docs"
71+
text="APIs"
72+
/>
73+
<SidebarItem
74+
icon={LibraryBooks as IconComponent}
75+
to="docs"
76+
text="Docs"
77+
/>
78+
<SidebarItem
79+
icon={CreateComponent as IconComponent}
80+
to="create"
81+
text="Create..."
82+
/>
7283
{/* End global nav */}
7384
<SidebarDivider />
7485
<SidebarScrollWrapper>
75-
<SidebarItem icon={MapIcon} to="tech-radar" text="Tech Radar" />
86+
<SidebarItem
87+
icon={Map as IconComponent}
88+
to="tech-radar"
89+
text="Tech Radar"
90+
/>
7691
</SidebarScrollWrapper>
7792
</SidebarGroup>
7893
<SidebarSpace />

packages/app/src/components/catalog/EntityPage.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import React from 'react';
2-
import { Button, Grid } from '@material-ui/core';
32
import {
43
EntityApiDefinitionCard,
54
EntityConsumedApisCard,
@@ -53,6 +52,8 @@ import {
5352

5453
import { TechDocsAddons } from '@backstage/plugin-techdocs-react';
5554
import { ReportIssue } from '@backstage/plugin-techdocs-module-addons-contrib';
55+
import Button from '@mui/material/Button';
56+
import Grid from '@mui/material/Grid';
5657

5758
const techdocsContent = (
5859
<EntityTechdocsContent>

packages/app/src/components/search/SearchPage.tsx

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React from 'react';
2-
import { makeStyles, Theme, Grid, Paper } from '@material-ui/core';
2+
import { styled } from '@mui/material/styles';
33

44
import { CatalogSearchResultListItem } from '@backstage/plugin-catalog';
55
import {
@@ -24,24 +24,31 @@ import {
2424
Page,
2525
} from '@backstage/core-components';
2626
import { useApi } from '@backstage/core-plugin-api';
27+
import Paper from '@mui/material/Paper';
28+
import Grid from '@mui/material/Grid';
2729

28-
const useStyles = makeStyles((theme: Theme) => ({
29-
bar: {
30-
padding: theme.spacing(1, 0),
31-
},
32-
filters: {
33-
padding: theme.spacing(2),
34-
marginTop: theme.spacing(2),
30+
const Bar = styled(Paper)(({ theme }) => ({
31+
padding: theme.spacing(1, 0),
32+
}));
33+
34+
const Filters = styled(Paper)(({ theme }) => ({
35+
padding: theme.spacing(2),
36+
marginTop: theme.spacing(2),
37+
}));
38+
39+
const SearchFilterSelect = styled(SearchFilter.Select)(({ theme }) => ({
40+
'& + &': {
41+
marginTop: theme.spacing(2.5),
3542
},
36-
filter: {
37-
'& + &': {
38-
marginTop: theme.spacing(2.5),
39-
},
43+
}));
44+
45+
const SearchFilterCheckbox = styled(SearchFilter.Checkbox)(({ theme }) => ({
46+
'& + &': {
47+
marginTop: theme.spacing(2.5),
4048
},
4149
}));
4250

4351
const SearchPage = () => {
44-
const classes = useStyles();
4552
const { types } = useSearch();
4653
const catalogApi = useApi(catalogApiRef);
4754

@@ -51,9 +58,9 @@ const SearchPage = () => {
5158
<Content>
5259
<Grid container direction="row">
5360
<Grid item xs={12}>
54-
<Paper className={classes.bar}>
61+
<Bar>
5562
<SearchBar />
56-
</Paper>
63+
</Bar>
5764
</Grid>
5865
<Grid item xs={3}>
5966
<SearchType.Accordion
@@ -72,10 +79,9 @@ const SearchPage = () => {
7279
},
7380
]}
7481
/>
75-
<Paper className={classes.filters}>
82+
<Filters>
7683
{types.includes('techdocs') && (
77-
<SearchFilter.Select
78-
className={classes.filter}
84+
<SearchFilterSelect
7985
label="Entity"
8086
name="name"
8187
values={async () => {
@@ -94,19 +100,17 @@ const SearchPage = () => {
94100
}}
95101
/>
96102
)}
97-
<SearchFilter.Select
98-
className={classes.filter}
103+
<SearchFilterSelect
99104
label="Kind"
100105
name="kind"
101106
values={['Component', 'Template']}
102107
/>
103-
<SearchFilter.Checkbox
104-
className={classes.filter}
108+
<SearchFilterCheckbox
105109
label="Lifecycle"
106110
name="lifecycle"
107111
values={['experimental', 'production']}
108112
/>
109-
</Paper>
113+
</Filters>
110114
</Grid>
111115
<Grid item xs={9}>
112116
<SearchPagination />

0 commit comments

Comments
 (0)