( config: ModalFieldsConfigLike, isCreationMode: boolean )
| 36 | } |
| 37 | |
| 38 | export function getOrderedModalGroups( |
| 39 | config: ModalFieldsConfigLike, |
| 40 | isCreationMode: boolean |
| 41 | ): Array<{ id: string; fields: ModalFieldConfigLike[] }> { |
| 42 | // eslint-disable-next-line @typescript-eslint/no-require-imports -- Field config helpers are lazy-loaded to avoid modal import cycles. |
| 43 | const { getFieldsByGroup } = require("../utils/fieldConfigDefaults"); |
| 44 | const fieldGroups = getFieldsByGroup(config, isCreationMode) as Map<string, ModalFieldConfigLike[]>; |
| 45 | const groups = [...(config.groups || [])].sort((a, b) => a.order - b.order); |
| 46 | |
| 47 | return groups |
| 48 | .map((groupConfig) => ({ |
| 49 | id: groupConfig.id, |
| 50 | fields: fieldGroups.get(groupConfig.id) || [], |
| 51 | })) |
| 52 | .filter((group) => group.fields.length > 0); |
| 53 | } |
no test coverage detected