From 34ec4ff39ff862447ee5f26a5667c8a1e1a3d2eb Mon Sep 17 00:00:00 2001 From: Evan Simkowitz Date: Thu, 25 Jan 2024 13:31:20 -0800 Subject: [PATCH] Add status indicators to workspace items in the sidebar (#245) * save work * refactor end-icon and actions-icon into separate components * reverting change part 1 * fix * separate out workspace and tab formatting more * save work * Got it working! * fix scrollbar but hide it so that the formatting doesn't jump when hovering * revert some changes, replace some svgs with fontawesome * remove listitem * remove log --- src/app/app.less | 22 ++-- src/app/common/common.less | 35 ++++-- src/app/common/common.tsx | 60 +++++++++- src/app/sidebar/sidebar.less | 58 ++++++---- src/app/sidebar/sidebar.tsx | 167 ++++++++++++++-------------- src/app/workspace/screen/tab.tsx | 20 +--- src/app/workspace/screen/tabs.less | 38 +------ src/app/workspace/screen/tabs.tsx | 3 +- src/model/model.ts | 173 +++++++++++------------------ wavesrv/pkg/cmdrunner/cmdrunner.go | 17 +++ wavesrv/pkg/sstore/sstore.go | 1 - 11 files changed, 310 insertions(+), 284 deletions(-) diff --git a/src/app/app.less b/src/app/app.less index 2035273f..0771aa40 100644 --- a/src/app/app.less +++ b/src/app/app.less @@ -99,9 +99,6 @@ body a { body code { font-family: @terminal-font; -} - -body code { background-color: transparent; } @@ -123,11 +120,19 @@ svg.icon { } .hideScrollbarUntillHover { - overflow: hidden; - &:hover, - &:focus, - &:focus-within { - overflow: auto; + overflow: scroll; + + &::-webkit-scrollbar-thumb, + &::-webkit-scrollbar-track { + display: none; + } + + &::-webkit-scrollbar-corner { + display: none; + } + + &:hover::-webkit-scrollbar-thumb { + display: block; } } @@ -647,7 +652,6 @@ a.a-block { margin-right: 10px; border-radius: 8px; border: 1px solid rgba(241, 246, 243, 0.08); - background: rgba(13, 13, 13, 0.85); .header { margin: 24px 18px; diff --git a/src/app/common/common.less b/src/app/common/common.less index b1e85f4f..c1b8f208 100644 --- a/src/app/common/common.less +++ b/src/app/common/common.less @@ -609,7 +609,6 @@ .wave-dropdown { position: relative; - background-color: transparent; height: 44px; min-width: 150px; width: 100%; @@ -715,9 +714,7 @@ top: 100%; left: 0; right: 0; - z-index: 0; margin-top: 2px; - padding: 0; max-height: 200px; overflow-y: auto; padding: 6px; @@ -775,7 +772,6 @@ min-width: 412px; gap: 6px; border: 1px solid var(--element-separator, rgba(241, 246, 243, 0.15)); - border-radius: 6px; background: var(--element-hover-2, rgba(255, 255, 255, 0.06)); box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.4), 0px 0px 0.5px 0px rgba(0, 0, 0, 0.5), 0px 0px 0.5px 0px rgba(255, 255, 255, 0.5) inset, 0px 0.5px 0px 0px rgba(255, 255, 255, 0.2) inset; @@ -931,7 +927,6 @@ background: none; color: inherit; border: none; - padding: 0; font: inherit; cursor: pointer; outline: inherit; @@ -1157,10 +1152,34 @@ } } -.status-indicator { - position: relative; - top: 1px; +.front-icon { + margin-right: 5px; + .svg-icon svg { + width: 14px; + height: 14px; + } + font-size: 16px; +} +.positional-icon-inner { + & > div,i { + text-align: center; + align-items: center; + vertical-align: middle; + width: 20px; + margin: auto auto; + } +} + +.actions { + .icon { + font-size: 15px; + padding-top: 2.5px; + margin-bottom: -2.5px; + } +} + +.status-indicator { &.error { color: @term-red; } diff --git a/src/app/common/common.tsx b/src/app/common/common.tsx index b9b590d1..35d5f4a5 100644 --- a/src/app/common/common.tsx +++ b/src/app/common/common.tsx @@ -117,7 +117,7 @@ class Checkbox extends React.Component< constructor(props) { super(props); this.state = { - checkedInternal: this.props.checked !== undefined ? this.props.checked : Boolean(this.props.defaultChecked), + checkedInternal: this.props.checked ?? Boolean(this.props.defaultChecked), }; this.generatedId = `checkbox-${Checkbox.idCounter++}`; } @@ -287,15 +287,15 @@ class Button extends React.Component { } render() { - const { leftIcon, rightIcon, theme, children, disabled, variant, color, style } = this.props; + const { leftIcon, rightIcon, theme, children, disabled, variant, color, style, autoFocus, className } = this.props; return (