mirror of
https://github.com/Unleash/unleash.git
synced 2025-10-22 11:18:20 +02:00
* 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
88 lines
2.5 KiB
JavaScript
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;
|