console: Maintained Object Details#36396
Open
leedqin wants to merge 9 commits into
Open
Conversation
5a94c72 to
8196b68
Compare
- Sql queries and tests. Leveraging allObjects subscribe query in the console and only added a query for showing pMax values and hydration statuses. Joining this data client side to be rendered in a table
- Added a filter on Universal Table column header - Added a Maintained Objects route behind a Launch Darkly flag - Added filter chips to show filters selected - Added the filter components fror the different filter columns: freshness, multi select and search for cluster, object types, hydration status - Maintained Objects List with cells defined for each column, columns using Tanstack sorting / filtering, universal tanstack table components with Url params and pagination - Maintained Objects List react table with happy path of listing objects and listing objects with filters
- Changed the filter chips to show all the filters seelected i.e "Type: source x", "Type: index x" "Cluter: quickstart" etc - ujpdated the margins to match the Tag component margins - Moved search to the left
- Added a sql test to validate lookback minutes behavior for freshness - Collapsed cluster and lag objects - MaintainedObjectLIst is now a map keyed by the object id rather than a structured list
- Added pMAX ≥ 5s and ≥ 10s filter options to match the column's warning/outdated color thresholds (was previously starting at 1 minute) - Switched the freshness filter radios to the form variant so they pick up the brand purple instead of Chakra's default blue - Removed the duplicate "X of Y objects" footer that overlapped with the TablePagination summary when more than one page was visible
8196b68 to
6c09d37
Compare
Alphadelta14
approved these changes
May 6, 2026
| )} | ||
| {replicas.length > 0 && ( | ||
| <DetailItem | ||
| label={replicas.length === 1 ? "Replica" : "Replicas"} |
Contributor
There was a problem hiding this comment.
do we not just localization functions like ngettext? usually those would handle "pluralization"
Contributor
There was a problem hiding this comment.
I see pluralize used later on :)
| </DetailItem> | ||
| {cluster?.managed !== null && cluster?.managed !== undefined && ( | ||
| <DetailItem label="Cluster type"> | ||
| {cluster.managed ? "managed" : "unmanaged"} |
Contributor
There was a problem hiding this comment.
how do we decide which fields are and aren't titlecase? do managed and unmanaged have semantic meaning?
| label={replicas.length === 1 ? "Replica" : "Replicas"} | ||
| > | ||
| {replicas | ||
| .map((r) => (r.size ? `${r.name} (${r.size})` : r.name)) |
Contributor
There was a problem hiding this comment.
I would be shocked to find out that we don't have any replica name utils
| </Text> | ||
| {/* TODO(@leedqin): drop this Suspense wrapper once ShowCreateBlock | ||
| no longer relies on a suspense query internally. */} | ||
| <React.Suspense fallback={<LoadingContainer />}> |
| const table = useUniversalTable({ | ||
| data: rows, | ||
| columns: tableColumns, | ||
| pageSize: 1000, |
Contributor
There was a problem hiding this comment.
I'm unfamiliar with our pagination best practices. is a 1000 item page reasonable?
- Made the freshness filter a draft-then-apply flow matching query-history's FilterMenu, so typing a number or switching units no longer fires the filter through intermediate values - Added an Apply / Clear footer with a top divider; Enter in the number field also commits
- Adding object drawer with routes, clickable row, tabs to show metadata - added Object details card with cluster details / object metadata
- SQL definition using ShowCreateBlock component - Object columns using ObjectColumns components in Object Explorer. Moved Object Columns to TanStack table and reused it in Object Details drawer - Source Diagnostics card showing hydration status, messages receieves and messages recieved. This uses sourceStatistics query - Freshness tab placeholder
- Stop click propagation so the row's onRowClick (object drawer navigation) doesn't fire when the user clicks a cluster name. - Open the cluster details page in a new tab so the table view stays intact.
cedeca3 to
c6fd445
Compare
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.
Motivation
Parent PR for Objects List: #36389
This is a stacked PR to add Object details drawer for maintained objects list. Fixes CNS- 51
Description
Tips For Reviewers:
All the changes are in Object Details Panel, Adding Objects Metadata and Fix cluster link commit.
First commit is setting up the drawer, object card and layout needed to add components to the side drawer
Adding objects metadata is the tab to add SQL definition and Columns table
Last commit fixed the bug for cluster link column in the list.