From 469213829458a253997e935b73f87cf8eaadec77 Mon Sep 17 00:00:00 2001 From: Marija Najdova Date: Wed, 5 May 2021 17:13:12 +0200 Subject: [PATCH 1/4] tree view demos migrated --- .../pages/components/tree-view/BarTreeView.js | 67 +++++---------- .../components/tree-view/BarTreeView.tsx | 67 +++++---------- .../tree-view/ControlledTreeView.js | 22 ++--- .../tree-view/ControlledTreeView.tsx | 22 ++--- .../tree-view/CustomizedTreeView.js | 26 +++--- .../tree-view/CustomizedTreeView.tsx | 28 +++---- .../components/tree-view/DisabledTreeItems.js | 22 ++--- .../tree-view/DisabledTreeItems.tsx | 22 ++--- .../tree-view/FileSystemNavigator.js | 13 +-- .../tree-view/FileSystemNavigator.tsx | 13 +-- .../components/tree-view/GmailTreeView.js | 81 +++++++------------ .../components/tree-view/GmailTreeView.tsx | 81 +++++++------------ .../tree-view/IconExpansionTreeView.js | 13 +-- .../tree-view/IconExpansionTreeView.tsx | 13 +-- .../tree-view/MultiSelectTreeView.js | 13 +-- .../tree-view/MultiSelectTreeView.tsx | 13 +-- .../tree-view/RichObjectTreeView.js | 13 +-- .../tree-view/RichObjectTreeView.tsx | 13 +-- 18 files changed, 142 insertions(+), 400 deletions(-) diff --git a/docs/src/pages/components/tree-view/BarTreeView.js b/docs/src/pages/components/tree-view/BarTreeView.js index f6a90ded0ea7e7..acc6eb5949723c 100644 --- a/docs/src/pages/components/tree-view/BarTreeView.js +++ b/docs/src/pages/components/tree-view/BarTreeView.js @@ -1,6 +1,6 @@ import * as React from 'react'; import PropTypes from 'prop-types'; -import { makeStyles, alpha } from '@material-ui/core/styles'; +import { experimentalStyled, alpha } from '@material-ui/core/styles'; import TreeView from '@material-ui/lab/TreeView'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import ChevronRightIcon from '@material-ui/icons/ChevronRight'; @@ -8,53 +8,37 @@ import TreeItem, { useTreeItem } from '@material-ui/lab/TreeItem'; import clsx from 'clsx'; import Typography from '@material-ui/core/Typography'; -const useStyles = makeStyles({ - root: { - height: 240, - flexGrow: 1, - maxWidth: 400, - position: 'relative', +const CustomContentRoot = experimentalStyled('div')(({ theme }) => ({ + WebkitTapHighlightColor: 'transparent', + '&:hover, &.Mui-disabled, &.Mui-focused, &.Mui-selected, &.Mui-selected.Mui-focused, &.Mui-selected:hover': { + backgroundColor: 'transparent', }, -}); - -const useContentStyles = makeStyles((theme) => ({ - root: { - WebkitTapHighlightColor: 'transparent', - '&:hover, &$disabled, &$focused, &$selected, &$selected$focused, &$selected:hover': { - backgroundColor: 'transparent', - }, - }, - label: { - width: '100%', - paddingLeft: 4, - position: 'relative', - }, - bar: { + [`& .MuiTreeItem-contentBar`]: { position: 'absolute', width: '100%', height: 24, left: 0, - '$root:hover &': { + '&:hover &': { backgroundColor: theme.palette.action.hover, // Reset on touch devices, it doesn't add specificity '@media (hover: none)': { backgroundColor: 'transparent', }, }, - '$root$disabled &': { + '&.Mui-disabled &': { opacity: theme.palette.action.disabledOpacity, backgroundColor: 'transparent', }, - '$root$focused &': { + '&.Mui-focused &': { backgroundColor: theme.palette.action.focus, }, - '$root$selected &': { + '&.Mui-selected &': { backgroundColor: alpha( theme.palette.primary.main, theme.palette.action.selectedOpacity, ), }, - '$root$selected:hover &': { + '&.Mui-selected:hover &': { backgroundColor: alpha( theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity, @@ -67,17 +51,13 @@ const useContentStyles = makeStyles((theme) => ({ ), }, }, - '$root$selected$focused &': { + '&.Mui-selected.Mui-focused &': { backgroundColor: alpha( theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity, ), }, }, - expanded: {}, - selected: {}, - focused: {}, - disabled: {}, })); const CustomContent = React.forwardRef(function CustomContent(props, ref) { @@ -91,8 +71,6 @@ const CustomContent = React.forwardRef(function CustomContent(props, ref) { displayIcon, } = props; - const contentClasses = useContentStyles(); - const { disabled, expanded, @@ -115,24 +93,23 @@ const CustomContent = React.forwardRef(function CustomContent(props, ref) { }; return ( - // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions -
-
+
{icon}
{label} -
+ ); }); @@ -172,14 +149,12 @@ const CustomTreeItem = (props) => ( ); export default function BarTreeView() { - const classes = useStyles(); - return ( } defaultExpandIcon={} + sx={{ height: 240, flexGrow: 1, maxWidth: 400, position: 'relative' }} > diff --git a/docs/src/pages/components/tree-view/BarTreeView.tsx b/docs/src/pages/components/tree-view/BarTreeView.tsx index 544bdfcd49c8fd..57f4103006ce88 100644 --- a/docs/src/pages/components/tree-view/BarTreeView.tsx +++ b/docs/src/pages/components/tree-view/BarTreeView.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { makeStyles, alpha } from '@material-ui/core/styles'; +import { experimentalStyled, alpha } from '@material-ui/core/styles'; import TreeView from '@material-ui/lab/TreeView'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import ChevronRightIcon from '@material-ui/icons/ChevronRight'; @@ -11,53 +11,37 @@ import TreeItem, { import clsx from 'clsx'; import Typography from '@material-ui/core/Typography'; -const useStyles = makeStyles({ - root: { - height: 240, - flexGrow: 1, - maxWidth: 400, - position: 'relative', +const CustomContentRoot = experimentalStyled('div')(({ theme }) => ({ + WebkitTapHighlightColor: 'transparent', + '&:hover, &.Mui-disabled, &.Mui-focused, &.Mui-selected, &.Mui-selected.Mui-focused, &.Mui-selected:hover': { + backgroundColor: 'transparent', }, -}); - -const useContentStyles = makeStyles((theme) => ({ - root: { - WebkitTapHighlightColor: 'transparent', - '&:hover, &$disabled, &$focused, &$selected, &$selected$focused, &$selected:hover': { - backgroundColor: 'transparent', - }, - }, - label: { - width: '100%', - paddingLeft: 4, - position: 'relative', - }, - bar: { + [`& .MuiTreeItem-contentBar`]: { position: 'absolute', width: '100%', height: 24, left: 0, - '$root:hover &': { + '&:hover &': { backgroundColor: theme.palette.action.hover, // Reset on touch devices, it doesn't add specificity '@media (hover: none)': { backgroundColor: 'transparent', }, }, - '$root$disabled &': { + '&.Mui-disabled &': { opacity: theme.palette.action.disabledOpacity, backgroundColor: 'transparent', }, - '$root$focused &': { + '&.Mui-focused &': { backgroundColor: theme.palette.action.focus, }, - '$root$selected &': { + '&.Mui-selected &': { backgroundColor: alpha( theme.palette.primary.main, theme.palette.action.selectedOpacity, ), }, - '$root$selected:hover &': { + '&.Mui-selected:hover &': { backgroundColor: alpha( theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity, @@ -70,17 +54,13 @@ const useContentStyles = makeStyles((theme) => ({ ), }, }, - '$root$selected$focused &': { + '&.Mui-selected.Mui-focused &': { backgroundColor: alpha( theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity, ), }, }, - expanded: {}, - selected: {}, - focused: {}, - disabled: {}, })); const CustomContent = React.forwardRef(function CustomContent( @@ -97,8 +77,6 @@ const CustomContent = React.forwardRef(function CustomContent( displayIcon, } = props; - const contentClasses = useContentStyles(); - const { disabled, expanded, @@ -121,24 +99,23 @@ const CustomContent = React.forwardRef(function CustomContent( }; return ( - // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions -
} > -
+
{icon}
{label} -
+ ); }); @@ -147,14 +124,12 @@ const CustomTreeItem = (props: TreeItemProps) => ( ); export default function BarTreeView() { - const classes = useStyles(); - return ( } defaultExpandIcon={} + sx={{ height: 240, flexGrow: 1, maxWidth: 400, position: 'relative' }} > diff --git a/docs/src/pages/components/tree-view/ControlledTreeView.js b/docs/src/pages/components/tree-view/ControlledTreeView.js index 1cf112309cd8bc..2025cf16f19d25 100644 --- a/docs/src/pages/components/tree-view/ControlledTreeView.js +++ b/docs/src/pages/components/tree-view/ControlledTreeView.js @@ -1,24 +1,12 @@ import * as React from 'react'; -import { makeStyles } from '@material-ui/core/styles'; +import Box from '@material-ui/core/Box'; import Button from '@material-ui/core/Button'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import ChevronRightIcon from '@material-ui/icons/ChevronRight'; import TreeView from '@material-ui/lab/TreeView'; import TreeItem from '@material-ui/lab/TreeItem'; -const useStyles = makeStyles((theme) => ({ - root: { - height: 270, - flexGrow: 1, - maxWidth: 400, - }, - actions: { - marginBottom: theme.spacing(1), - }, -})); - export default function ControlledTreeView() { - const classes = useStyles(); const [expanded, setExpanded] = React.useState([]); const [selected, setSelected] = React.useState([]); @@ -43,15 +31,15 @@ export default function ControlledTreeView() { }; return ( -
-
+ + -
+ } @@ -76,6 +64,6 @@ export default function ControlledTreeView() { -
+ ); } diff --git a/docs/src/pages/components/tree-view/ControlledTreeView.tsx b/docs/src/pages/components/tree-view/ControlledTreeView.tsx index 5bc7e011c95a6b..0a6ba82542326a 100644 --- a/docs/src/pages/components/tree-view/ControlledTreeView.tsx +++ b/docs/src/pages/components/tree-view/ControlledTreeView.tsx @@ -1,24 +1,12 @@ import * as React from 'react'; -import { makeStyles } from '@material-ui/core/styles'; +import Box from '@material-ui/core/Box'; import Button from '@material-ui/core/Button'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import ChevronRightIcon from '@material-ui/icons/ChevronRight'; import TreeView from '@material-ui/lab/TreeView'; import TreeItem from '@material-ui/lab/TreeItem'; -const useStyles = makeStyles((theme) => ({ - root: { - height: 270, - flexGrow: 1, - maxWidth: 400, - }, - actions: { - marginBottom: theme.spacing(1), - }, -})); - export default function ControlledTreeView() { - const classes = useStyles(); const [expanded, setExpanded] = React.useState([]); const [selected, setSelected] = React.useState([]); @@ -43,15 +31,15 @@ export default function ControlledTreeView() { }; return ( -
-
+ + -
+ } @@ -76,6 +64,6 @@ export default function ControlledTreeView() { -
+ ); } diff --git a/docs/src/pages/components/tree-view/CustomizedTreeView.js b/docs/src/pages/components/tree-view/CustomizedTreeView.js index bb9a3ec676ce52..669f2eb9aad988 100644 --- a/docs/src/pages/components/tree-view/CustomizedTreeView.js +++ b/docs/src/pages/components/tree-view/CustomizedTreeView.js @@ -1,9 +1,9 @@ import * as React from 'react'; import PropTypes from 'prop-types'; import SvgIcon from '@material-ui/core/SvgIcon'; -import { alpha, makeStyles, withStyles } from '@material-ui/core/styles'; +import { alpha, experimentalStyled } from '@material-ui/core/styles'; import TreeView from '@material-ui/lab/TreeView'; -import TreeItem from '@material-ui/lab/TreeItem'; +import TreeItem, { treeItemClasses } from '@material-ui/lab/TreeItem'; import Collapse from '@material-ui/core/Collapse'; // web.cjs is required for IE11 support import { useSpring, animated } from 'react-spring/web.cjs'; @@ -66,38 +66,30 @@ TransitionComponent.propTypes = { in: PropTypes.bool, }; -const StyledTreeItem = withStyles((theme) => ({ - iconContainer: { +const StyledTreeItem = experimentalStyled((props) => ( + +))(({ theme }) => ({ + [`& .${treeItemClasses.iconContainer}`]: { '& .close': { opacity: 0.3, }, }, - group: { + [`& .${treeItemClasses.group}`]: { marginLeft: 15, paddingLeft: 18, borderLeft: `1px dashed ${alpha(theme.palette.text.primary, 0.4)}`, }, -}))((props) => ); - -const useStyles = makeStyles({ - root: { - height: 264, - flexGrow: 1, - maxWidth: 400, - }, -}); +})); export default function CustomizedTreeView() { - const classes = useStyles(); - return ( } defaultExpandIcon={} defaultEndIcon={} + sx={{ height: 264, flexGrow: 1, maxWidth: 400 }} > diff --git a/docs/src/pages/components/tree-view/CustomizedTreeView.tsx b/docs/src/pages/components/tree-view/CustomizedTreeView.tsx index 9bf178f5694707..2e12acf3c5b8aa 100644 --- a/docs/src/pages/components/tree-view/CustomizedTreeView.tsx +++ b/docs/src/pages/components/tree-view/CustomizedTreeView.tsx @@ -1,8 +1,8 @@ import * as React from 'react'; import SvgIcon, { SvgIconProps } from '@material-ui/core/SvgIcon'; -import { alpha, makeStyles, withStyles, Theme } from '@material-ui/core/styles'; +import { alpha, experimentalStyled } from '@material-ui/core/styles'; import TreeView from '@material-ui/lab/TreeView'; -import TreeItem, { TreeItemProps } from '@material-ui/lab/TreeItem'; +import TreeItem, { TreeItemProps, treeItemClasses } from '@material-ui/lab/TreeItem'; import Collapse from '@material-ui/core/Collapse'; // web.cjs is required for IE11 support import { useSpring, animated } from 'react-spring/web.cjs'; @@ -59,40 +59,30 @@ function TransitionComponent(props: TransitionProps) { ); } -const StyledTreeItem = withStyles((theme: Theme) => ({ - iconContainer: { +const StyledTreeItem = experimentalStyled((props: TreeItemProps) => ( + +))(({ theme }) => ({ + [`& .${treeItemClasses.iconContainer}`]: { '& .close': { opacity: 0.3, }, }, - group: { + [`& .${treeItemClasses.group}`]: { marginLeft: 15, paddingLeft: 18, borderLeft: `1px dashed ${alpha(theme.palette.text.primary, 0.4)}`, }, -}))((props: TreeItemProps) => ( - -)); - -const useStyles = makeStyles({ - root: { - height: 264, - flexGrow: 1, - maxWidth: 400, - }, -}); +})); export default function CustomizedTreeView() { - const classes = useStyles(); - return ( } defaultExpandIcon={} defaultEndIcon={} + sx={{ height: 264, flexGrow: 1, maxWidth: 400 }} > diff --git a/docs/src/pages/components/tree-view/DisabledTreeItems.js b/docs/src/pages/components/tree-view/DisabledTreeItems.js index a673c63564a004..ce5a0063471424 100644 --- a/docs/src/pages/components/tree-view/DisabledTreeItems.js +++ b/docs/src/pages/components/tree-view/DisabledTreeItems.js @@ -1,5 +1,5 @@ import * as React from 'react'; -import { makeStyles } from '@material-ui/core/styles'; +import Box from '@material-ui/core/Box'; import TreeView from '@material-ui/lab/TreeView'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import ChevronRightIcon from '@material-ui/icons/ChevronRight'; @@ -7,27 +7,15 @@ import TreeItem from '@material-ui/lab/TreeItem'; import FormControlLabel from '@material-ui/core/FormControlLabel'; import Switch from '@material-ui/core/Switch'; -const useStyles = makeStyles((theme) => ({ - root: { - height: 270, - flexGrow: 1, - maxWidth: 400, - }, - actions: { - marginBottom: theme.spacing(1), - }, -})); - export default function DisabledTreeItems() { - const classes = useStyles(); const [focusDisabledItems, setFocusDisabledItems] = React.useState(false); const handleToggle = (event) => { setFocusDisabledItems(event.target.checked); }; return ( -
-
+ + -
+ } @@ -64,6 +52,6 @@ export default function DisabledTreeItems() { -
+ ); } diff --git a/docs/src/pages/components/tree-view/DisabledTreeItems.tsx b/docs/src/pages/components/tree-view/DisabledTreeItems.tsx index 546b4ac225c54b..92fc980dccf8bd 100644 --- a/docs/src/pages/components/tree-view/DisabledTreeItems.tsx +++ b/docs/src/pages/components/tree-view/DisabledTreeItems.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { makeStyles } from '@material-ui/core/styles'; +import Box from '@material-ui/core/Box'; import TreeView from '@material-ui/lab/TreeView'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import ChevronRightIcon from '@material-ui/icons/ChevronRight'; @@ -7,27 +7,15 @@ import TreeItem from '@material-ui/lab/TreeItem'; import FormControlLabel from '@material-ui/core/FormControlLabel'; import Switch from '@material-ui/core/Switch'; -const useStyles = makeStyles((theme) => ({ - root: { - height: 270, - flexGrow: 1, - maxWidth: 400, - }, - actions: { - marginBottom: theme.spacing(1), - }, -})); - export default function DisabledTreeItems() { - const classes = useStyles(); const [focusDisabledItems, setFocusDisabledItems] = React.useState(false); const handleToggle = (event: React.ChangeEvent) => { setFocusDisabledItems(event.target.checked); }; return ( -
-
+ + -
+ } @@ -64,6 +52,6 @@ export default function DisabledTreeItems() { -
+ ); } diff --git a/docs/src/pages/components/tree-view/FileSystemNavigator.js b/docs/src/pages/components/tree-view/FileSystemNavigator.js index 846bb24727f5fd..d4102e3ec3ca47 100644 --- a/docs/src/pages/components/tree-view/FileSystemNavigator.js +++ b/docs/src/pages/components/tree-view/FileSystemNavigator.js @@ -1,27 +1,16 @@ import * as React from 'react'; -import { makeStyles } from '@material-ui/core/styles'; import TreeView from '@material-ui/lab/TreeView'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import ChevronRightIcon from '@material-ui/icons/ChevronRight'; import TreeItem from '@material-ui/lab/TreeItem'; -const useStyles = makeStyles({ - root: { - height: 240, - flexGrow: 1, - maxWidth: 400, - }, -}); - export default function FileSystemNavigator() { - const classes = useStyles(); - return ( } defaultExpandIcon={} + sx={{ height: 240, flexGrow: 1, maxWidth: 400 }} > diff --git a/docs/src/pages/components/tree-view/FileSystemNavigator.tsx b/docs/src/pages/components/tree-view/FileSystemNavigator.tsx index 846bb24727f5fd..d4102e3ec3ca47 100644 --- a/docs/src/pages/components/tree-view/FileSystemNavigator.tsx +++ b/docs/src/pages/components/tree-view/FileSystemNavigator.tsx @@ -1,27 +1,16 @@ import * as React from 'react'; -import { makeStyles } from '@material-ui/core/styles'; import TreeView from '@material-ui/lab/TreeView'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import ChevronRightIcon from '@material-ui/icons/ChevronRight'; import TreeItem from '@material-ui/lab/TreeItem'; -const useStyles = makeStyles({ - root: { - height: 240, - flexGrow: 1, - maxWidth: 400, - }, -}); - export default function FileSystemNavigator() { - const classes = useStyles(); - return ( } defaultExpandIcon={} + sx={{ height: 240, flexGrow: 1, maxWidth: 400 }} > diff --git a/docs/src/pages/components/tree-view/GmailTreeView.js b/docs/src/pages/components/tree-view/GmailTreeView.js index dadb3c46754255..cf530e73ae5040 100644 --- a/docs/src/pages/components/tree-view/GmailTreeView.js +++ b/docs/src/pages/components/tree-view/GmailTreeView.js @@ -1,8 +1,9 @@ import * as React from 'react'; import PropTypes from 'prop-types'; -import { makeStyles } from '@material-ui/core/styles'; +import { experimentalStyled } from '@material-ui/core/styles'; +import Box from '@material-ui/core/Box'; import TreeView from '@material-ui/lab/TreeView'; -import TreeItem from '@material-ui/lab/TreeItem'; +import TreeItem, { treeItemClasses } from '@material-ui/lab/TreeItem'; import Typography from '@material-ui/core/Typography'; import MailIcon from '@material-ui/icons/Mail'; import DeleteIcon from '@material-ui/icons/Delete'; @@ -14,57 +15,38 @@ import LocalOfferIcon from '@material-ui/icons/LocalOffer'; import ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown'; import ArrowRightIcon from '@material-ui/icons/ArrowRight'; -const useTreeItemStyles = makeStyles((theme) => ({ - root: { - color: theme.palette.text.secondary, - }, - content: { +const StyledTreeItemRoot = experimentalStyled(TreeItem)(({ theme }) => ({ + color: theme.palette.text.secondary, + [`& .${treeItemClasses.content}`]: { color: theme.palette.text.secondary, borderTopRightRadius: theme.spacing(2), borderBottomRightRadius: theme.spacing(2), paddingRight: theme.spacing(1), fontWeight: theme.typography.fontWeightMedium, - '&$expanded': { + '&.Mui-expanded': { fontWeight: theme.typography.fontWeightRegular, }, '&:hover': { backgroundColor: theme.palette.action.hover, }, - '&$focused, &$selected, &$selected$focused': { + '&.Mui-focused, &.Mui-selected, &.Mui-selected.Mui-focused': { backgroundColor: `var(--tree-view-bg-color, ${theme.palette.action.selected})`, color: 'var(--tree-view-color)', }, - '& $label': { + [`& .${treeItemClasses.label}`]: { fontWeight: 'inherit', color: 'inherit', }, }, - group: { + [`& .${treeItemClasses.group}`]: { marginLeft: 0, - '& $content': { + [`& .${treeItemClasses.content}`]: { paddingLeft: theme.spacing(2), }, }, - expanded: {}, - selected: {}, - focused: {}, - label: {}, - labelRoot: { - display: 'flex', - alignItems: 'center', - padding: theme.spacing(0.5, 0, 0.5, 0.5), - }, - labelIcon: { - marginRight: theme.spacing(1), - }, - labelText: { - fontWeight: 'inherit', - flexGrow: 1, - }, })); function StyledTreeItem(props) { - const classes = useTreeItemStyles(); const { bgColor, color, @@ -75,31 +57,28 @@ function StyledTreeItem(props) { } = props; return ( - - - + theme.spacing(0.5, 0, 0.5, 0.5), + }} + > + + {labelText} {labelInfo} -
+ } style={{ '--tree-view-color': color, '--tree-view-bg-color': bgColor, }} - classes={{ - root: classes.root, - content: classes.content, - expanded: classes.expanded, - selected: classes.selected, - focused: classes.focused, - group: classes.group, - label: classes.label, - }} {...other} /> ); @@ -113,25 +92,19 @@ StyledTreeItem.propTypes = { labelText: PropTypes.string.isRequired, }; -const useStyles = makeStyles({ - root: { - height: 264, - flexGrow: 1, - maxWidth: 400, - }, -}); - export default function GmailTreeView() { - const classes = useStyles(); - return ( } defaultExpandIcon={} defaultEndIcon={
} + sx={{ + height: 264, + flexGrow: 1, + maxWidth: 400, + }} > diff --git a/docs/src/pages/components/tree-view/GmailTreeView.tsx b/docs/src/pages/components/tree-view/GmailTreeView.tsx index 6845a77fff60f0..ead0b97ec39b7c 100644 --- a/docs/src/pages/components/tree-view/GmailTreeView.tsx +++ b/docs/src/pages/components/tree-view/GmailTreeView.tsx @@ -1,7 +1,8 @@ import * as React from 'react'; -import { makeStyles, Theme } from '@material-ui/core/styles'; +import { experimentalStyled } from '@material-ui/core/styles'; +import Box from '@material-ui/core/Box'; import TreeView from '@material-ui/lab/TreeView'; -import TreeItem, { TreeItemProps } from '@material-ui/lab/TreeItem'; +import TreeItem, { TreeItemProps, treeItemClasses } from '@material-ui/lab/TreeItem'; import Typography from '@material-ui/core/Typography'; import MailIcon from '@material-ui/icons/Mail'; import DeleteIcon from '@material-ui/icons/Delete'; @@ -29,57 +30,38 @@ type StyledTreeItemProps = TreeItemProps & { labelText: string; }; -const useTreeItemStyles = makeStyles((theme: Theme) => ({ - root: { - color: theme.palette.text.secondary, - }, - content: { +const StyledTreeItemRoot = experimentalStyled(TreeItem)(({ theme }) => ({ + color: theme.palette.text.secondary, + [`& .${treeItemClasses.content}`]: { color: theme.palette.text.secondary, borderTopRightRadius: theme.spacing(2), borderBottomRightRadius: theme.spacing(2), paddingRight: theme.spacing(1), fontWeight: theme.typography.fontWeightMedium, - '&$expanded': { + '&.Mui-expanded': { fontWeight: theme.typography.fontWeightRegular, }, '&:hover': { backgroundColor: theme.palette.action.hover, }, - '&$focused, &$selected, &$selected$focused': { + '&.Mui-focused, &.Mui-selected, &.Mui-selected.Mui-focused': { backgroundColor: `var(--tree-view-bg-color, ${theme.palette.action.selected})`, color: 'var(--tree-view-color)', }, - '& $label': { + [`& .${treeItemClasses.label}`]: { fontWeight: 'inherit', color: 'inherit', }, }, - group: { + [`& .${treeItemClasses.group}`]: { marginLeft: 0, - '& $content': { + [`& .${treeItemClasses.content}`]: { paddingLeft: theme.spacing(2), }, }, - expanded: {}, - selected: {}, - focused: {}, - label: {}, - labelRoot: { - display: 'flex', - alignItems: 'center', - padding: theme.spacing(0.5, 0, 0.5, 0.5), - }, - labelIcon: { - marginRight: theme.spacing(1), - }, - labelText: { - fontWeight: 'inherit', - flexGrow: 1, - }, })); function StyledTreeItem(props: StyledTreeItemProps) { - const classes = useTreeItemStyles(); const { bgColor, color, @@ -90,55 +72,46 @@ function StyledTreeItem(props: StyledTreeItemProps) { } = props; return ( - - - + theme.spacing(0.5, 0, 0.5, 0.5), + }} + > + + {labelText} {labelInfo} -
+ } style={{ '--tree-view-color': color, '--tree-view-bg-color': bgColor, }} - classes={{ - root: classes.root, - content: classes.content, - expanded: classes.expanded, - selected: classes.selected, - focused: classes.focused, - group: classes.group, - label: classes.label, - }} {...other} /> ); } -const useStyles = makeStyles({ - root: { - height: 264, - flexGrow: 1, - maxWidth: 400, - }, -}); - export default function GmailTreeView() { - const classes = useStyles(); - return ( } defaultExpandIcon={} defaultEndIcon={
} + sx={{ + height: 264, + flexGrow: 1, + maxWidth: 400, + }} > diff --git a/docs/src/pages/components/tree-view/IconExpansionTreeView.js b/docs/src/pages/components/tree-view/IconExpansionTreeView.js index 423c85359bddcf..4711280b57719b 100644 --- a/docs/src/pages/components/tree-view/IconExpansionTreeView.js +++ b/docs/src/pages/components/tree-view/IconExpansionTreeView.js @@ -1,6 +1,5 @@ import * as React from 'react'; import PropTypes from 'prop-types'; -import { makeStyles } from '@material-ui/core/styles'; import TreeView from '@material-ui/lab/TreeView'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import ChevronRightIcon from '@material-ui/icons/ChevronRight'; @@ -8,14 +7,6 @@ import TreeItem, { useTreeItem } from '@material-ui/lab/TreeItem'; import clsx from 'clsx'; import Typography from '@material-ui/core/Typography'; -const useStyles = makeStyles({ - root: { - height: 240, - flexGrow: 1, - maxWidth: 400, - }, -}); - const CustomContent = React.forwardRef(function CustomContent(props, ref) { const { classes, @@ -114,14 +105,12 @@ const CustomTreeItem = (props) => ( ); export default function IconExpansionTreeView() { - const classes = useStyles(); - return ( } defaultExpandIcon={} + sx={{ height: 240, flexGrow: 1, maxWidth: 400 }} > diff --git a/docs/src/pages/components/tree-view/IconExpansionTreeView.tsx b/docs/src/pages/components/tree-view/IconExpansionTreeView.tsx index d8f12e713a34b7..9b3b3b1f114ca3 100644 --- a/docs/src/pages/components/tree-view/IconExpansionTreeView.tsx +++ b/docs/src/pages/components/tree-view/IconExpansionTreeView.tsx @@ -1,5 +1,4 @@ import * as React from 'react'; -import { makeStyles } from '@material-ui/core/styles'; import TreeView from '@material-ui/lab/TreeView'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import ChevronRightIcon from '@material-ui/icons/ChevronRight'; @@ -11,14 +10,6 @@ import TreeItem, { import clsx from 'clsx'; import Typography from '@material-ui/core/Typography'; -const useStyles = makeStyles({ - root: { - height: 240, - flexGrow: 1, - maxWidth: 400, - }, -}); - const CustomContent = React.forwardRef(function CustomContent( props: TreeItemContentProps, ref, @@ -93,14 +84,12 @@ const CustomTreeItem = (props: TreeItemProps) => ( ); export default function IconExpansionTreeView() { - const classes = useStyles(); - return ( } defaultExpandIcon={} + sx={{ height: 240, flexGrow: 1, maxWidth: 400 }} > diff --git a/docs/src/pages/components/tree-view/MultiSelectTreeView.js b/docs/src/pages/components/tree-view/MultiSelectTreeView.js index e3fa9b2ebf1287..32fa433eec2ea3 100644 --- a/docs/src/pages/components/tree-view/MultiSelectTreeView.js +++ b/docs/src/pages/components/tree-view/MultiSelectTreeView.js @@ -1,28 +1,17 @@ import * as React from 'react'; -import { makeStyles } from '@material-ui/core/styles'; import TreeView from '@material-ui/lab/TreeView'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import ChevronRightIcon from '@material-ui/icons/ChevronRight'; import TreeItem from '@material-ui/lab/TreeItem'; -const useStyles = makeStyles({ - root: { - height: 216, - flexGrow: 1, - maxWidth: 400, - }, -}); - export default function MultiSelectTreeView() { - const classes = useStyles(); - return ( } defaultExpandIcon={} multiSelect + sx={{ height: 216, flexGrow: 1, maxWidth: 400 }} > diff --git a/docs/src/pages/components/tree-view/MultiSelectTreeView.tsx b/docs/src/pages/components/tree-view/MultiSelectTreeView.tsx index e3fa9b2ebf1287..32fa433eec2ea3 100644 --- a/docs/src/pages/components/tree-view/MultiSelectTreeView.tsx +++ b/docs/src/pages/components/tree-view/MultiSelectTreeView.tsx @@ -1,28 +1,17 @@ import * as React from 'react'; -import { makeStyles } from '@material-ui/core/styles'; import TreeView from '@material-ui/lab/TreeView'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import ChevronRightIcon from '@material-ui/icons/ChevronRight'; import TreeItem from '@material-ui/lab/TreeItem'; -const useStyles = makeStyles({ - root: { - height: 216, - flexGrow: 1, - maxWidth: 400, - }, -}); - export default function MultiSelectTreeView() { - const classes = useStyles(); - return ( } defaultExpandIcon={} multiSelect + sx={{ height: 216, flexGrow: 1, maxWidth: 400 }} > diff --git a/docs/src/pages/components/tree-view/RichObjectTreeView.js b/docs/src/pages/components/tree-view/RichObjectTreeView.js index 4dd92ab8167d31..c2bcdebcec5e18 100644 --- a/docs/src/pages/components/tree-view/RichObjectTreeView.js +++ b/docs/src/pages/components/tree-view/RichObjectTreeView.js @@ -1,5 +1,4 @@ import * as React from 'react'; -import { makeStyles } from '@material-ui/core/styles'; import TreeView from '@material-ui/lab/TreeView'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import ChevronRightIcon from '@material-ui/icons/ChevronRight'; @@ -26,17 +25,7 @@ const data = { ], }; -const useStyles = makeStyles({ - root: { - height: 110, - flexGrow: 1, - maxWidth: 400, - }, -}); - export default function RichObjectTreeView() { - const classes = useStyles(); - const renderTree = (nodes) => ( {Array.isArray(nodes.children) @@ -48,10 +37,10 @@ export default function RichObjectTreeView() { return ( } defaultExpanded={['root']} defaultExpandIcon={} + sx={{ height: 110, flexGrow: 1, maxWidth: 400 }} > {renderTree(data)} diff --git a/docs/src/pages/components/tree-view/RichObjectTreeView.tsx b/docs/src/pages/components/tree-view/RichObjectTreeView.tsx index 620843ae8167b4..9283ee4e2c1b12 100644 --- a/docs/src/pages/components/tree-view/RichObjectTreeView.tsx +++ b/docs/src/pages/components/tree-view/RichObjectTreeView.tsx @@ -1,5 +1,4 @@ import * as React from 'react'; -import { makeStyles } from '@material-ui/core/styles'; import TreeView from '@material-ui/lab/TreeView'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import ChevronRightIcon from '@material-ui/icons/ChevronRight'; @@ -32,17 +31,7 @@ const data: RenderTree = { ], }; -const useStyles = makeStyles({ - root: { - height: 110, - flexGrow: 1, - maxWidth: 400, - }, -}); - export default function RichObjectTreeView() { - const classes = useStyles(); - const renderTree = (nodes: RenderTree) => ( {Array.isArray(nodes.children) @@ -54,10 +43,10 @@ export default function RichObjectTreeView() { return ( } defaultExpanded={['root']} defaultExpandIcon={} + sx={{ height: 110, flexGrow: 1, maxWidth: 400 }} > {renderTree(data)} From cf646812cb54232a941ae304f8b67424ea5d6db7 Mon Sep 17 00:00:00 2001 From: Marija Najdova Date: Wed, 5 May 2021 18:18:08 +0200 Subject: [PATCH 2/4] Update docs/src/pages/components/tree-view/GmailTreeView.tsx Co-authored-by: Olivier Tassinari --- docs/src/pages/components/tree-view/GmailTreeView.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/src/pages/components/tree-view/GmailTreeView.tsx b/docs/src/pages/components/tree-view/GmailTreeView.tsx index ead0b97ec39b7c..06d0daf88693de 100644 --- a/docs/src/pages/components/tree-view/GmailTreeView.tsx +++ b/docs/src/pages/components/tree-view/GmailTreeView.tsx @@ -78,7 +78,8 @@ function StyledTreeItem(props: StyledTreeItemProps) { sx={{ display: 'flex', alignItems: 'center', - padding: (theme) => theme.spacing(0.5, 0, 0.5, 0.5), + p: 0.5, + pr: 0, }} > From 769e62ec3844198eb7739b4cd1cd7cbbd4a215a2 Mon Sep 17 00:00:00 2001 From: Marija Najdova Date: Wed, 5 May 2021 18:22:17 +0200 Subject: [PATCH 3/4] Olivier's review --- .../components/tree-view/FileSystemNavigator.js | 7 +------ .../components/tree-view/FileSystemNavigator.tsx | 7 +------ .../pages/components/tree-view/GmailTreeView.js | 14 ++------------ .../pages/components/tree-view/GmailTreeView.tsx | 15 ++------------- 4 files changed, 6 insertions(+), 37 deletions(-) diff --git a/docs/src/pages/components/tree-view/FileSystemNavigator.js b/docs/src/pages/components/tree-view/FileSystemNavigator.js index d4102e3ec3ca47..90023450b99c6d 100644 --- a/docs/src/pages/components/tree-view/FileSystemNavigator.js +++ b/docs/src/pages/components/tree-view/FileSystemNavigator.js @@ -14,16 +14,11 @@ export default function FileSystemNavigator() { > - - - - - - + diff --git a/docs/src/pages/components/tree-view/FileSystemNavigator.tsx b/docs/src/pages/components/tree-view/FileSystemNavigator.tsx index d4102e3ec3ca47..90023450b99c6d 100644 --- a/docs/src/pages/components/tree-view/FileSystemNavigator.tsx +++ b/docs/src/pages/components/tree-view/FileSystemNavigator.tsx @@ -14,16 +14,11 @@ export default function FileSystemNavigator() { > - - - - - - + diff --git a/docs/src/pages/components/tree-view/GmailTreeView.js b/docs/src/pages/components/tree-view/GmailTreeView.js index cf530e73ae5040..bc95911182037f 100644 --- a/docs/src/pages/components/tree-view/GmailTreeView.js +++ b/docs/src/pages/components/tree-view/GmailTreeView.js @@ -59,13 +59,7 @@ function StyledTreeItem(props) { return ( theme.spacing(0.5, 0, 0.5, 0.5), - }} - > + {labelText} @@ -100,11 +94,7 @@ export default function GmailTreeView() { defaultCollapseIcon={} defaultExpandIcon={} defaultEndIcon={
} - sx={{ - height: 264, - flexGrow: 1, - maxWidth: 400, - }} + sx={{ height: 264, flexGrow: 1, maxWidth: 400 }} > diff --git a/docs/src/pages/components/tree-view/GmailTreeView.tsx b/docs/src/pages/components/tree-view/GmailTreeView.tsx index 06d0daf88693de..8607fe98170530 100644 --- a/docs/src/pages/components/tree-view/GmailTreeView.tsx +++ b/docs/src/pages/components/tree-view/GmailTreeView.tsx @@ -74,14 +74,7 @@ function StyledTreeItem(props: StyledTreeItemProps) { return ( + {labelText} @@ -108,11 +101,7 @@ export default function GmailTreeView() { defaultCollapseIcon={} defaultExpandIcon={} defaultEndIcon={
} - sx={{ - height: 264, - flexGrow: 1, - maxWidth: 400, - }} + sx={{ height: 264, flexGrow: 1, maxWidth: 400 }} > From ec528e8921374a8433bea2b4eee80c8d30cbbc50 Mon Sep 17 00:00:00 2001 From: Marija Najdova Date: Wed, 5 May 2021 20:14:58 +0200 Subject: [PATCH 4/4] experimentalStyled as styled --- docs/src/pages/components/tree-view/BarTreeView.js | 4 ++-- docs/src/pages/components/tree-view/BarTreeView.tsx | 4 ++-- docs/src/pages/components/tree-view/CustomizedTreeView.js | 4 ++-- docs/src/pages/components/tree-view/CustomizedTreeView.tsx | 4 ++-- docs/src/pages/components/tree-view/GmailTreeView.js | 4 ++-- docs/src/pages/components/tree-view/GmailTreeView.tsx | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/src/pages/components/tree-view/BarTreeView.js b/docs/src/pages/components/tree-view/BarTreeView.js index acc6eb5949723c..e658c294d54c90 100644 --- a/docs/src/pages/components/tree-view/BarTreeView.js +++ b/docs/src/pages/components/tree-view/BarTreeView.js @@ -1,6 +1,6 @@ import * as React from 'react'; import PropTypes from 'prop-types'; -import { experimentalStyled, alpha } from '@material-ui/core/styles'; +import { experimentalStyled as styled, alpha } from '@material-ui/core/styles'; import TreeView from '@material-ui/lab/TreeView'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import ChevronRightIcon from '@material-ui/icons/ChevronRight'; @@ -8,7 +8,7 @@ import TreeItem, { useTreeItem } from '@material-ui/lab/TreeItem'; import clsx from 'clsx'; import Typography from '@material-ui/core/Typography'; -const CustomContentRoot = experimentalStyled('div')(({ theme }) => ({ +const CustomContentRoot = styled('div')(({ theme }) => ({ WebkitTapHighlightColor: 'transparent', '&:hover, &.Mui-disabled, &.Mui-focused, &.Mui-selected, &.Mui-selected.Mui-focused, &.Mui-selected:hover': { backgroundColor: 'transparent', diff --git a/docs/src/pages/components/tree-view/BarTreeView.tsx b/docs/src/pages/components/tree-view/BarTreeView.tsx index 57f4103006ce88..4ad1b666b7c3c2 100644 --- a/docs/src/pages/components/tree-view/BarTreeView.tsx +++ b/docs/src/pages/components/tree-view/BarTreeView.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { experimentalStyled, alpha } from '@material-ui/core/styles'; +import { experimentalStyled as styled, alpha } from '@material-ui/core/styles'; import TreeView from '@material-ui/lab/TreeView'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import ChevronRightIcon from '@material-ui/icons/ChevronRight'; @@ -11,7 +11,7 @@ import TreeItem, { import clsx from 'clsx'; import Typography from '@material-ui/core/Typography'; -const CustomContentRoot = experimentalStyled('div')(({ theme }) => ({ +const CustomContentRoot = styled('div')(({ theme }) => ({ WebkitTapHighlightColor: 'transparent', '&:hover, &.Mui-disabled, &.Mui-focused, &.Mui-selected, &.Mui-selected.Mui-focused, &.Mui-selected:hover': { backgroundColor: 'transparent', diff --git a/docs/src/pages/components/tree-view/CustomizedTreeView.js b/docs/src/pages/components/tree-view/CustomizedTreeView.js index 669f2eb9aad988..8b5f26b6ae6b11 100644 --- a/docs/src/pages/components/tree-view/CustomizedTreeView.js +++ b/docs/src/pages/components/tree-view/CustomizedTreeView.js @@ -1,7 +1,7 @@ import * as React from 'react'; import PropTypes from 'prop-types'; import SvgIcon from '@material-ui/core/SvgIcon'; -import { alpha, experimentalStyled } from '@material-ui/core/styles'; +import { alpha, experimentalStyled as styled } from '@material-ui/core/styles'; import TreeView from '@material-ui/lab/TreeView'; import TreeItem, { treeItemClasses } from '@material-ui/lab/TreeItem'; import Collapse from '@material-ui/core/Collapse'; @@ -66,7 +66,7 @@ TransitionComponent.propTypes = { in: PropTypes.bool, }; -const StyledTreeItem = experimentalStyled((props) => ( +const StyledTreeItem = styled((props) => ( ))(({ theme }) => ({ [`& .${treeItemClasses.iconContainer}`]: { diff --git a/docs/src/pages/components/tree-view/CustomizedTreeView.tsx b/docs/src/pages/components/tree-view/CustomizedTreeView.tsx index 2e12acf3c5b8aa..ad66e6a2d17fb3 100644 --- a/docs/src/pages/components/tree-view/CustomizedTreeView.tsx +++ b/docs/src/pages/components/tree-view/CustomizedTreeView.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import SvgIcon, { SvgIconProps } from '@material-ui/core/SvgIcon'; -import { alpha, experimentalStyled } from '@material-ui/core/styles'; +import { alpha, experimentalStyled as styled } from '@material-ui/core/styles'; import TreeView from '@material-ui/lab/TreeView'; import TreeItem, { TreeItemProps, treeItemClasses } from '@material-ui/lab/TreeItem'; import Collapse from '@material-ui/core/Collapse'; @@ -59,7 +59,7 @@ function TransitionComponent(props: TransitionProps) { ); } -const StyledTreeItem = experimentalStyled((props: TreeItemProps) => ( +const StyledTreeItem = styled((props: TreeItemProps) => ( ))(({ theme }) => ({ [`& .${treeItemClasses.iconContainer}`]: { diff --git a/docs/src/pages/components/tree-view/GmailTreeView.js b/docs/src/pages/components/tree-view/GmailTreeView.js index bc95911182037f..db1c7b8f380782 100644 --- a/docs/src/pages/components/tree-view/GmailTreeView.js +++ b/docs/src/pages/components/tree-view/GmailTreeView.js @@ -1,6 +1,6 @@ import * as React from 'react'; import PropTypes from 'prop-types'; -import { experimentalStyled } from '@material-ui/core/styles'; +import { experimentalStyled as styled } from '@material-ui/core/styles'; import Box from '@material-ui/core/Box'; import TreeView from '@material-ui/lab/TreeView'; import TreeItem, { treeItemClasses } from '@material-ui/lab/TreeItem'; @@ -15,7 +15,7 @@ import LocalOfferIcon from '@material-ui/icons/LocalOffer'; import ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown'; import ArrowRightIcon from '@material-ui/icons/ArrowRight'; -const StyledTreeItemRoot = experimentalStyled(TreeItem)(({ theme }) => ({ +const StyledTreeItemRoot = styled(TreeItem)(({ theme }) => ({ color: theme.palette.text.secondary, [`& .${treeItemClasses.content}`]: { color: theme.palette.text.secondary, diff --git a/docs/src/pages/components/tree-view/GmailTreeView.tsx b/docs/src/pages/components/tree-view/GmailTreeView.tsx index 8607fe98170530..0cb1ae83d36c0e 100644 --- a/docs/src/pages/components/tree-view/GmailTreeView.tsx +++ b/docs/src/pages/components/tree-view/GmailTreeView.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { experimentalStyled } from '@material-ui/core/styles'; +import { experimentalStyled as styled } from '@material-ui/core/styles'; import Box from '@material-ui/core/Box'; import TreeView from '@material-ui/lab/TreeView'; import TreeItem, { TreeItemProps, treeItemClasses } from '@material-ui/lab/TreeItem'; @@ -30,7 +30,7 @@ type StyledTreeItemProps = TreeItemProps & { labelText: string; }; -const StyledTreeItemRoot = experimentalStyled(TreeItem)(({ theme }) => ({ +const StyledTreeItemRoot = styled(TreeItem)(({ theme }) => ({ color: theme.palette.text.secondary, [`& .${treeItemClasses.content}`]: { color: theme.palette.text.secondary,