refactored broad range of the application, split files, modularized calendar and file views, centralized bottom sheets and clipboard handling, and implemented unit test coverage
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
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),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user