OpenMetadata/openmetadata-ui-core-components
satish 1a3339453b Domain, Sub-domain, Data Product listing (#23374)
* Domain, Sub-domain, Data Product listing

* feat: implement atomic design architecture with micro hooks for entity listings

This commit introduces a comprehensive atomic design system that eliminates code duplication while providing maximum flexibility through composable micro hooks.

## Key Features

### Atomic Design Structure
- Created `src/components/common/atoms/` with feature-based organization
- Implemented micro hooks (5-15 lines each) with single responsibilities
- Added comprehensive JSDoc documentation for each micro hook

### Entity Listing Improvements
- Refactored domain, subdomain, and data product listings
- Simplified entity-specific hooks using shared domain atoms
- Implemented flexible `useDataTable({ listing })` interface

### Performance & Stability
- Fixed infinite API calls and re-render loops
- Implemented proper useCallback/useMemo patterns with stable dependencies
- Added error boundaries and proper error handling

### UX Improvements
- Fixed search to trigger on Enter key (eliminated race conditions)
- Updated sidebar navigation to use singular forms for sub-menu items
- Fixed navigation paths for data product details
- Added proper translation keys and removed hardcoded strings

### Bug Fixes
- Fixed filter field mappings to use `.keyword` for exact matching
- Fixed data product navigation paths (`/dataProduct` vs `/data-product`)
- Fixed filter styling to use original SearchDropdown components
- Temporarily disabled problematic domainType filter due to API errors

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(ui): add i18n support and enhance atomic hooks for entity listings

- Add useDelete hook with proper i18n for entity deletion with confirmation modal
- Add useCardView hook for flexible card layout rendering
- Add useViewToggle hook for table/card view switching
- Add useDomainCardTemplates for domain and data product card layouts
- Add TagsCell component for rendering glossary and classification tags
- Refactor useTableRow to use composition with useCellRenderer
- Fix i18n translations for delete confirmation messages
- Update Domain, DataProduct, and SubDomains pages to use new atomic hooks
- Add missing translation keys to en-us.json

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat(ui): implement MUI-based tree select components and atomic design patterns

- Add MUIAsyncTreeSelect component with lazy loading and keyboard navigation
- Implement MUIGlossaryTagSuggestion for hierarchical glossary term selection
- Add MUITagSuggestion for improved tag selection experience
- Create reusable TagChip component for consistent tag display
- Implement atomic drawer hooks for form handling
- Update domain and data product listing pages with new components
- Add comprehensive tree selection hooks (data, expansion, selection, search)
- Enhance form utilities with MUI field types

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat(ui): enhance drawer styling and add MUI form components

- Add gradient background image to drawer header with 30% opacity
- Apply rounded top corners (16px) to drawer for modern appearance
- Add box shadow to drawer footer for visual hierarchy
- Introduce MUIFormItemLabel component for consistent form labels
- Fix TypeScript any type warning in AddDomainForm
- Enhance domain listing pages with improved drawer integration

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>

* feat(ui): implement MUI-based user/team selection component with atomic design

- Add MUIUserTeamSelect component with atomic design patterns
- Create ProfilePicture atomic component for consistent avatar rendering
- Update AddDomainForm to use new MUI components instead of legacy selectors
- Enhance useCellRenderer to use ProfilePicture for owner display
- Add support for user-only, team-only, and mixed selection modes
- Implement smart selection logic preventing user/team conflicts
- Add internationalization support for new selection component

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat(ui): add MUI domain select component and fix drawer close functionality

- Implement MUIDomainSelect component using MUIAsyncTreeSelect for hierarchical domain selection
- Fix drawer close/cancel button functionality with proper onBeforeClose pattern
- Standardize form submission patterns across domain and data product forms
- Enhance MUIAsyncTreeSelect with keyboard navigation and scroll-to-view
- Clean EntityReference objects to match API schema requirements
- Remove duplicate onSubmit handlers in drawer forms

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat(ui): implement MUI-based color and icon picker components for domain forms

- Add MUIColorPicker component with predefined color palette and accessibility features
- Add MUIIconPicker component with icon selection and URL input capabilities
- Update AddDomainForm to use new MUI components with improved layout and responsive design
- Create IconUtils for centralized icon rendering functionality
- Update cell renderer to handle icons properly with fallback support
- Enhance form styling with backdrop blur adjustments and form label theming
- Add missing translation keys for icon-plural and url labels
- Standardize drawer widths across domain and data product forms

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Satish <satish@Satishs-MacBook-Pro.local>
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-23 13:40:10 +05:30
..
2025-09-10 16:42:02 +05:30