1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-10-22 11:18:20 +02:00
unleash.unleash/frontend/src/component/history/EventLog/EventLog.jsx
olav f309553a5f refactor: port some things to TS (#833)
* refactor: remove unused securityLogger

* refactor: port commonStyles to TS

* refactor: port testIds to TS

* refactor: move app.css into themes

* refactor: use absolute import paths

* refactor: port LayoutPicker to TS

* refactor: port routes to TS

* refactor: port ScrollTop to TS

* refactor: update unused/missing ScrollTop exceptions

* refactor: remove unused route flags field

* refactor: change constants ext to TS

* refactor: remove unused testData file

* refactor: port styles to TS

* refactor: wait before typing in auth spec
2022-04-01 10:28:15 +02:00

88 lines
2.5 KiB
JavaScript

import { List, Switch, FormControlLabel } from '@material-ui/core';
import PropTypes from 'prop-types';
import EventJson from './EventJson/EventJson';
import PageContent from 'component/common/PageContent/PageContent';
import HeaderTitle from 'component/common/HeaderTitle';
import EventCard from './EventCard/EventCard';
import { useStyles } from './EventLog.styles';
import { formatDateYMDHMS } from 'utils/formatDate';
const EventLog = ({
title,
history,
eventSettings,
setEventSettings,
locationSettings,
displayInline,
}) => {
const styles = useStyles();
const toggleShowDiff = () => {
setEventSettings({ showData: !eventSettings.showData });
};
const formatFulldateTime = v => {
return formatDateYMDHMS(v, locationSettings.locale);
};
if (!history || history.length < 0) {
return null;
}
let entries;
const renderListItemCards = entry => (
<div key={entry.id} className={styles.eventEntry}>
<EventCard
entry={entry}
timeFormatted={formatFulldateTime(entry.createdAt)}
/>
</div>
);
if (eventSettings.showData) {
entries = history.map(entry => (
<EventJson key={`log${entry.id}`} entry={entry} />
));
} else {
entries = history.map(renderListItemCards);
}
return (
<PageContent
disablePadding={displayInline}
disableBorder={displayInline}
headerContent={
<HeaderTitle
title={title}
actions={
<FormControlLabel
control={
<Switch
checked={eventSettings.showData}
onChange={toggleShowDiff}
color="primary"
/>
}
label="Full events"
/>
}
/>
}
>
<div className={styles.history}>
<List>{entries}</List>
</div>
</PageContent>
);
};
EventLog.propTypes = {
history: PropTypes.array,
eventSettings: PropTypes.object.isRequired,
setEventSettings: PropTypes.func.isRequired,
locationSettings: PropTypes.object.isRequired,
title: PropTypes.string,
displayInline: PropTypes.bool,
};
export default EventLog;