1
0
mirror of https://github.com/mattermost/focalboard.git synced 2025-05-13 21:37:37 +02:00
focalboard/src/client/components/workspaceComponent.tsx

54 lines
1.4 KiB
TypeScript
Raw Normal View History

2020-10-12 11:02:07 -07:00
import React from "react"
import { BoardTree } from "../boardTree"
import { Mutator } from "../mutator"
import { IPageController } from "../octoTypes"
import { Utils } from "../utils"
import { WorkspaceTree } from "../workspaceTree"
import { BoardComponent } from "./boardComponent"
import { Sidebar } from "./sidebar"
import { TableComponent } from "./tableComponent"
type Props = {
mutator: Mutator,
workspaceTree: WorkspaceTree
boardTree?: BoardTree
pageController: IPageController
}
class WorkspaceComponent extends React.Component<Props> {
render() {
2020-10-12 19:28:15 -07:00
const { mutator, boardTree, workspaceTree, pageController } = this.props
2020-10-12 12:01:00 -07:00
2020-10-12 11:02:07 -07:00
const element =
<div className="octo-workspace">
2020-10-12 19:28:15 -07:00
<Sidebar mutator={mutator} pageController={pageController} workspaceTree={workspaceTree} boardTree={boardTree}></Sidebar>
2020-10-12 11:02:07 -07:00
{this.mainComponent()}
</div>
return element
}
private mainComponent() {
const { mutator, boardTree, pageController } = this.props
const { activeView } = boardTree
switch (activeView.viewType) {
case "board": {
return <BoardComponent mutator={mutator} boardTree={boardTree} pageController={pageController} />
}
case "table": {
return <TableComponent mutator={mutator} boardTree={boardTree} pageController={pageController} />
}
default: {
Utils.assertFailure(`render() Unhandled viewType: ${activeView.viewType}`)
return <div></div>
}
}
}
}
export { WorkspaceComponent }