AdaptiveIncidentDesk<T> constructor
const
AdaptiveIncidentDesk<T> ({
- Key? key,
- required List<
T> incidents, - required Widget itemBuilder(
- BuildContext context,
- T incident,
- bool selected,
- VoidCallback onTap,
- required Widget detailBuilder(
- BuildContext context,
- T incident
- required Widget contextBuilder(
- BuildContext context,
- T incident
- required Widget timelineBuilder(
- BuildContext context,
- T incident
- required String listTitle,
- required String contextTitle,
- required String timelineTitle,
- Widget? header,
- Widget? emptyState,
- String? listDescription,
- Widget? listLeading,
- String? contextDescription,
- Widget? contextLeading,
- String? timelineDescription,
- Widget? timelineLeading,
- String modalListLabel = 'Open incidents',
- Widget modalListIcon = const Icon(Icons.warning_amber_outlined),
- String modalContextLabel = 'Open context',
- Widget modalContextIcon = const Icon(Icons.people_outline),
- String modalTimelineLabel = 'Open timeline',
- Widget modalTimelineIcon = const Icon(Icons.timeline_outlined),
- AdaptiveSize listDockedAt = AdaptiveSize.medium,
- AdaptiveSize contextDockedAt = AdaptiveSize.expanded,
- AdaptiveSize timelineDockedAt = AdaptiveSize.expanded,
- AdaptiveHeight minimumListDockedHeight = AdaptiveHeight.compact,
- AdaptiveHeight minimumContextDockedHeight = AdaptiveHeight.medium,
- AdaptiveHeight minimumTimelineDockedHeight = AdaptiveHeight.expanded,
- bool useContainerConstraints = true,
- bool considerOrientation = false,
- int? selectedIndex,
- int initialIndex = 0,
- ValueChanged<
int> ? onSelectedIndexChanged, - double spacing = 16,
- double itemSpacing = 12,
- int listFlex = 2,
- int detailFlex = 4,
- int contextFlex = 2,
- int detailPaneFlex = 3,
- int timelineFlex = 2,
- EdgeInsetsGeometry listPadding = const EdgeInsets.all(16),
- EdgeInsetsGeometry detailPadding = const EdgeInsets.all(16),
- EdgeInsetsGeometry contextPadding = const EdgeInsets.all(16),
- EdgeInsetsGeometry timelinePadding = const EdgeInsets.all(16),
- double modalHeightFactor = 0.72,
- bool showModalDragHandle = true,
- bool animateSize = true,
- Duration animationDuration = const Duration(milliseconds: 250),
- Curve animationCurve = Curves.easeInOutCubic,
Creates an adaptive incident desk.
Implementation
const AdaptiveIncidentDesk({
super.key,
required this.incidents,
required this.itemBuilder,
required this.detailBuilder,
required this.contextBuilder,
required this.timelineBuilder,
required this.listTitle,
required this.contextTitle,
required this.timelineTitle,
this.header,
this.emptyState,
this.listDescription,
this.listLeading,
this.contextDescription,
this.contextLeading,
this.timelineDescription,
this.timelineLeading,
this.modalListLabel = 'Open incidents',
this.modalListIcon = const Icon(Icons.warning_amber_outlined),
this.modalContextLabel = 'Open context',
this.modalContextIcon = const Icon(Icons.people_outline),
this.modalTimelineLabel = 'Open timeline',
this.modalTimelineIcon = const Icon(Icons.timeline_outlined),
this.listDockedAt = AdaptiveSize.medium,
this.contextDockedAt = AdaptiveSize.expanded,
this.timelineDockedAt = AdaptiveSize.expanded,
this.minimumListDockedHeight = AdaptiveHeight.compact,
this.minimumContextDockedHeight = AdaptiveHeight.medium,
this.minimumTimelineDockedHeight = AdaptiveHeight.expanded,
this.useContainerConstraints = true,
this.considerOrientation = false,
this.selectedIndex,
this.initialIndex = 0,
this.onSelectedIndexChanged,
this.spacing = 16,
this.itemSpacing = 12,
this.listFlex = 2,
this.detailFlex = 4,
this.contextFlex = 2,
this.detailPaneFlex = 3,
this.timelineFlex = 2,
this.listPadding = const EdgeInsets.all(16),
this.detailPadding = const EdgeInsets.all(16),
this.contextPadding = const EdgeInsets.all(16),
this.timelinePadding = const EdgeInsets.all(16),
this.modalHeightFactor = 0.72,
this.showModalDragHandle = true,
this.animateSize = true,
this.animationDuration = const Duration(milliseconds: 250),
this.animationCurve = Curves.easeInOutCubic,
}) : assert(spacing >= 0, 'spacing must be zero or greater.'),
assert(itemSpacing >= 0, 'itemSpacing must be zero or greater.'),
assert(listFlex > 0, 'listFlex must be greater than zero.'),
assert(detailFlex > 0, 'detailFlex must be greater than zero.'),
assert(contextFlex > 0, 'contextFlex must be greater than zero.'),
assert(
detailPaneFlex > 0,
'detailPaneFlex must be greater than zero.',
),
assert(timelineFlex > 0, 'timelineFlex must be greater than zero.'),
assert(
modalHeightFactor > 0 && modalHeightFactor <= 1,
'modalHeightFactor must be between 0 and 1.',
);