From 3afc77702f13323b4be3ad4259e511c69db0f176 Mon Sep 17 00:00:00 2001 From: Jiho Kim <55632840+nghtctrl@users.noreply.github.com> Date: Thu, 18 Jun 2026 10:52:18 -0500 Subject: [PATCH 01/21] TT-7441 Add custom headerbackground color --- src/renderer/src/App.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/renderer/src/App.tsx b/src/renderer/src/App.tsx index d6741232..83fa263f 100644 --- a/src/renderer/src/App.tsx +++ b/src/renderer/src/App.tsx @@ -27,6 +27,7 @@ function App(): React.JSX.Element { // Custom colors - simple key-value pairs custom: { currentRegion: 'rgb(102, 255, 0, .5)', + headerBackground: '#eee', }, } as any, typography: { From f44925466d2cd33342e5c1295abab7b5cec2c34a Mon Sep 17 00:00:00 2001 From: Jiho Kim <55632840+nghtctrl@users.noreply.github.com> Date: Thu, 18 Jun 2026 10:52:30 -0500 Subject: [PATCH 02/21] TT-7441 Adjust AppHead and PassageDetailMobileLayout background color --- src/renderer/src/components/App/AppHead.tsx | 12 ++++++------ .../PassageDetail/PassageDetailMobileLayout.tsx | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/renderer/src/components/App/AppHead.tsx b/src/renderer/src/components/App/AppHead.tsx index ae9263be..5cb93ea6 100644 --- a/src/renderer/src/components/App/AppHead.tsx +++ b/src/renderer/src/components/App/AppHead.tsx @@ -3,11 +3,7 @@ import { useGetGlobal, useGlobal } from '../../context/useGlobal'; import { useLocation } from 'react-router-dom'; import { IState, IViewModeStrings } from '../../model'; import { shallowEqual, useSelector } from 'react-redux'; -import { - AppBar, - LinearProgress, - Box, -} from '@mui/material'; +import { AppBar, LinearProgress, Box } from '@mui/material'; import { isElectron } from '../../../api-variable'; import { TokenContext } from '../../context/TokenProvider'; import { UnsavedContext } from '../../context/UnsavedContext'; @@ -285,7 +281,11 @@ export const AppHead = (props: IProps) => { return ( <> diff --git a/src/renderer/src/components/PassageDetail/PassageDetailMobileLayout.tsx b/src/renderer/src/components/PassageDetail/PassageDetailMobileLayout.tsx index 6fc3d086..70f8bc35 100644 --- a/src/renderer/src/components/PassageDetail/PassageDetailMobileLayout.tsx +++ b/src/renderer/src/components/PassageDetail/PassageDetailMobileLayout.tsx @@ -33,7 +33,7 @@ export default function PassageDetailMobileLayout({ > Date: Thu, 18 Jun 2026 10:54:39 -0500 Subject: [PATCH 03/21] TT-7441 Remove the shadow at the bottom of the AppBar --- src/renderer/src/App.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/renderer/src/App.tsx b/src/renderer/src/App.tsx index 83fa263f..12aa5ec5 100644 --- a/src/renderer/src/App.tsx +++ b/src/renderer/src/App.tsx @@ -35,6 +35,15 @@ function App(): React.JSX.Element { textTransform: 'capitalize', }, }, + components: { + MuiAppBar: { + styleOverrides: { + root: { + boxShadow: 'none', + }, + }, + }, + }, }, getDataGridLocale(lang) ), From e7fc829be9ba7a6a3c7552d5098a448edfc326c8 Mon Sep 17 00:00:00 2001 From: Jiho Kim <55632840+nghtctrl@users.noreply.github.com> Date: Thu, 18 Jun 2026 10:59:38 -0500 Subject: [PATCH 04/21] TT-7441 Use different contrasting colors for the parallelograms --- .../PassageDetail/mobile/MobileWorkflowSteps.tsx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/renderer/src/components/PassageDetail/mobile/MobileWorkflowSteps.tsx b/src/renderer/src/components/PassageDetail/mobile/MobileWorkflowSteps.tsx index b76ea5e9..f96b47c1 100644 --- a/src/renderer/src/components/PassageDetail/mobile/MobileWorkflowSteps.tsx +++ b/src/renderer/src/components/PassageDetail/mobile/MobileWorkflowSteps.tsx @@ -10,7 +10,6 @@ import { Menu, MenuItem, Typography, - useTheme, } from '@mui/material'; import InfoIcon from '@mui/icons-material/Info'; import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown'; @@ -58,7 +57,6 @@ export default function MobileWorkflowSteps() { const getGlobal = useGetGlobal(); const { showMessage } = useSnackBar(); const ts = useSelector(sharedSelector, shallowEqual); - const theme = useTheme(); const getWfLabel = useWfLabel(); const { getOrgDefault } = useOrgDefaults(); const isStepProgression = @@ -318,10 +316,10 @@ export default function MobileWorkflowSteps() { > {steps.map((step) => { const color = step.isCurrent - ? theme.palette.grey[700] + ? '#111' : step.isComplete - ? theme.palette.grey[400] - : theme.palette.grey[200]; + ? '#888' + : '#ccc'; return ( Date: Thu, 18 Jun 2026 11:23:41 -0500 Subject: [PATCH 05/21] TT-7441 Lock document scroll on mobile so that MobileWorkflowSteps won't be scrollable + Make sure that the area between MobileWorkflowSteps and AppBar is also in headerBackground color --- src/renderer/src/routes/PassageDetail.tsx | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/renderer/src/routes/PassageDetail.tsx b/src/renderer/src/routes/PassageDetail.tsx index 80cb0591..5157487d 100644 --- a/src/renderer/src/routes/PassageDetail.tsx +++ b/src/renderer/src/routes/PassageDetail.tsx @@ -115,6 +115,22 @@ export const PassageDetail = () => { /* eslint-disable-next-line react-hooks/exhaustive-deps */ }, []); + // Lock document scroll on mobile so only the inner content region scrolls; + // this prevents MobileWorkflowSteps being scrolled under the AppBar. + useEffect(() => { + if (!isMobile) return; + const { body } = document; + const html = document.documentElement; + const prevBody = body.style.overflow; + const prevHtml = html.style.overflow; + body.style.overflow = 'hidden'; + html.style.overflow = 'hidden'; + return () => { + body.style.overflow = prevBody; + html.style.overflow = prevHtml; + }; + }, [isMobile]); + if (view !== '' && view !== pathname) return ; return ( @@ -136,6 +152,7 @@ export const PassageDetail = () => { // AppHead is position:fixed — offset in-flow content like PassageDetailGrids does, // otherwise mobile layout height calc(100dvh - HeadHeight) leaves a gap at the bottom. pt: `${HeadHeight}px`, + backgroundColor: 'custom.headerBackground', width: '100%', flex: 1, minHeight: 0, From 96064aa675b33dff3c5907b530d99f8a9d6d9839 Mon Sep 17 00:00:00 2001 From: Jiho Kim <55632840+nghtctrl@users.noreply.github.com> Date: Thu, 18 Jun 2026 11:24:48 -0500 Subject: [PATCH 06/21] TT-7441 Make sure that the content under the header is a default background color --- .../src/components/PassageDetail/PassageDetailMobileLayout.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/renderer/src/components/PassageDetail/PassageDetailMobileLayout.tsx b/src/renderer/src/components/PassageDetail/PassageDetailMobileLayout.tsx index 70f8bc35..757a33a2 100644 --- a/src/renderer/src/components/PassageDetail/PassageDetailMobileLayout.tsx +++ b/src/renderer/src/components/PassageDetail/PassageDetailMobileLayout.tsx @@ -42,6 +42,7 @@ export default function PassageDetailMobileLayout({ Date: Thu, 18 Jun 2026 11:47:25 -0500 Subject: [PATCH 07/21] TT-7441 The tip should be accessible inside the dropdown menu button --- .../mobile/MobileWorkflowSteps.tsx | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/renderer/src/components/PassageDetail/mobile/MobileWorkflowSteps.tsx b/src/renderer/src/components/PassageDetail/mobile/MobileWorkflowSteps.tsx index f96b47c1..85af845d 100644 --- a/src/renderer/src/components/PassageDetail/mobile/MobileWorkflowSteps.tsx +++ b/src/renderer/src/components/PassageDetail/mobile/MobileWorkflowSteps.tsx @@ -6,7 +6,6 @@ import { DialogActions, DialogContent, DialogTitle, - IconButton, Menu, MenuItem, Typography, @@ -208,19 +207,22 @@ export default function MobileWorkflowSteps() { alignItems: 'center', }} > - {!isStepProgression && currentTip && ( - setTipOpen(true)} - data-cy="workflow-step-tip" - aria-label={currentTip} - color="info" - > - - - )} + Date: Thu, 18 Jun 2026 14:29:18 -0500 Subject: [PATCH 19/21] TT-7441 Footer should also use the custom background color --- .../components/PassageDetail/PassageDetailMobileLayout.tsx | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/renderer/src/components/PassageDetail/PassageDetailMobileLayout.tsx b/src/renderer/src/components/PassageDetail/PassageDetailMobileLayout.tsx index 757a33a2..f2bb5c0a 100644 --- a/src/renderer/src/components/PassageDetail/PassageDetailMobileLayout.tsx +++ b/src/renderer/src/components/PassageDetail/PassageDetailMobileLayout.tsx @@ -68,12 +68,11 @@ export default function PassageDetailMobileLayout({ )} {footer} From 60e31e09f0ce3100e37cd331b2fbc897444a987c Mon Sep 17 00:00:00 2001 From: Jiho Kim <55632840+nghtctrl@users.noreply.github.com> Date: Thu, 18 Jun 2026 17:35:16 -0500 Subject: [PATCH 20/21] TT-7441 Make the next/previous footer buttons sized consistently (rather than based on the length of its labels) --- .../mobile/PassageDetailMobileFooter.tsx | 97 ++++++++----------- 1 file changed, 38 insertions(+), 59 deletions(-) diff --git a/src/renderer/src/components/PassageDetail/mobile/PassageDetailMobileFooter.tsx b/src/renderer/src/components/PassageDetail/mobile/PassageDetailMobileFooter.tsx index 437d7d51..98e3b225 100644 --- a/src/renderer/src/components/PassageDetail/mobile/PassageDetailMobileFooter.tsx +++ b/src/renderer/src/components/PassageDetail/mobile/PassageDetailMobileFooter.tsx @@ -30,16 +30,15 @@ function NavButtonLabel({ }: { text: string; title?: string; - align: 'left' | 'right'; + align: 'left' | 'center' | 'right'; }) { return ( - - - - {!isBoldWorkflow && ( - - - - )} - - - + + {!isBoldWorkflow && } + ); } From 87fc1a201022033111919e40b36eee71919a20c0 Mon Sep 17 00:00:00 2001 From: Jiho Kim <55632840+nghtctrl@users.noreply.github.com> Date: Thu, 18 Jun 2026 17:35:48 -0500 Subject: [PATCH 21/21] TT-7441 Make step complete into a button --- .../mobile/MobileStepComplete.tsx | 62 ++++++++++--------- 1 file changed, 34 insertions(+), 28 deletions(-) diff --git a/src/renderer/src/components/PassageDetail/mobile/MobileStepComplete.tsx b/src/renderer/src/components/PassageDetail/mobile/MobileStepComplete.tsx index 787fe93d..cfcbee31 100644 --- a/src/renderer/src/components/PassageDetail/mobile/MobileStepComplete.tsx +++ b/src/renderer/src/components/PassageDetail/mobile/MobileStepComplete.tsx @@ -1,7 +1,7 @@ import { useCallback, useContext, useMemo, useState } from 'react'; import { useGlobal } from '../../../context/useGlobal'; -import { Box, IconButton, Typography } from '@mui/material'; -import CompleteIcon from '@mui/icons-material/CheckBoxOutlined'; +import { Box, Button } from '@mui/material'; +import CompleteIcon from '@mui/icons-material/CheckBox'; import NotCompleteIcon from '@mui/icons-material/CheckBoxOutlineBlank'; import usePassageDetailContext from '../../../context/usePassageDetailContext'; import { IPassageDetailStepCompleteStrings } from '../../../model'; @@ -78,37 +78,43 @@ export default function MobileStepComplete() { if (isBoldWorkflow) return null; return ( - + ) : ( + + ) + } sx={{ - display: 'flex', - alignItems: 'center', - gap: 0.25, - minHeight: 0, - flexShrink: 0, + minWidth: 0, maxWidth: '100%', }} > - - {complete ? ( - - ) : ( - - )} - - {t.title} - - + + ); }