Refactor the React OpenAPI admin framework to support fully customizable field rendering and UI composition. #11

Merged
aetos merged 15 commits from common-fields into main 2026-06-07 12:35:53 +00:00
Owner

Summary

Refactor the React OpenAPI admin framework to support fully customizable field rendering and UI composition.

Changes

Admin UI Customization

  • Added support for custom:

    • Dashboard component
    • Layout component
    • Login page component
  • Introduced AdminAppProps and extended Admin configuration API.

  • Renamed internal dashboard implementation to DefaultDashboard.

Field Component Architecture

  • Extracted field rendering into dedicated field components:

    • TextField
    • NumberField
    • BooleanField
    • DateField
    • EnumField
    • RelationField
    • ObjectField
    • FallbackField
    • DateRangeField
    • NumberRangeField
  • Added defaultFieldComponents registry.

  • Refactored FormField to resolve components dynamically from a component map instead of hardcoded field type handling.

Resource Customization

  • Added FieldComponents support across:

    • Admin
    • ResourceView
    • GenericForm
    • useResource
  • Introduced wrapped FormField and GenericForm components generated from configured field overrides.

Table Customization

  • Added EnhancedTableComponents.
  • Added support for custom cell renderers per field type.
  • Enabled custom rendering for both desktop and mobile table layouts.

Filter Improvements

  • Exported FilterAutocomplete.
  • Added support for custom date-range and number-range filter components.
  • Added filter component extension points.
  • Updated filter option label resolution to support displayFormat.

Display Formatting

  • Replaced displayField usage with displayFormat.
  • Added template-based display rendering support through resolveTemplate.
  • Improved relation display configuration handling.

TypeScript Improvements

  • Added TypeScript as a project dependency.
  • Removed multiple @ts-ignore usages.
  • Added strongly typed Axios wrapper methods with generic response support.
  • Improved typing across hooks and component interfaces.

OpenAPI Configuration Validation

  • Added validation for enum fields without enum values.
  • Added validation for relation resources missing referenceOptions.enumOption.
  • Improved relation metadata propagation during schema parsing.

Library Exports

  • Exported:

    • Field component types
    • Override types
    • EnhancedTable
    • GenericForm
    • ResourceView
    • Field components and defaults
  • Expanded public API surface for consumers extending the framework.

Benefits

  • Enables complete UI customization without modifying framework internals.
  • Simplifies creation of custom field types and renderers.
  • Improves type safety and developer experience.
  • Provides consistent extension points for forms, tables, filters, and admin layouts.
  • Makes the framework more suitable for reusable library distribution.
# Summary Refactor the React OpenAPI admin framework to support fully customizable field rendering and UI composition. ## Changes ### Admin UI Customization * Added support for custom: * Dashboard component * Layout component * Login page component * Introduced `AdminAppProps` and extended `Admin` configuration API. * Renamed internal dashboard implementation to `DefaultDashboard`. ### Field Component Architecture * Extracted field rendering into dedicated field components: * TextField * NumberField * BooleanField * DateField * EnumField * RelationField * ObjectField * FallbackField * DateRangeField * NumberRangeField * Added `defaultFieldComponents` registry. * Refactored `FormField` to resolve components dynamically from a component map instead of hardcoded field type handling. ### Resource Customization * Added `FieldComponents` support across: * Admin * ResourceView * GenericForm * useResource * Introduced wrapped `FormField` and `GenericForm` components generated from configured field overrides. ### Table Customization * Added `EnhancedTableComponents`. * Added support for custom cell renderers per field type. * Enabled custom rendering for both desktop and mobile table layouts. ### Filter Improvements * Exported `FilterAutocomplete`. * Added support for custom date-range and number-range filter components. * Added filter component extension points. * Updated filter option label resolution to support `displayFormat`. ### Display Formatting * Replaced `displayField` usage with `displayFormat`. * Added template-based display rendering support through `resolveTemplate`. * Improved relation display configuration handling. ### TypeScript Improvements * Added TypeScript as a project dependency. * Removed multiple `@ts-ignore` usages. * Added strongly typed Axios wrapper methods with generic response support. * Improved typing across hooks and component interfaces. ### OpenAPI Configuration Validation * Added validation for enum fields without enum values. * Added validation for relation resources missing `referenceOptions.enumOption`. * Improved relation metadata propagation during schema parsing. ### Library Exports * Exported: * Field component types * Override types * EnhancedTable * GenericForm * ResourceView * Field components and defaults * Expanded public API surface for consumers extending the framework. ## Benefits * Enables complete UI customization without modifying framework internals. * Simplifies creation of custom field types and renderers. * Improves type safety and developer experience. * Provides consistent extension points for forms, tables, filters, and admin layouts. * Makes the framework more suitable for reusable library distribution.
aetos added 15 commits 2026-06-07 12:35:43 +00:00
aetos merged commit 7bd946ec7a into main 2026-06-07 12:35:53 +00:00
aetos deleted branch common-fields 2026-06-07 12:35:53 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: apps/khata-ui#11
No description provided.