@parkassist/pa-ui-library
Version:
INX Platform elements
83 lines • 2.44 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import React from 'react';
import * as Icons from "../Icons";
import AccordionSummary from "@mui/material/AccordionSummary";
import Accordion from "@mui/material/Accordion";
import AccordionDetails from "@mui/material/AccordionDetails";
import styled from 'styled-components';
import { Palette } from "../../index";
const StyledContainer = styled.div`
display: flex;
align-items: center;
height: 100%;
width: 100%;
padding: 12px 0;
`;
const FlexSpan = styled.span`
display: flex
`;
function FoldingList({
items,
expanded,
handleChange,
marginBottom = 0,
disableGutters = true,
onTabClick,
contentPadding,
headerBackgroundColor = 'transparent',
arrowOnRight = false
}) {
return _jsx("div", {
children: items.map(item => _jsxs(Accordion, {
onChange: () => !onTabClick && handleChange(item.id),
expanded: expanded.includes(item.id),
disableGutters: disableGutters,
sx: {
'&.MuiAccordion-root.MuiPaper-root': {
marginBottom: marginBottom,
boxShadow: 'none'
},
background: 'transparent'
},
children: [_jsx(AccordionSummary, {
expandIcon: _jsx(Icons.OpenArrowIcon, {
onClick: () => onTabClick && handleChange(item.id)
}),
sx: {
'&.MuiButtonBase-root.MuiAccordionSummary-root': {
padding: '0 12px'
},
'& .MuiAccordionSummary-content': {
margin: 0
},
flexDirection: arrowOnRight ? '' : "row-reverse",
borderBottom: `1px solid ${Palette.VERY_LIGHT_GREY_NEW}`,
backgroundColor: headerBackgroundColor
},
children: _jsxs(StyledContainer, {
onClick: () => onTabClick && onTabClick(item.id),
children: [item.icon && _jsx(FlexSpan, {
style: {
marginRight: '6px'
},
children: item.icon
}), _jsx(FlexSpan, {
style: {
wordBreak: 'break-word',
marginLeft: !item.icon ? 10 : 0
},
children: item.heading
})]
})
}), _jsx(AccordionDetails, {
sx: {
'&.MuiAccordionDetails-root': {
padding: contentPadding || '8px 16px 16px'
}
},
children: item.content
})]
}, item.id))
});
}
export default FoldingList;