diff options
| author | bobzel <zzzman@gmail.com> | 2023-06-23 21:44:01 -0400 |
|---|---|---|
| committer | bobzel <zzzman@gmail.com> | 2023-06-23 21:44:01 -0400 |
| commit | 85c017527f209c9d007d67ac70958843ab45e729 (patch) | |
| tree | e2649860002e0c60e98d84439a67235002ddd9a4 /src/client/views/topbar | |
| parent | e9d5dbeef2bf1dab9dfb863d970b70b3074e3d0a (diff) | |
| parent | 1429ab79eac9aa316082f52c14c576f6b3a97111 (diff) | |
Merge branch 'master' into heartbeat
Diffstat (limited to 'src/client/views/topbar')
| -rw-r--r-- | src/client/views/topbar/TopBar.tsx | 84 |
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> ); |
