Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | 12x 12x 12x | import React from 'react'; import PropTypes from 'prop-types'; import * as R from 'ramda'; import { makeStyles } from '@material-ui/core/styles'; import Breadcrumbs from '@material-ui/core/Breadcrumbs'; import Typography from '@material-ui/core/Typography'; import NavigateNextIcon from '@material-ui/icons/NavigateNext'; import NavigateBeforeIcon from '@material-ui/icons/NavigateBefore'; import cx from 'classnames'; const useStyles = makeStyles(theme => ({ action: { cursor: 'pointer', '&:hover': { color: theme.palette.primary.main, }, }, disabled: { cursor: 'not-allowed', color: theme.palette.text.disabled, '&:hover': { color: theme.palette.text.disabled, }, }, })); const CustomBreadcrumbs = ({ items = [], isRtl }) => { const classes = useStyles(); return ( <Breadcrumbs separator={ isRtl ? <NavigateBeforeIcon fontSize="small" /> : <NavigateNextIcon fontSize="small" /> } aria-label="breadcrumb" > {R.addIndex(R.map)(({ text, action, isDisabled }, index) => ( <Typography key={`${text}-${index}`} color="textPrimary" onClick={action} variant="subtitle1" className={cx({ [classes.action]: R.is(Function)(action), [classes.disabled]: isDisabled, })} > {text} </Typography> ))(items)} </Breadcrumbs> ); }; CustomBreadcrumbs.propTypes = { items: PropTypes.arrayOf( PropTypes.shape({ text: PropTypes.string.isRequired, action: PropTypes.func, isDisabled: PropTypes.bool, }), ), isRtl: PropTypes.bool, }; export default CustomBreadcrumbs; |