@craftercms/studio-ui
Version:
Services, components, models & utils to build CrafterCMS authoring extensions.
156 lines (154 loc) • 5.41 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 { makeStyles } from 'tss-react/mui';
import ViewVersionDialogContainer from './ViewVersionDialogContainer';
import EnhancedDialog from '../EnhancedDialog/EnhancedDialog';
import { FormattedMessage } from 'react-intl';
/*const versionViewStyles = makeStyles(() => ({
viewVersionBox: {
margin: '0 10px 10px 10px',
'& .blackText': {
color: palette.black
}
},
viewVersionContent: {
background: palette.white
},
root: {
margin: 0,
'&.Mui-expanded': {
margin: 0,
borderBottom: `1px solid rgba(0,0,0,0.12)`
}
},
bold: {
fontWeight: 600
},
singleItemSelector: {
marginBottom: '10px'
}
})); */
export const getLegacyDialogStyles = makeStyles()(() => ({
iframe: {
border: 'none',
height: '80vh'
}
}));
/*function VersionView(props: VersionViewProps) {
const { version, contentTypes } = props.resource.read();
const classes = versionViewStyles({});
const values = Object.values(contentTypes[version.contentTypeId].fields) as ContentTypeField[];
return (
<>
<section className={classes.viewVersionBox}>
<ListItemText
primary={<AsDayMonthDateTime date={version.lastModifiedDate} />}
secondary={
<FormattedMessage
id="historyDialog.versionNumber"
defaultMessage="Version: <span>{versionNumber}</span>"
values={{
versionNumber: version.versionNumber,
span: (msg) => <span className="blackText">{msg}</span>
}}
/>
}
/>
</section>
<section className={classes.viewVersionContent}>
{contentTypes &&
values.map((field) => (
<Accordion key={field.id} classes={{ root: classes.root }}>
<AccordionSummary expandIcon={<ExpandMoreIcon />}>
<Typography>
<span className={classes.bold}>{field.name}</span> ({field.id})
</Typography>
</AccordionSummary>
<AccordionDetails>
<Typography>
{field.type === 'html' ? (
<span
dangerouslySetInnerHTML={{
__html: unescapeHTML(version.content[version.id][field.id])
}}
/>
) : typeof version.content[version.id][field.id] === 'object' ? (
JSON.stringify(version.content[version.id][field.id])
) : (
version.content[version.id][field.id]
)}
</Typography>
</AccordionDetails>
</Accordion>
))}
</section>
</>
);
} */
export function ViewVersionDialog(props) {
const { rightActions, leftActions, contentTypesBranch, error, isFetching, version } = props,
rest = __rest(props, ['rightActions', 'leftActions', 'contentTypesBranch', 'error', 'isFetching', 'version']);
return React.createElement(
EnhancedDialog,
Object.assign(
{
title: React.createElement(FormattedMessage, {
id: 'viewVersionDialog.headerTitle',
defaultMessage: 'Viewing item version'
}),
dialogHeaderProps: {
leftActions,
rightActions
}
},
rest
),
React.createElement(ViewVersionDialogContainer, {
version: version,
contentTypesBranch: contentTypesBranch,
error: error,
isFetching: isFetching
})
);
}
export default ViewVersionDialog;