WorkspaceContent.jsx 2.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import React from 'react'
  2. import { connect } from 'react-redux'
  3. import Folder from '../component/Workspace/Folder.jsx'
  4. import FileItem from '../component/Workspace/FileItem.jsx'
  5. import FileItemHeader from '../component/Workspace/FileItemHeader.jsx'
  6. // import Thread from './Thread.jsx'
  7. // import PageText from './PageText.jsx'
  8. import Preview from './Preview.jsx'
  9. import PageWrapper from '../component/common/layout/PageWrapper.jsx'
  10. import PageTitle from '../component/common/layout/PageTitle.jsx'
  11. import PageContent from '../component/common/layout/PageContent.jsx'
  12. import DropdownCreateButton from '../component/common/Input/DropdownCreateButton.jsx'
  13. import { getWorkspaceContent } from '../action-creator.async.js'
  14. class WorkspaceContent extends React.Component {
  15. constructor (props) {
  16. super(props)
  17. this.state = {
  18. activeFileType: ''
  19. }
  20. }
  21. componentDidMount () {
  22. this.props.dispatch(getWorkspaceContent(/* this.props.workspace.id */1))
  23. }
  24. render () {
  25. const { workspace } = this.props
  26. return (
  27. <PageWrapper customeClass='workspace'>
  28. <PageTitle
  29. parentClass='workspace__header'
  30. customClass='justify-content-between'
  31. title={workspace.title}
  32. >
  33. <DropdownCreateButton parentClass='workspace__header__btnaddworkspace' />
  34. </PageTitle>
  35. <PageContent parentClass='workspace__content'>
  36. <div className='workspace__content__fileandfolder folder__content active'>
  37. <FileItemHeader />
  38. { workspace.content.map(c => c.type === 'folder'
  39. ? <Folder folderData={c} key={c.id} />
  40. : <FileItem
  41. name={c.title}
  42. type={c.type}
  43. status={c.status}
  44. onClickItem={() => this.setState({activeFileType: 'file'})}
  45. key={c.id}
  46. />
  47. )}
  48. </div>
  49. <DropdownCreateButton customClass='workspace__content__button mb-5' />
  50. <Preview visible={this.state.activeFileType === 'file'} />
  51. {/*
  52. <PageText visible={this.state.activeFileType === 'file'} />
  53. <Thread visible={this.state.activeFileType === 'thread'} />
  54. */}
  55. </PageContent>
  56. </PageWrapper>
  57. )
  58. }
  59. }
  60. const mapStateToProps = ({ workspace }) => ({ workspace })
  61. export default connect(mapStateToProps)(WorkspaceContent)