ATLAS-5324: Enhance Collapsed Sidebar with Module Icons, Interactive Tree Tooltips, and Active State Markers - #688
Open
Brijesh619 wants to merge 19 commits into
Open
ATLAS-5324: Enhance Collapsed Sidebar with Module Icons, Interactive Tree Tooltips, and Active State Markers#688Brijesh619 wants to merge 19 commits into
Brijesh619 wants to merge 19 commits into
Conversation
Contributor
Author
Contributor
Author
pawarprasad123
self-requested a review
July 8, 2026 06:59
Brijesh619
force-pushed
the
ATLAS-5324
branch
3 times, most recently
from
July 8, 2026 13:49
fdc0a62 to
95130fa
Compare
Contributor
Author
Contributor
Author
Contributor
Author
|
CC. @mneethiraj |
Contributor
Author
Contributor
Author
Contributor
Author
Contributor
Author
Contributor
Author
Contributor
Author
Contributor
Author
…Tree Tooltips, and Active State Markers
…Tree Tooltips, and Active State Markers
…Tree Tooltips, and Active State Markers
…Tree Tooltips, and Active State Markers
…Tree Tooltips, and Active State Markers
…Tree Tooltips, and Active State Markers
…Tree Tooltips, and Active State Markers
…Tree Tooltips, and Active State Markers
…Tree Tooltips, and Active State Markers
…Tree Tooltips, and Active State Markers
…Tree Tooltips, and Active State Markers
…Tree Tooltips, and Active State Markers
…Tree Tooltips, and Active State Markers
…Tree Tooltips, and Active State Markers
…Tree Tooltips, and Active State Markers
…Tree Tooltips, and Active State Markers
…Tree Tooltips, and Active State Markers
…Tree Tooltips, and Active State Markers
Brijesh619
force-pushed
the
ATLAS-5324
branch
from
September 3, 2026 10:08
b9c544f to
54e9291
Compare
…Tree Tooltips, and Active State Markers
Contributor
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



















What changes were proposed in this pull request?
This PR significantly enhances the user experience of the collapsed navigation sidebar by introducing interactive module icons and sleek popover trees. This allows users to access complex navigation (like Business Metadata, Glossary, etc.) without fully expanding the main sidebar, preserving valuable screen real-estate for the main dashboard.
Additionally, it introduces several critical layout stability, styling, strict-typing, and rendering optimizations to ensure these interactions feel instant, seamless, and production-ready:
Sidebar & Layout Enhancements:
createPortalconsistently, dynamically reparenting the DOM node between thesidebarWrapperand thepopoverContainer. This guarantees exactly one React instance of each tree at all times, preserving Redux/effects states seamlessly without duplicate fetching or node remounting.refCallbacksfactory functions mapped by component ID inSideBarBody.tsxto securely track portal references without triggering React dependency cascades.SideBarBody.tsx): Fixed a major layout bug where collapsing the sidebar caused the main dashboard content to shift left underneath the mini-sidebar, cutting off the left half of the page cards (e.g., theOverviewcard). Refactored the<Main>styled container to eliminate legacy negative margins (marginLeft: -20%) andpadding: theme.spacing(3), converting<Main>into a flex item (flexGrow: 1,minWidth: 0). It now dynamically adapts next to both the 20% expanded drawer and 60px mini-drawer without cutting off content or causing whitespace gaps around the header.SideBarBody): Refactored<Paper>wrappers to use SCSS accessibility-friendly structural concealment (visibility: hidden,width: 0,position: absolute,pointer-events: none) rather thandisplay: noneor conditional rendering. This strictly keeps layout/measurements alive for React while pulling nodes cleanly off the visual rendering thread.sessionSlice.tswhere the sidebar version footer flashed empty during transient network errors. The slice now explicitly retainsstate.versionData.dataandstate.sessionObj.dataduring.rejectedlifecycle events for a seamless UI experience.TreeSkeletonLoader): Added anisPopovercontext flag so the popover tree dynamically renders a minimal 2-row loading skeleton instead of the default 7-row skeleton, perfectly matching the popover bounds without visual snapping. Fortified the skeleton loader to safely handle negative bounds and explicitundefinedfallbacks.Dashboard Layout Spacing Fixes (
DashBoard.tsx,DashboardOverview.tsx,dashboard.scss):overflow: hiddenon.dash-board-stack-6and applyingsx={{ width: "100%" }}on the Grid container, which constrains the Grid within the padded parent and produces symmetric 24px visual gaps on both left and right sides.spacing={0}on the outer DashBoard Stack and structuring equal 16px white space boundaries throughdashboard.scss.padding={0}on the outer DashBoard Stack to eliminate any MUI default horizontal padding that was contributing to the left/right asymmetry.Rendering, Strict Typing & Code Quality Optimizations:
anyRefactoring (AGENTS.mdCompliance): Scoured the workspace to completely eliminateanyand unsafe type assertions:anyusages across the Redux selector pulls inSideBarTree.tsx(e.g.,savedSearchDatanow strictly maps to aSavedSearchItem[] | nullinterface).toastIdasReact.MutableRefObject<number | string | null>) and downstream method guards.as stringcoercions inconvertApiToQueryBuilderand substituted structured string castingString(...)bindings mapping explicit fallbacks.(v: any) => numberFormatWithComma(v as number)with safe runtime type guards(v: unknown) => (typeof v === "number" ? numberFormatWithComma(v) : "").sxprops) and inline styling (style={{...}}) across all modified components.#ffffff) and raw RGB shadows were wiped globally and re-linked to scalable tokens invariables.scss($card-bg,$dashboard-bg,$primary-blue, etc.).QuickSearch.tsx,TreeNodeIcons.tsx,SideBarTree.tsx, andSideBarBody.tsxconfigurations entirely into SCSS abstraction schemas.How was this patch tested?
Note - Sidebar Resize Logic Removal:
The
draggerRefand drawer resizing mouse event listeners (handleMouseDown,handleMouseMove, etc.) were intentionally removed in this PR. This resize logic was pre-existing dead code onmasterthat lacked a functional DOM dragger element, did not actually work, and needlessly bound unmounting event listeners.Manual UI Testing:
createPortal.sxprop or inlinestyleattribute remains on any component touched by this PR, validating complete SCSS segregation.Automated Test Suite Expansion (4,865 Passing Tests):
SideBarBody.test.tsxverifying that togglingcreatePortalcomponents to/from popovers retains exact component counts, ensuring Redux loops are kept completely isolated.SideBarBody.test.tsxaccurately firemockNavigatebehaviors, while edge cases enforcing blank param routes load exclusively without triggering phantom active states.TreeSkeletonLoader.test.tsxfor negative bound limits and invalid element strings in table rendering fallbacks..rejectedresponses insessionSlice.test.tshold onto stale local payloads accurately.fetchmocks for image rendering inEntityDisplayImage.test.tsxand properly implemented nativefireEvent.errorDOM fallback simulation.Performance & Type Verification:
npm run typecheckandnpm run testlocally and verified that the refactored native DOM logic, React Portal lifecycle constraints, layout fixes, and TypeScript strict mode types pass flawlessly with 0 errors.