+const renderCollectionHeader = (collection: CollectionResource) =>
+ <>
+ <IconBase icon="collection" />
+ <Typography variant="title">
+ {collection.name}
+ </Typography>
+ </>;
+
+const renderProjectHeader = (project: ProjectResource) =>
+ <>
+ <IconBase icon="project" />
+ <Typography variant="title">
+ {project.name}
+ </Typography>
+ </>;
+
+const renderHeader = (resource: Resource) => {
+ switch(resource.kind) {
+ case ResourceKind.Project:
+ return renderProjectHeader(resource as ProjectResource);
+ case ResourceKind.Collection:
+ return renderCollectionHeader(resource as CollectionResource);
+ default:
+ return null;
+ }
+};
+
+const mapStateToProps = ({detailsPanel}: RootState) => ({
+ isOpened: detailsPanel.isOpened,
+ header: detailsPanel.item ? renderHeader(detailsPanel.item) : null
+});
+
+const mapDispatchToProps = (dispatch: Dispatch) => ({
+ onCloseDrawer: () => {
+ dispatch(actions.TOGGLE_DETAILS_PANEL());
+ }
+});
+
+const DetailsPanelContainer = connect(mapStateToProps, mapDispatchToProps)(DetailsPanel);
+
+export default withStyles(styles)(DetailsPanelContainer);
\ No newline at end of file