@craftercms/studio-ui
Version:
Services, components, models & utils to build CrafterCMS authoring extensions.
116 lines (114 loc) • 4.25 kB
JavaScript
/*
* Copyright (C) 2007-2022 Crafter Software Corporation. All Rights Reserved.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3 as published by
* the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*
* Copyright (C) 2007-2022 Crafter Software Corporation. All Rights Reserved.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3 as published by
* the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
var __rest =
(this && this.__rest) ||
function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === 'function')
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
}
return t;
};
import React from 'react';
import Accordion from '@mui/material/Accordion';
import AccordionSummary, { accordionSummaryClasses } from '@mui/material/AccordionSummary';
import ExpandMoreIcon from '@mui/icons-material/ExpandMoreRounded';
import useStyles from './styles';
import AccordionDetails from '@mui/material/AccordionDetails';
import Typography from '@mui/material/Typography';
import IconButton from '@mui/material/IconButton';
import { FormattedMessage } from 'react-intl';
import Tooltip from '@mui/material/Tooltip';
import RefreshRoundedIcon from '@mui/icons-material/RefreshRounded';
import { styled } from '@mui/material/styles';
const Summary = styled(AccordionSummary)(() => {
return {
[`& .${accordionSummaryClasses['content']}`]: {
alignItems: 'center'
},
[`&.${accordionSummaryClasses['focusVisible']}`]: {
backgroundColor: 'inherit'
}
};
});
export function LegacyDashletCard(props) {
const {
icon: Icon = ExpandMoreIcon,
title,
headerRightSection,
onToggleExpanded,
refreshDisabled = false,
children,
onRefresh
} = props,
rest = __rest(props, [
'icon',
'title',
'headerRightSection',
'onToggleExpanded',
'refreshDisabled',
'children',
'onRefresh'
]);
const { classes, cx: clsx } = useStyles();
return React.createElement(
Accordion,
Object.assign({}, rest),
React.createElement(
Summary,
{ expandIcon: React.createElement(Icon, null), onClick: onToggleExpanded },
React.createElement(Typography, null, title),
headerRightSection && React.createElement('section', { className: classes.rightSection }, headerRightSection),
onRefresh &&
React.createElement(
IconButton,
{
disabled: refreshDisabled,
onClick: (e) => {
e.stopPropagation();
onRefresh();
},
className: clsx(!headerRightSection && classes.refresh),
size: 'large'
},
React.createElement(
Tooltip,
{ title: React.createElement(FormattedMessage, { id: 'words.refresh', defaultMessage: 'Refresh' }) },
React.createElement(RefreshRoundedIcon, null)
)
)
),
React.createElement(AccordionDetails, { className: classes.details }, children)
);
}
export default LegacyDashletCard;