fix(ui): show -- for empty owner/experts/glossary/tags in Domain and … - #33038
Conversation
…Data Product tables Fixes open-metadata#33036
❌ PR checklist incompleteThis PR cannot be merged until the following are addressed on its linked issue:
The fields live on the linked issue in the Shipping project (open the issue → right sidebar → Projects). After you set them, re-run this check (or push a commit) — issue/project changes do not re-trigger it automatically. Maintainers can bypass this check by adding the |
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
…in cell renderers Refs open-metadata#33036
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
Drops the explicit undefined size argument at call sites that only set emptyPlaceholder. renderDomainOwnersCell stays positional. Refs open-metadata#33036
…ty-placeholder-33036' into fix/domain-dataproduct-table-empty-placeholder-33036
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
… size No call site passes size without emptyPlaceholder, so making size the trailing optional lets every caller omit what it does not set - no options object, no placeholder undefined. Refs open-metadata#33036
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
🚦 Removed from the merge queue —
|
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
Code Review ✅ ApprovedStandardizes empty-state placeholders in Domain and Data Product table views to show OptionsDisplay: compact → Counting what did not apply, without listing it. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Powered by Gitar — free for open source |
|
| Count | Rule |
|---|---|
| 1 | no-restricted-imports |
| 1 | react-hooks/exhaustive-deps |
All findings
| Location | Rule | Message | |
|---|---|---|---|
| 🟡 | src/components/DataProduct/DataProductListPage.tsx:24:1 |
no-restricted-imports |
'@untitledui/icons' import is restricted from being used by a pattern. Import icons from @openmetadata/ui-core-components/icons, not directly from @untitledui/i |
| 🟡 | src/components/DataProduct/DataProductListPage.tsx:408:6 |
react-hooks/exhaustive-deps |
React Hook useMemo has missing dependencies: 'dataProductColumns', 'dataProductListing.handleSelect', and 'dataProductListing.handleSelectAll'. Either include t |
Fix locally (fast - only checks files changed in this branch):
make ui-checkstyle-changed
|



Describe your changes:
Fixes #33036
I worked on replacing the empty-state text in the Domain and Data Product list (table) views with
--,because it was inconsistent with the grid card, which already shows
--for empty Owners, Experts,Glossary Terms, and Tags. Previously the table views showed "No Owners" for an empty owner, and a single
-for empty glossary terms / tags. I reused two already-optional props added earlier for the grid card(
OwnerLabel'sshowDashPlaceholderandTagBadgeList'semptyPlaceholder) and threaded them throughthe two table-column renderers (
useDomainTableColumns.tsxfor Domain,DataProductListPage.tsxforData Product) — nothing else about either component or either card view changes, and no other list/table
pages are affected. As a follow-up cleanup on the same branch, I also changed the three
domainFieldRenderers.tsxcell functions from taking a bundled options object to direct parameters(
renderDomainOwnersCell(entity, showDashPlaceholder?), and both tag renderers as(entity, size?, emptyPlaceholder?)) — a pure signature simplification, no behavior change.Type of change:
High-level design:
N/A — small change. Four files touched in the main fix, all additive:
OwnerLabel'sshowDashPlaceholderprop andTagBadgeList'semptyPlaceholderprop already existed (added for theData Product grid card), so this just passes them through from two table-column renderers that
previously called those components without those options. A follow-up commit simplified
domainFieldRenderers.tsx's three cell-renderer signatures from an options object to direct parameters,purely for call-site readability — verified the one caller with real arguments
(
useDomainTableColumns.tsx) updated correctly, and that the 6 other call sites(
useDomainCardTemplates.tsx, all passing no second argument) are unaffected either way.Tests:
Use cases covered
--in the Owner column; no glossary terms / no tagsshows
--in those columns.--in the Owner column; no experts shows--in Experts; no glossary terms / no tags shows--in those columns.--fromearlier work; Domain's card keeps its existing behavior, out of scope for this fix).
TagBadgeList'semptyPlaceholderprop itself renders the custom value when provided.Unit tests
useDomainTableColumns.test.tsx(3 new tests — owners/glossaryTerms/tags cellspass the right placeholder arguments through to
domainFieldRenderers),TagBadgeList.test.tsx(1 newtest — custom
emptyPlaceholderrenders). No new test files.DataProductListPage.tsx's owners/experts/glossaryTerms/tags cell wiring is untested — it has noexisting test file, and creating one wasn't approved for this pass.
Backend integration tests
Ingestion integration tests
Playwright (UI) tests
Manual testing performed
tsctypecheck — no new errors (same 2 pre-existing, unrelated errors before and after each commit).make ui-checkstyle-changed— exit 0, no reformatting.trueflag and swappedtagSize/NO_DATA_PLACEHOLDER's argument order — each change failed its own test while the untouchedtagscase stayed green, confirming the tests actually catch a wrong-order call (the main new riskthe options→direct-params refactor introduces). Source restored afterward.
owners/glossaryTerms/tags all render
--;OwnerLabelwith the Data Product table's exact propsrenders
--, and without the flag still renders "No Owners"; both grid-card paths still render-/ "No Owners" (unaffected); existingTagBadgeListtests still pass./domainand/dataProducttable views — pending, blocked on sign-in.UI screen recording / screenshots:
Pending — blocked on the same sign-in issue as manual testing above; will attach before/after of both
table views once verified.
Checklist:
Fixes <issue-number>: <short explanation>Fixes #<issue-number>above.