From 87bf174bb8b4d0d8d616a24e1373e45a46045f85 Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Fri, 5 Sep 2025 11:02:06 -0500 Subject: [PATCH] refactor ui --- .../lib/screens/edit_mount_screen.dart | 16 +++------ .../lib/screens/edit_settings_screen.dart | 32 ++++++++---------- web/repertory/lib/screens/home_screen.dart | 9 +---- web/repertory/lib/widgets/app_dropdown.dart | 10 +++--- web/repertory/lib/widgets/section_card.dart | 33 +++++++++++++++++++ 5 files changed, 57 insertions(+), 43 deletions(-) create mode 100644 web/repertory/lib/widgets/section_card.dart diff --git a/web/repertory/lib/screens/edit_mount_screen.dart b/web/repertory/lib/screens/edit_mount_screen.dart index 7f5fabb1..4b41aba7 100644 --- a/web/repertory/lib/screens/edit_mount_screen.dart +++ b/web/repertory/lib/screens/edit_mount_screen.dart @@ -50,18 +50,10 @@ class _EditMountScreenState extends State ), children: [ Expanded( - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: constants.padding), - child: ClipRRect( - borderRadius: BorderRadius.circular(constants.borderRadius), - child: MountSettingsWidget( - mount: widget.mount, - settings: jsonDecode( - jsonEncode(widget.mount.mountConfig.settings), - ), - showAdvanced: _showAdvanced, - ), - ), + child: MountSettingsWidget( + mount: widget.mount, + settings: jsonDecode(jsonEncode(widget.mount.mountConfig.settings)), + showAdvanced: _showAdvanced, ), ), const SizedBox(height: constants.padding), diff --git a/web/repertory/lib/screens/edit_settings_screen.dart b/web/repertory/lib/screens/edit_settings_screen.dart index c90db254..407339e7 100644 --- a/web/repertory/lib/screens/edit_settings_screen.dart +++ b/web/repertory/lib/screens/edit_settings_screen.dart @@ -29,26 +29,20 @@ class _EditSettingsScreenState extends State showBack: true, children: [ Expanded( - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: constants.padding), - child: ClipRRect( - borderRadius: BorderRadius.circular(constants.borderRadius), - child: FutureBuilder>( - future: _grabSettings(), - initialData: const {}, - builder: (context, snapshot) { - if (!snapshot.hasData) { - return const Center(child: CircularProgressIndicator()); - } + child: FutureBuilder>( + future: _grabSettings(), + initialData: const {}, + builder: (context, snapshot) { + if (!snapshot.hasData) { + return const Center(child: CircularProgressIndicator()); + } - return UISettingsWidget( - origSettings: jsonDecode(jsonEncode(snapshot.requireData)), - settings: snapshot.requireData, - showAdvanced: false, - ); - }, - ), - ), + return UISettingsWidget( + origSettings: jsonDecode(jsonEncode(snapshot.requireData)), + settings: snapshot.requireData, + showAdvanced: false, + ); + }, ), ), const SizedBox(height: constants.padding), diff --git a/web/repertory/lib/screens/home_screen.dart b/web/repertory/lib/screens/home_screen.dart index d56e920a..f22ba6f5 100644 --- a/web/repertory/lib/screens/home_screen.dart +++ b/web/repertory/lib/screens/home_screen.dart @@ -65,14 +65,7 @@ class _HomeScreeState extends State { ), ), ), - children: [ - Expanded( - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: constants.padding), - child: const MountListWidget(), - ), - ), - ], + children: [Expanded(child: const MountListWidget())], ); } } diff --git a/web/repertory/lib/widgets/app_dropdown.dart b/web/repertory/lib/widgets/app_dropdown.dart index 3ae675e4..52e7dd30 100644 --- a/web/repertory/lib/widgets/app_dropdown.dart +++ b/web/repertory/lib/widgets/app_dropdown.dart @@ -55,7 +55,9 @@ class AppDropdown extends StatelessWidget { } double? _computedMaxWidth(BuildContext context) { - if (!constrainToIntrinsic) return maxWidth; + if (!constrainToIntrinsic) { + return maxWidth; + } final theme = Theme.of(context); final scheme = theme.colorScheme; @@ -129,11 +131,11 @@ class AppDropdown extends StatelessWidget { validator: validator, ); - final maxW = _computedMaxWidth(context); - final wrapped = maxW == null + final maxWidth = _computedMaxWidth(context); + final wrapped = maxWidth == null ? field : ConstrainedBox( - constraints: BoxConstraints(maxWidth: maxW), + constraints: BoxConstraints(maxWidth: maxWidth), child: field, ); diff --git a/web/repertory/lib/widgets/section_card.dart b/web/repertory/lib/widgets/section_card.dart new file mode 100644 index 00000000..6a9d5857 --- /dev/null +++ b/web/repertory/lib/widgets/section_card.dart @@ -0,0 +1,33 @@ +// section_card.dart + +import 'package:flutter/material.dart'; +import 'package:repertory/constants.dart' as constants; + +class SectionCard extends StatelessWidget { + const SectionCard({super.key, required this.title, required this.child}); + final String title; + final Widget child; + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + return Card( + elevation: 0, + margin: const EdgeInsets.symmetric(vertical: constants.paddingSmall), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(constants.borderRadiusSmall), + ), + child: Padding( + padding: const EdgeInsets.all(constants.padding), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(title, style: theme.textTheme.titleMedium), + const SizedBox(height: constants.paddingSmall), + child, + ], + ), + ), + ); + } +}