import React from 'react' import { translate } from 'react-i18next' import PropTypes from 'prop-types' import classnames from 'classnames' import FileItem from './FileItem.jsx' // import PopupExtandedAction from '../../container/PopupExtandedAction.jsx' import BtnExtandedAction from './BtnExtandedAction.jsx' class Folder extends React.Component { constructor (props) { super(props) this.state = { open: false } } handleClickToggleFolder = () => { !this.state.open && this.props.folderData.content.length === 0 && this.props.onClickFolder(this.props.folderData.id) this.setState({open: !this.state.open}) } handleClickNewFile = e => { e.stopPropagation() // because we have a link inside a link (togler and newFile) console.log('new file') // @TODO } render () { const { app, folderData, onClickItem, onClickExtendedAction, onClickFolder, isLast, t } = this.props return (
{ folderData.title }
Créer un dossier
Rédiger un document
Importer un fichier
Rédiger un document markdown
Lancer une discussion
Créer une tâche
Ouvrir un ticket
onClickExtendedAction.edit(e, folderData), move: e => onClickExtendedAction.move(e, folderData), download: e => onClickExtendedAction.download(e, folderData), archive: e => onClickExtendedAction.archive(e, folderData), delete: e => onClickExtendedAction.delete(e, folderData) }} />
{ folderData.content.map((c, i) => c.type === 'folder' ? : onClickItem(c)} onClickExtendedAction={{ // we have to use the event here because it is the only place where we also have the content (c) edit: e => onClickExtendedAction.edit(e, c), move: e => onClickExtendedAction.move(e, c), download: e => onClickExtendedAction.download(e, c), archive: e => onClickExtendedAction.archive(e, c), delete: e => onClickExtendedAction.delete(e, c) }} isLast={isLast && i === folderData.content.length - 1} key={c.id} /> )}
) } } export default translate()(Folder) Folder.propTypes = { folderData: PropTypes.shape({ title: PropTypes.string.isRequired, content: PropTypes.array }), app: PropTypes.object, onClickItem: PropTypes.func.isRequired, onClickFolder: PropTypes.func.isRequired, isLast: PropTypes.bool.isRequired }