@elacity-js/uikit
Version:
React / Material UI Design kit for Elacity project
49 lines (46 loc) • 2.97 kB
JavaScript
import { __rest } from '../node_modules/tslib/tslib.es6.js';
import { jsx, jsxs } from 'react/jsx-runtime';
import { Box, Typography, Grid, Skeleton, Avatar, Link } from '@mui/material';
import { styled } from '@mui/material/styles';
import { RouterLink } from './Link.js';
const Wrapper = styled(Box)(({ theme }) => ({
margin: theme.spacing(4, 'auto', 6),
}));
const TitleTypography = styled(Typography)(({ theme }) => ({
color: theme.palette.text.primary,
fontWeight: 500,
padding: theme.spacing(1, 0, 2),
textAlign: 'center',
}));
const CardGrid = styled(Grid)(({ theme }) => ({
[theme.breakpoints.up('lg')]: {
paddingTop: theme.spacing(2),
paddingLeft: theme.spacing(4),
},
[theme.breakpoints.between(348, 'sm')]: {
fontSize: theme.typography.pxToRem(15),
'& svg': {
fontSize: theme.typography.pxToRem(18),
},
'& .MuiCardHeader-root': {
paddingLeft: 0,
},
},
}));
var ListGroup = (_a) => {
var { loading, hideEmpty, title, assets, renderItem, keyExtractor, EmptyComponent, seeMoreLink, seeMoreText, containerSx } = _a, props = __rest(_a, ["loading", "hideEmpty", "title", "assets", "renderItem", "keyExtractor", "EmptyComponent", "seeMoreLink", "seeMoreText", "containerSx"]);
if (!loading && (assets === null || assets === void 0 ? void 0 : assets.length) === 0) {
if (hideEmpty) {
return null;
}
if (EmptyComponent) {
return jsx(EmptyComponent, {});
}
return (jsx(Box, Object.assign({ sx: { pb: 2 } }, { children: jsx(Typography, Object.assign({ variant: "subtitle2", fontWeight: "normal" }, { children: "No assets" })) })));
}
return (jsxs(Wrapper, Object.assign({}, props, { children: [title && jsx(TitleTypography, Object.assign({ variant: "h5" }, { children: title })), jsxs(Grid, Object.assign({ container: true, spacing: 1, sx: containerSx }, { children: [loading
? new Array(12).fill(0).map((_, i) => (jsx(CardGrid, Object.assign({ item: true, xs: 6, sm: 3, md: 3, lg: 3 }, { children: jsxs(Box, Object.assign({ sx: { mt: 2, display: 'flex', alignItems: 'center' } }, { children: [jsx(Skeleton, Object.assign({ variant: "circular", sx: { mr: 1 } }, { children: jsx(Avatar, {}) })), jsx(Skeleton, { variant: "text", height: 40, width: "75%" })] })) }), `$g.index.${i + 1}`)))
: assets.map((item, index) => (jsx(CardGrid, Object.assign({ item: true, xs: 12, sm: 6, md: 3, lg: 3 }, { children: renderItem(item) }), keyExtractor(item, index)))), seeMoreLink && (jsx(Grid, Object.assign({ item: true, xs: 12, sx: { textAlign: 'right', pt: 1 } }, { children: jsxs(Link, Object.assign({ component: RouterLink, to: seeMoreLink, underline: "hover", color: "inherit" }, { children: [seeMoreText || 'See more', ' ', "\u21C0"] })) })))] }))] })));
};
export { ListGroup as default };
//# sourceMappingURL=ListGroup.js.map