aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/topbar
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2023-06-23 21:44:01 -0400
committerbobzel <zzzman@gmail.com>2023-06-23 21:44:01 -0400
commit85c017527f209c9d007d67ac70958843ab45e729 (patch)
treee2649860002e0c60e98d84439a67235002ddd9a4 /src/client/views/topbar
parente9d5dbeef2bf1dab9dfb863d970b70b3074e3d0a (diff)
parent1429ab79eac9aa316082f52c14c576f6b3a97111 (diff)
Merge branch 'master' into heartbeat
Diffstat (limited to 'src/client/views/topbar')
-rw-r--r--src/client/views/topbar/TopBar.tsx84
1 files changed, 20 insertions, 64 deletions
diff --git a/src/client/views/topbar/TopBar.tsx b/src/client/views/topbar/TopBar.tsx
index 50a93ee92..68d652cc4 100644
--- a/src/client/views/topbar/TopBar.tsx
+++ b/src/client/views/topbar/TopBar.tsx
@@ -3,20 +3,22 @@ import { Button, FontSize, IconButton, Size } from 'browndash-components';
import { action, computed, observable, reaction } from 'mobx';
import { observer } from 'mobx-react';
import * as React from 'react';
-import { FaBug, FaCamera } from 'react-icons/fa';
-import { AclAdmin, Doc, DocListCast } from '../../../fields/Doc';
+import { FaBug, FaCamera, FaStamp } from 'react-icons/fa';
+import { Doc } from '../../../fields/Doc';
+import { AclAdmin } from '../../../fields/DocSymbols';
import { StrCast } from '../../../fields/Types';
import { GetEffectiveAcl } from '../../../fields/util';
import { DocumentManager } from '../../util/DocumentManager';
import { PingManager } from '../../util/PingManager';
import { ReportManager } from '../../util/ReportManager';
+import { ServerStats } from '../../util/ServerStats';
import { SettingsManager } from '../../util/SettingsManager';
import { SharingManager } from '../../util/SharingManager';
import { UndoManager } from '../../util/UndoManager';
import { CollectionDockingView } from '../collections/CollectionDockingView';
import { ContextMenu } from '../ContextMenu';
import { DashboardView } from '../DashboardView';
-import { Borders, Colors } from '../global/globalEnums';
+import { Colors } from '../global/globalEnums';
import { MainView } from '../MainView';
import './TopBar.scss';
@@ -37,10 +39,11 @@ export class TopBar extends React.Component {
@observable backgroundColor: string = Colors.DARK_GRAY;
@observable happyHeart: boolean = PingManager.Instance.isBeating;
- setHappyHeart = action((status: boolean) => this.happyHeart = status);
- dispose = reaction(() => PingManager.Instance.isBeating, isBeating => this.setHappyHeart(isBeating));
-
-
+ setHappyHeart = action((status: boolean) => (this.happyHeart = status));
+ dispose = reaction(
+ () => PingManager.Instance.isBeating,
+ isBeating => this.setHappyHeart(isBeating)
+ );
/**
* Returns the left hand side of the topbar.
@@ -53,7 +56,7 @@ export class TopBar extends React.Component {
return (
<div className="topbar-left">
{Doc.ActiveDashboard ? (
- <IconButton onClick={this.navigateToHome} icon={<FontAwesomeIcon icon="home" />} isCircle={true} hoverStyle="gray" color={this.textColor} />
+ <IconButton onClick={this.navigateToHome} icon={<FontAwesomeIcon icon="home" />} color={this.textColor} />
) : (
<div className="logo-container">
<img className="logo" src="/assets/medium-blue-light-blue-circle.png" alt="dash logo"></img>
@@ -61,19 +64,8 @@ export class TopBar extends React.Component {
<span style={{ color: Colors.LIGHT_BLUE, fontWeight: 500 }}>dash</span>
</div>
)}
- {Doc.ActiveDashboard && !Doc.noviceMode && (
- <Button
- text="Explore"
- tooltip="Browsing mode for directly navigating to documents"
- fontSize={FontSize.SECONDARY}
- isActive={MainView.Instance._exploreMode}
- size={Size.SMALL}
- color={this.textColor}
- borderRadius={5}
- hoverStyle="gray"
- iconPosition="right"
- onClick={action(() => (MainView.Instance._exploreMode = !MainView.Instance._exploreMode))}
- />
+ {Doc.ActiveDashboard && (
+ <Button text="Explore" tooltip="Browsing mode for directly navigating to documents" size={Size.SMALL} color={this.textColor} onClick={action(() => (MainView.Instance._exploreMode = !MainView.Instance._exploreMode))} />
)}
</div>
);
@@ -101,13 +93,8 @@ export class TopBar extends React.Component {
<Button
text={StrCast(Doc.ActiveDashboard.title)}
tooltip="Browsing mode for directly navigating to documents"
- fontSize={FontSize.SECONDARY}
size={Size.SMALL}
color={'white'}
- type="outline"
- backgroundColor={Colors.MEDIUM_BLUE}
- borderRadius={5}
- hoverStyle="none"
onClick={(e: React.MouseEvent) => {
const dashView = Doc.ActiveDashboard && DocumentManager.Instance.getDocumentView(Doc.ActiveDashboard);
ContextMenu.Instance.addItem({ description: 'Open Dashboard View', event: this.navigateToHome, icon: 'edit' });
@@ -128,21 +115,13 @@ export class TopBar extends React.Component {
onClick={() => {
SharingManager.Instance.open(undefined, Doc.ActiveDashboard);
}}
- type="outline"
- fontSize={FontSize.SECONDARY}
size={Size.SMALL}
- borderRadius={5}
- hoverStyle="gray"
/>
{!Doc.noviceMode && (
<IconButton
- fontSize={FontSize.SECONDARY}
- isCircle={true}
tooltip="Work on a copy of the dashboard layout"
size={Size.SMALL}
color={this.textColor}
- borderRadius={Borders.STANDARD}
- hoverStyle="gray"
onClick={async () => {
const batch = UndoManager.StartBatch('snapshot');
await DashboardView.snapshotDashboard();
@@ -163,36 +142,13 @@ export class TopBar extends React.Component {
@computed get topbarRight() {
return (
<div className="topbar-right">
- <IconButton size={Size.SMALL} isCircle={true} color={Colors.LIGHT_GRAY} backgroundColor={Colors.DARK_GRAY} hoverStyle="gray" onClick={() => ReportManager.Instance.open()} icon={<FaBug />} />
- <IconButton
- size={Size.SMALL}
- isCircle={true}
- color={Colors.LIGHT_GRAY}
- backgroundColor={Colors.DARK_GRAY}
- hoverStyle="gray"
- onClick={() => window.open('https://brown-dash.github.io/Dash-Documentation/', '_blank')}
- icon={<FontAwesomeIcon icon="question-circle" />}
- />
- <IconButton
- size={Size.SMALL}
- isCircle={true}
- color={Colors.LIGHT_GRAY}
- backgroundColor={Colors.DARK_GRAY}
- hoverStyle="gray"
- isActive={SettingsManager.Instance.isOpen}
- onClick={() => SettingsManager.Instance.open()}
- icon={<FontAwesomeIcon icon="cog" />}
- />
- <IconButton
- size={Size.SMALL}
- isCircle={true}
- color={this.happyHeart ? Colors.LIGHT_BLUE : Colors.ERROR_RED}
- backgroundColor={Colors.DARK_GRAY}
- hoverStyle="gray"
- isActive={SettingsManager.Instance.isOpen}
- onClick={() => SettingsManager.Instance.open()}
- icon={<FontAwesomeIcon icon={this.happyHeart ? "heart" : "heart-broken"} />}
- />
+ <IconButton size={Size.SMALL} color={Colors.LIGHT_GRAY} onClick={ServerStats.Instance.open} icon={<FaStamp />} />
+ <IconButton size={Size.SMALL} color={Colors.LIGHT_GRAY} onClick={ReportManager.Instance.open} icon={<FaBug />} />
+ <IconButton size={Size.SMALL} color={Colors.LIGHT_GRAY} onClick={() => window.open('https://brown-dash.github.io/Dash-Documentation/', '_blank')} icon={<FontAwesomeIcon icon="question-circle" />} />
+ <IconButton size={Size.SMALL} color={Colors.LIGHT_GRAY} onClick={SettingsManager.Instance.open} icon={<FontAwesomeIcon icon="cog" />} />
+ <div className={'topbarHeart' + (this.happyHeart ? '' : '-red')}>
+ <IconButton size={Size.SMALL} color={this.happyHeart ? Colors.LIGHT_BLUE : Colors.ERROR_RED} icon={<FontAwesomeIcon icon={this.happyHeart ? 'heart' : 'heart-broken'} />} />
+ </div>
{/* <Button text={'Logout'} borderRadius={5} hoverStyle={'gray'} backgroundColor={Colors.DARK_GRAY} color={this.textColor} fontSize={FontSize.SECONDARY} onClick={() => window.location.assign(Utils.prepend('/logout'))} /> */}
</div>
);