import React from 'react' import Button from '@mui/material/Button' import { withStyles } from '@mui/styles' import { Theme } from '@mui/material/styles' import { bindActionCreators } from 'redux' import { connect } from 'react-redux' import * as q from '../../../../../backend/src/Model' import { treeActions } from '../../../actions' import { TopicViewModel } from '../../../model/TopicViewModel' interface Props { classes: any theme: Theme node?: q.TreeNode selected?: q.TreeNode actions: typeof treeActions } const styles = (theme: Theme) => ({ button: { textTransform: 'none' as const, padding: '3px 5px 3px 5px', minWidth: '30px', }, }) class Topic extends React.PureComponent { public render() { const { node, theme } = this.props if (!node) { return null } let key = 0 const breadCrumps = node .branch() .map(node => node.sourceEdge) .filter(edge => Boolean(edge)) .map(edge => [ , ]) if (breadCrumps.length === 0) { return null } const joinedBreadCrumps = breadCrumps.reduce((prev, current) => prev.concat([ / ]).concat(current) ) return {joinedBreadCrumps} } } const mapDispatchToProps = (dispatch: any) => ({ actions: bindActionCreators(treeActions, dispatch), }) export default connect(null, mapDispatchToProps)(withStyles(styles, { withTheme: true })(Topic) as any)