diff options
| author | Jenny Yu <jennyyu212@outlook.com> | 2022-06-08 22:55:16 -0700 |
|---|---|---|
| committer | Jenny Yu <jennyyu212@outlook.com> | 2022-06-08 22:55:16 -0700 |
| commit | 0e6f5e580b7e64ecc2002534e1a14ccee36cd28e (patch) | |
| tree | 0fe75e9bb87326b1684722c59ea5cb7a07cbce63 /src/client/views/DashboardView.tsx | |
| parent | e08c690dbeca3e58b1bc0d387df0287f60f58b7a (diff) | |
feat: basic dashboard view
Diffstat (limited to 'src/client/views/DashboardView.tsx')
| -rw-r--r-- | src/client/views/DashboardView.tsx | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/client/views/DashboardView.tsx b/src/client/views/DashboardView.tsx new file mode 100644 index 000000000..5fd9b550d --- /dev/null +++ b/src/client/views/DashboardView.tsx @@ -0,0 +1,50 @@ +import { observable } from "mobx"; +import { observer } from "mobx-react"; +import * as React from 'react'; +import { Doc, DocListCast } from "../../fields/Doc"; +import { Id } from "../../fields/FieldSymbols"; +import { Cast, ImageCast, StrCast } from "../../fields/Types"; +import { CurrentUserUtils } from "../util/CurrentUserUtils"; +import { UndoManager } from "../util/UndoManager"; +import "./DashboardView.scss" + +@observer +export class DashboardView extends React.Component { + + //TODO: delete dashboard, share dashboard, etc. + + newDashboard = async () => { + const batch = UndoManager.StartBatch("new dash"); + await CurrentUserUtils.createNewDashboard(Doc.UserDoc()); + batch.end(); + } + + clickDashboard = async (e: React.MouseEvent, dashboard: Doc) => { + if (e.detail === 2) { + Doc.UserDoc().activeDashboard = dashboard + } + } + + render() { + const myDashboards = DocListCast(CurrentUserUtils.MyDashboards.data); + return <div className="dashboard-view"> + <div className="left-menu"> + <div onClick={this.newDashboard}>New</div> + <div>All Dashboards</div> + </div> + <div className="all-dashboards"> + {myDashboards.map((dashboard) => + <div className="dashboard-container" key={dashboard[Id]} onClick={(e) => { this.clickDashboard(e, dashboard) }}> + <img src="https://media.istockphoto.com/photos/hot-air-balloons-flying-over-the-botan-canyon-in-turkey-picture-id1297349747?b=1&k=20&m=1297349747&s=170667a&w=0&h=oH31fJty_4xWl_JQ4OIQWZKP8C6ji9Mz7L4XmEnbqRU="></img> + <div className="title"> {StrCast(dashboard.title)} </div> + </div> + + )} + {myDashboards.map((dashboard) => { + console.log(dashboard.thumb) + })} + + </div> + </div> + } +} |
