aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/DashboardView.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views/DashboardView.tsx')
-rw-r--r--src/client/views/DashboardView.tsx41
1 files changed, 30 insertions, 11 deletions
diff --git a/src/client/views/DashboardView.tsx b/src/client/views/DashboardView.tsx
index 14abd5f89..25415a4f0 100644
--- a/src/client/views/DashboardView.tsx
+++ b/src/client/views/DashboardView.tsx
@@ -1,3 +1,5 @@
+/* eslint-disable jsx-a11y/no-static-element-interactions */
+/* eslint-disable jsx-a11y/click-events-have-key-events */
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { Button, ColorPicker, EditableText, Size, Type } from 'browndash-components';
import { action, computed, makeObservable, observable } from 'mobx';
@@ -48,10 +50,18 @@ export class DashboardView extends ObservableReactComponent<{}> {
@observable private selectedDashboardGroup = DashboardGroup.MyDashboards;
@observable private newDashboardName = '';
@observable private newDashboardColor = '#AFAFAF';
- @action abortCreateNewDashboard = () => (this.openModal = false);
- @action setNewDashboardName = (name: string) => (this.newDashboardName = name);
- @action setNewDashboardColor = (color: string) => (this.newDashboardColor = color);
- @action selectDashboardGroup = (group: DashboardGroup) => (this.selectedDashboardGroup = group);
+ @action abortCreateNewDashboard = () => {
+ this.openModal = false;
+ };
+ @action setNewDashboardName = (name: string) => {
+ this.newDashboardName = name;
+ };
+ @action setNewDashboardColor = (color: string) => {
+ this.newDashboardColor = color;
+ };
+ @action selectDashboardGroup = (group: DashboardGroup) => {
+ this.selectedDashboardGroup = group;
+ };
clickDashboard = (e: React.MouseEvent, dashboard: Doc) => {
if (this.selectedDashboardGroup === DashboardGroup.SharedDashboards) {
@@ -138,9 +148,9 @@ export class DashboardView extends ObservableReactComponent<{}> {
<>
<div className="dashboard-view">
<div className="left-menu">
- <Button text="My Dashboards" active={this.selectedDashboardGroup === DashboardGroup.MyDashboards} color={color} align={'flex-start'} onClick={() => this.selectDashboardGroup(DashboardGroup.MyDashboards)} fillWidth />
+ <Button text="My Dashboards" active={this.selectedDashboardGroup === DashboardGroup.MyDashboards} color={color} align="flex-start" onClick={() => this.selectDashboardGroup(DashboardGroup.MyDashboards)} fillWidth />
<Button
- text={'Shared Dashboards' + ' (' + this.getDashboards(DashboardGroup.SharedDashboards).length + ')'}
+ text={'Shared Dashboards (' + this.getDashboards(DashboardGroup.SharedDashboards).length + ')'}
active={this.selectedDashboardGroup === DashboardGroup.SharedDashboards}
color={this.getDashboards(DashboardGroup.SharedDashboards).some(dash => !DocListCast(Doc.MySharedDocs.viewed).includes(dash)) ? 'green' : color}
align="flex-start"
@@ -165,14 +175,22 @@ export class DashboardView extends ObservableReactComponent<{}> {
onContextMenu={e => this.onContextMenu(dashboard, e)}
onClick={e => this.clickDashboard(e, dashboard)}>
<img
+ alt=""
src={
href ??
'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='
}
/>
<div className="info">
- <EditableText type={Type.PRIM} color={color} val={StrCast(dashboard.title)} setVal={val => (dashboard[DocData].title = val)} />
- {this.selectedDashboardGroup === DashboardGroup.SharedDashboards && this.isUnviewedSharedDashboard(dashboard) ? <div>unviewed</div> : <div></div>}
+ <EditableText
+ type={Type.PRIM}
+ color={color}
+ val={StrCast(dashboard.title)}
+ setVal={val => {
+ dashboard[DocData].title = val;
+ }}
+ />
+ {this.selectedDashboardGroup === DashboardGroup.SharedDashboards && this.isUnviewedSharedDashboard(dashboard) ? <div>unviewed</div> : <div />}
<div
className="more"
onPointerDown={e => {
@@ -208,7 +226,7 @@ export class DashboardView extends ObservableReactComponent<{}> {
)}
</div>
</div>
- <MainViewModal contents={this.namingInterface} isDisplayed={this.openModal} interactive={true} closeOnExternalClick={this.abortCreateNewDashboard} dialogueBoxStyle={{ width: '400px', height: '180px', color: Colors.LIGHT_GRAY }} />
+ <MainViewModal contents={this.namingInterface} isDisplayed={this.openModal} interactive closeOnExternalClick={this.abortCreateNewDashboard} dialogueBoxStyle={{ width: '400px', height: '180px', color: Colors.LIGHT_GRAY }} />
</>
);
}
@@ -252,6 +270,7 @@ export class DashboardView extends ObservableReactComponent<{}> {
// }
// CollectionView.SetSafeMode(true);
} else if (state.nro || state.nro === null || state.readonly === false) {
+ /* empty */
} else if (doc.readOnly) {
DocServer.Control.makeReadOnly();
} else {
@@ -274,7 +293,7 @@ export class DashboardView extends ObservableReactComponent<{}> {
public static resetDashboard = (dashboard: Doc) => {
const config = StrCast(dashboard.dockingConfig);
- const matches = config.match(/\"documentId\":\"[a-z0-9-]+\"/g);
+ const matches = config.match(/"documentId":"[a-z0-9-]+"/g);
const docids = matches?.map(m => m.replace('"documentId":"', '').replace('"', '')) ?? [];
const components =
@@ -368,7 +387,7 @@ export class DashboardView extends ObservableReactComponent<{}> {
title: `Untitled Tab 1`,
};
- const title = name ? name : `Dashboard ${dashboardCount}`;
+ const title = name || `Dashboard ${dashboardCount}`;
const freeformDoc = Doc.GuestTarget || Docs.Create.FreeformDocument([], freeformOptions);
const dashboardDoc = Docs.Create.StandardCollectionDockingDocument([{ doc: freeformDoc, initialWidth: 600 }], { title: title }, id, 'row');