Files
KIS-TOiR/generation/frontend-generation.md
time_ 5b8d8a85c4 Generate filtering/sorting and searchable dropdowns
Includes backend q search + generated list UX from DSL.
2026-03-18 19:49:07 +03:00

1.4 KiB

Frontend Generation Process

Frontend generation uses the DSL and API specification.


Step 1 — Parse DSL

Extract entities and attributes.


Step 2 — Generate React Admin Resources

For each entity create:

EntityList.tsx EntityCreate.tsx EntityEdit.tsx EntityShow.tsx

List UX requirements (must be generated)

  • Lists must include filtering UI via filters prop on List and an explicit actions toolbar with:
    • FilterButton (so non-alwaysOn filters are discoverable)
    • CreateButton
    • ExportButton
  • Lists must include a default sort (sort={{ field: "...", order: "ASC|DESC" }}) appropriate for the entity.

Reference selection UX (must be generated)

  • For foreign keys (ReferenceInput) in Create/Edit forms, prefer AutocompleteInput over SelectInput to support search.
  • Autocomplete must send search text to backend using filterToQuery={(searchText) => ({ q: searchText })}.
  • Option text must include a code (or business identifier) and a name when available, e.g. CODE — NAME.

Enum filters (must be generated)

  • For enum fields in list filters, use:
    • SelectInput for single-select filters
    • SelectArrayInput for multi-select filters when users need to filter by multiple enum values (e.g. Status).

Step 3 — Map Fields

Map DSL attributes to React Admin components.


Step 4 — Register Resources

Register resources in App.tsx.

Example:

<Resource name="equipment" ... />