ATLAS-5305: ATLAS React UI: Type System filter dropdown and lineage g…#656
Open
Brijesh619 wants to merge 1 commit into
Open
ATLAS-5305: ATLAS React UI: Type System filter dropdown and lineage g…#656Brijesh619 wants to merge 1 commit into
Brijesh619 wants to merge 1 commit into
Conversation
…raph rendering issues
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.




Here is the technical list of exact code changes made in TypeSystemTreeView.tsx for each issue, which you can use for your Jira descriptions:
1. Fix filter dropdown options disappearing upon selection
Changes: Modified the renderFilterSearch function. Instead of deriving the dropdown options from lineageHelperRef?.current?.getNodes() (which shrinks when the graph is filtered), the options are now built by iterating directly over the raw entityDefs array.
2. Add visual highlight for selected values in search and filter dropdowns
Changes:
Added isOptionEqualToValue={(option: any, value: any) => option?.value === value?.value} to both the Filter and Search Material UI components.
Fixed the value prop in the Search to look up the correct object using renderTypeSearch().find((opt: any) => opt?.label === searchTypeValue) || null.
3. Implement optional chaining to prevent UI crashes on undefined values
Changes: Added optional chaining (?.) comprehensively throughout the file. This includes data mapping functions inside renderFilterSearch and renderTypeSearch, object property references, and all invocations of library methods (e.g., lineageMethods?.refresh?.(), lineageMethods?.searchNode?.()).
4. Fix search dropdown double clear button and ensure lineage graph refreshes on clear
Changes:
Removed disableClearable from the Search to enable the Material UI clear button.
Removed type: "search" from the nested 's InputProps to prevent the browser from rendering a duplicate native clear button.
Updated handleSearchChange to destructure newValue gracefully (accounting for null when cleared).
Added an else condition in handleSearchChange to call filterData(typeValue) when the input is cleared, ensuring the graph refreshes properly while preserving any active filters.
5. Fix toolbar overlapping/disappearing issue in full-screen mode
Changes: Moved the className={${isFullscreen ? "fullscreen" : ""}} property out of the individual toolbar and graph components, placing it exclusively on their shared root parent. This ensures the entire component scales together instead of overlapping.
6. Fix lineage graph container layout to prevent off-screen vertical centering and scrolling issues
Changes: Removed the hardcoded minHeight="650px" from the lineage wrapper and adjusted the flex layout so that the container dynamically calculates its height based on the remaining screen space.