Add styles to expand button
This commit is contained in:
parent
da16d8a087
commit
f1960281f8
3 changed files with 67 additions and 3 deletions
|
@ -0,0 +1,56 @@
|
||||||
|
import { ButtonProps } from "@material-ui/core/Button";
|
||||||
|
import ButtonBase from "@material-ui/core/ButtonBase";
|
||||||
|
import makeStyles from "@material-ui/core/styles/makeStyles";
|
||||||
|
import ArrowIcon from "@material-ui/icons/ArrowBack";
|
||||||
|
import classNames from "classnames";
|
||||||
|
import React from "react";
|
||||||
|
|
||||||
|
const useStyles = makeStyles(
|
||||||
|
theme => ({
|
||||||
|
arrow: {
|
||||||
|
transition: theme.transitions.duration.shortest + "ms"
|
||||||
|
},
|
||||||
|
root: {
|
||||||
|
"&:hover, &:focus": {
|
||||||
|
background: "#daedeb"
|
||||||
|
},
|
||||||
|
background: theme.palette.background.paper,
|
||||||
|
borderRadius: 16,
|
||||||
|
color: theme.palette.primary.main,
|
||||||
|
height: 48,
|
||||||
|
transition: theme.transitions.duration.shortest + "ms",
|
||||||
|
width: 48
|
||||||
|
},
|
||||||
|
shrunk: {
|
||||||
|
transform: "scaleX(-1)"
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
{
|
||||||
|
name: "ExpandButton"
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
export interface ExpandButtonProps extends ButtonProps {
|
||||||
|
isShrunk: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
const ExpandButton: React.FC<ExpandButtonProps> = ({
|
||||||
|
className,
|
||||||
|
isShrunk,
|
||||||
|
...rest
|
||||||
|
}) => {
|
||||||
|
const classes = useStyles({});
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ButtonBase className={classNames(classes.root, className)} {...rest}>
|
||||||
|
<ArrowIcon
|
||||||
|
className={classNames(classes.arrow, {
|
||||||
|
[classes.shrunk]: isShrunk
|
||||||
|
})}
|
||||||
|
/>
|
||||||
|
</ButtonBase>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
ExpandButton.displayName = "ExpandButton";
|
||||||
|
export default ExpandButton;
|
|
@ -59,7 +59,7 @@ const useStyles = makeStyles(
|
||||||
height: 56,
|
height: 56,
|
||||||
marginBottom: theme.spacing(),
|
marginBottom: theme.spacing(),
|
||||||
overflow: "hidden",
|
overflow: "hidden",
|
||||||
padding: theme.spacing(2, 3),
|
padding: theme.spacing(2, 3, 2, 3.5),
|
||||||
transition: theme.transitions.duration.shortest + "ms",
|
transition: theme.transitions.duration.shortest + "ms",
|
||||||
width: 72
|
width: 72
|
||||||
},
|
},
|
||||||
|
|
|
@ -10,13 +10,17 @@ import SVG from "react-inlinesvg";
|
||||||
import { useIntl } from "react-intl";
|
import { useIntl } from "react-intl";
|
||||||
|
|
||||||
import { IMenuItem } from "../AppLayout/menuStructure";
|
import { IMenuItem } from "../AppLayout/menuStructure";
|
||||||
|
import ExpandButton from "./ExpandButton";
|
||||||
import MenuItem from "./MenuItem";
|
import MenuItem from "./MenuItem";
|
||||||
import { isMenuActive } from "./utils";
|
import { isMenuActive } from "./utils";
|
||||||
|
|
||||||
const useStyles = makeStyles(
|
const useStyles = makeStyles(
|
||||||
theme => ({
|
theme => ({
|
||||||
|
expandButton: {
|
||||||
|
marginLeft: theme.spacing(2)
|
||||||
|
},
|
||||||
logo: {
|
logo: {
|
||||||
margin: `36px 0 ${theme.spacing(3)}px 19px`
|
margin: `36px 0 ${theme.spacing(3)}px ${theme.spacing(3)}px`
|
||||||
},
|
},
|
||||||
root: {
|
root: {
|
||||||
transition: "width 0.5s ease"
|
transition: "width 0.5s ease"
|
||||||
|
@ -97,7 +101,11 @@ const SideBar: React.FC<SideBarProps> = ({
|
||||||
onClick={onMenuItemClick}
|
onClick={onMenuItemClick}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
<button onClick={() => setShrink(!isShrunk)}>toggl</button>
|
<ExpandButton
|
||||||
|
className={classes.expandButton}
|
||||||
|
isShrunk={isShrunk}
|
||||||
|
onClick={() => setShrink(!isShrunk)}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue