diff --git a/packages/enmeshed_types/lib/src/dvos/content/request_item_dvos.dart b/packages/enmeshed_types/lib/src/dvos/content/request_item_dvos.dart index e3f6b703c..6cd243089 100644 --- a/packages/enmeshed_types/lib/src/dvos/content/request_item_dvos.dart +++ b/packages/enmeshed_types/lib/src/dvos/content/request_item_dvos.dart @@ -44,6 +44,7 @@ class RequestItemGroupDVO extends RequestItemDVO { required super.isDecidable, required this.items, this.title, + super.description, this.response, }) : super(id: 'n/a', name: 'n/a', type: 'RequestItemGroupDVO'); diff --git a/packages/enmeshed_types/lib/src/dvos/content/request_item_dvos.g.dart b/packages/enmeshed_types/lib/src/dvos/content/request_item_dvos.g.dart index f74400394..ed01085b9 100644 --- a/packages/enmeshed_types/lib/src/dvos/content/request_item_dvos.g.dart +++ b/packages/enmeshed_types/lib/src/dvos/content/request_item_dvos.g.dart @@ -10,6 +10,7 @@ RequestItemGroupDVO _$RequestItemGroupDVOFromJson(Map json) => isDecidable: json['isDecidable'] as bool, items: (json['items'] as List).map((e) => RequestItemDVODerivation.fromJson(e as Map)).toList(), title: json['title'] as String?, + description: json['description'] as String?, response: json['response'] == null ? null : ResponseItemGroupDVO.fromJson(json['response'] as Map), ); diff --git a/packages/renderers/lib/src/request/request_item_group_renderer.dart b/packages/renderers/lib/src/request/request_item_group_renderer.dart index 9f78266ac..e2b036121 100644 --- a/packages/renderers/lib/src/request/request_item_group_renderer.dart +++ b/packages/renderers/lib/src/request/request_item_group_renderer.dart @@ -45,15 +45,30 @@ class RequestItemGroupRenderer extends StatelessWidget { expandFileReference: expandFileReference, chooseFile: chooseFile, openFileDetails: openFileDetails, + backgroundColor: Theme.of(context).colorScheme.surface, ); }).toList(); + final title = requestItemGroup.title != null + ? Text(requestItemGroup.title ?? '', style: Theme.of(context).textTheme.bodyLarge!.copyWith(color: Theme.of(context).colorScheme.onSurface)) + : null; + + final subtitle = requestItemGroup.description != null + ? Text( + requestItemGroup.description!, + style: Theme.of(context).textTheme.bodyMedium!.copyWith(color: Theme.of(context).colorScheme.onSurfaceVariant), + ) + : null; + return ExpansionTile( + backgroundColor: Theme.of(context).colorScheme.surfaceContainer, + collapsedBackgroundColor: Theme.of(context).colorScheme.surfaceContainer, maintainState: true, initiallyExpanded: true, - // TODO: render anything else than empty string when title is not defined - title: Text(requestItemGroup.title ?? ''), - subtitle: requestItemGroup.description != null ? Text(requestItemGroup.description!) : null, + shape: const LinearBorder(side: BorderSide.none), + title: title ?? subtitle ?? const Text(''), + subtitle: title != null ? subtitle : null, + iconColor: Theme.of(context).colorScheme.onSurfaceVariant, children: requestItems, ); } diff --git a/packages/renderers/lib/src/request/request_item_renderer/request_item_renderer.dart b/packages/renderers/lib/src/request/request_item_renderer/request_item_renderer.dart index dd70c9704..87b06ec62 100644 --- a/packages/renderers/lib/src/request/request_item_renderer/request_item_renderer.dart +++ b/packages/renderers/lib/src/request/request_item_renderer/request_item_renderer.dart @@ -21,6 +21,8 @@ class RequestItemRenderer extends StatelessWidget { final Future Function() chooseFile; final void Function(FileDVO) openFileDetails; + final Color? backgroundColor; + const RequestItemRenderer({ super.key, required this.currentAddress, @@ -33,11 +35,13 @@ class RequestItemRenderer extends StatelessWidget { required this.expandFileReference, required this.chooseFile, required this.openFileDetails, + this.backgroundColor, }); @override Widget build(BuildContext context) { - return Padding( + return Container( + color: backgroundColor, padding: const EdgeInsets.symmetric(vertical: 12), child: switch (item) { final DecidableReadAttributeRequestItemDVO dvo => DecidableReadAttributeRequestItemRenderer(