import { 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" @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
New
All Dashboards
{myDashboards.map((dashboard) => { const url = ImageCast((dashboard.thumb as Doc)?.data)?.url; const ext = url ? extname(url.href):""; const href = url?.href.replace(ext, "_m"+ ext); // need to choose which resolution image to show. options are _s, _m, _l, _o (small/medium/large/original) return
this.clickDashboard(e, dashboard)}>
{StrCast(dashboard.title)}
})} {myDashboards.map((dashboard) => { console.log(dashboard.thumb) })}
} }