import { action, observable } from "mobx"; import { extname } from 'path'; 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" enum DashboardGroup { MyDashboards, SharedDashboards } @observer export class DashboardView extends React.Component { //TODO: delete dashboard, share dashboard, etc. @observable private selectedDashboardGroup = DashboardGroup.MyDashboards; @action selectDashboardGroup = (group: DashboardGroup) => { this.selectedDashboardGroup = group } newDashboard = async () => { const batch = UndoManager.StartBatch("new dash"); await CurrentUserUtils.createNewDashboard(); batch.end(); } clickDashboard = async (e: React.MouseEvent, dashboard: Doc) => { if (e.detail === 2) { CurrentUserUtils.ActiveDashboard = dashboard; CurrentUserUtils.ActivePage = "dashboard"; } } getDashboards = () => { const allDashbaords = DocListCast(CurrentUserUtils.MyDashboards.data); // TODO: filter the dashboards // return allDashbaords.filter(...) return allDashbaords } render() { return