UNPKG

@craftercms/studio-ui

Version:

Services, components, models & utils to build CrafterCMS authoring extensions.

116 lines (114 loc) 4.25 kB
/* * 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;