From add769fe1e16dcfdc3d8e9c9b013cda19844c9a4 Mon Sep 17 00:00:00 2001 From: Michael Foster Date: Fri, 7 Jun 2024 15:08:17 -0400 Subject: [PATCH] fix for MultiPartProgressBar styling (#1022) --- .../MultiPartProgressBar.scss | 49 +++++++++++-------- .../MultiPartProgressBar.tsx | 46 ++++++++++++----- .../cuesheet-progress/CuesheetProgress.tsx | 1 + .../operator/status-bar/StatusBar.module.scss | 2 +- .../operator/status-bar/StatusBarProgress.tsx | 1 + 5 files changed, 64 insertions(+), 35 deletions(-) diff --git a/apps/client/src/common/components/multi-part-progress-bar/MultiPartProgressBar.scss b/apps/client/src/common/components/multi-part-progress-bar/MultiPartProgressBar.scss index b9378798c..60630ea9f 100644 --- a/apps/client/src/common/components/multi-part-progress-bar/MultiPartProgressBar.scss +++ b/apps/client/src/common/components/multi-part-progress-bar/MultiPartProgressBar.scss @@ -7,10 +7,6 @@ $progress-bar-br: 3px; position: relative; width: 100%; height: $progress-bar-size; - border-radius: $progress-bar-br; - background-color: var(--timer-progress-bg-override, $viewer-card-bg-color); - display: flex; - overflow: hidden; &--hidden { display: none; @@ -18,31 +14,42 @@ $progress-bar-br: 3px; } } +.multiprogress-bar__bg { + position: absolute; + inset: 0; + overflow: hidden; + border-radius: var(--progress-bar-br, $progress-bar-br); + + display: flex; + flex-direction: row; + justify-content: flex-end; +} + .multiprogress-bar__indicator { position: absolute; - height: inherit; - background-color: black; + inset: 0; + margin: -1px; + margin-left: 0; + display: flex; + flex-direction: row; + justify-content: flex-end; +} + +.multiprogress-bar__indicator-bar { + background-color: var(--background-color-override, $ui-black); opacity: 0.8; transition: 1s linear; transition-property: width; - right: 0; + + .multiprogress-bar--ignore-css-override & { + background-color: $ui-black; + } } .multiprogress-bar__bg-normal { - position: absolute; - height: inherit; - right: 0; - width: 100%; -} - -.multiprogress-bar__bg-warning { - position: absolute; - height: inherit; - right: 0; + flex: 1; } .multiprogress-bar__bg-danger { - position: absolute; - height: inherit; - right: 0; -} \ No newline at end of file + flex-shrink: 0; +} diff --git a/apps/client/src/common/components/multi-part-progress-bar/MultiPartProgressBar.tsx b/apps/client/src/common/components/multi-part-progress-bar/MultiPartProgressBar.tsx index 9245cddae..ce750c128 100644 --- a/apps/client/src/common/components/multi-part-progress-bar/MultiPartProgressBar.tsx +++ b/apps/client/src/common/components/multi-part-progress-bar/MultiPartProgressBar.tsx @@ -13,31 +13,51 @@ interface MultiPartProgressBar { danger?: MaybeNumber; dangerColor: string; hidden?: boolean; + ignoreCssOverride?: boolean; className?: string; } export default function MultiPartProgressBar(props: MultiPartProgressBar) { - const { now, complete, normalColor, warning, warningColor, danger, dangerColor, hidden, className = '' } = props; + const { + now, + complete, + normalColor, + warning, + warningColor, + danger, + dangerColor, + hidden, + ignoreCssOverride, + className = '', + } = props; const percentRemaining = complete === 0 ? 0 : 100 - clamp(100 - (Math.max(now ?? 0, 0) * 100) / complete, 0, 100); const dangerWidth = danger ? clamp((danger / complete) * 100, 0, 100) : 0; - const warningWidth = warning ? clamp((warning / complete) * 100, 0, 100) : 0; + const warningWidth = warning ? clamp((warning / complete) * 100 - dangerWidth, 0, 100) : 0; return ( -
+
{now !== null && ( <> -
-
-
-
+
+
+
+
+
+
+
+
)}
diff --git a/apps/client/src/features/cuesheet/cuesheet-progress/CuesheetProgress.tsx b/apps/client/src/features/cuesheet/cuesheet-progress/CuesheetProgress.tsx index 34d5120f5..890ab22fa 100644 --- a/apps/client/src/features/cuesheet/cuesheet-progress/CuesheetProgress.tsx +++ b/apps/client/src/features/cuesheet/cuesheet-progress/CuesheetProgress.tsx @@ -19,6 +19,7 @@ export default function CuesheetProgress() { danger={timeDanger} dangerColor={data!.dangerColor} className={styles.progressOverride} + ignoreCssOverride /> ); } diff --git a/apps/client/src/features/operator/status-bar/StatusBar.module.scss b/apps/client/src/features/operator/status-bar/StatusBar.module.scss index e8ad8ca6e..640df1f6d 100644 --- a/apps/client/src/features/operator/status-bar/StatusBar.module.scss +++ b/apps/client/src/features/operator/status-bar/StatusBar.module.scss @@ -105,5 +105,5 @@ } .progressOverride { - border-radius: 0; + --progress-bar-br: 0; } diff --git a/apps/client/src/features/operator/status-bar/StatusBarProgress.tsx b/apps/client/src/features/operator/status-bar/StatusBarProgress.tsx index 190239994..07b25bc88 100644 --- a/apps/client/src/features/operator/status-bar/StatusBarProgress.tsx +++ b/apps/client/src/features/operator/status-bar/StatusBarProgress.tsx @@ -24,6 +24,7 @@ export default function StatusBarProgress(props: StatusBarProgressProps) { danger={timeDanger} dangerColor={viewSettings.dangerColor} className={styles.progressOverride} + ignoreCssOverride /> ); }