Files
Client/lib/widget/details_bottom_sheet.dart
T
2026-05-08 20:12:40 +02:00

32 lines
1.0 KiB
Dart

import 'package:flutter/material.dart';
/// Shows a modal bottom sheet for a detail view (appointment, file, lesson,
/// custom event, etc.). All detail sheets in the app share this layout: drag
/// handle on top, default theme background, optional ListTile-style header
/// followed by a divider, scrollable body below.
void showDetailsBottomSheet(
BuildContext context, {
Widget? header,
required List<Widget> Function(BuildContext sheetContext) children,
}) {
showModalBottomSheet<void>(
context: context,
isScrollControlled: true,
showDragHandle: true,
useSafeArea: true,
builder: (sheetContext) => SafeArea(
child: SingleChildScrollView(
padding: const EdgeInsets.only(bottom: 16),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
if (header != null) ...[header, const Divider(height: 1)],
...children(sheetContext),
],
),
),
),
);
}