import 'package:flutter/material.dart'; import 'package:localization/localization.dart'; import './account.dart' as account; import './about.dart' as about; import './app.dart' as app; import 'package:loris/global.dart' as global; import 'package:loris/themes/themes.dart' as themes; Widget settings(context) { final List categories = [ SettingsPanel( title: "account-settings".i18n(), content: const account.AccountSettings()), SettingsPanel( title: "app-settings".i18n(), content: const app.AppSettings()), SettingsPanel( title: "about".i18n(), content: const about.AboutSettings(), ) ]; return Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ Expanded( child: ListView.separated( shrinkWrap: true, itemBuilder: (context, index) { return categories[index]; }, separatorBuilder: (context, index) { return const Divider( height: 0, color: Colors.transparent, ); }, itemCount: categories.length), ), Container( decoration: BoxDecoration( border: Border( top: BorderSide( color: Theme.of(context).colorScheme.primary, width: 2, ), ), ), child: Material( child: Wrap( alignment: WrapAlignment.center, children: const [], ), )), ], ); } class SettingsPanel extends StatelessWidget { const SettingsPanel({ Key? key, required this.title, required this.content, }) : super(key: key); final String title; final Widget content; @override Widget build(BuildContext context) { return Padding( padding: const EdgeInsets.symmetric( horizontal: themes.defaultSeperatorHeight * 2, vertical: themes.defaultSeperatorHeight), child: Container( constraints: global.getConstraints(context), decoration: BoxDecoration( color: Theme.of(context).colorScheme.surface, border: Border.all( color: Theme.of(context).colorScheme.secondary, width: 2, ), borderRadius: BorderRadius.circular(8), ), padding: const EdgeInsets.all(24), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ SelectableText( title, style: Theme.of(context).textTheme.displayMedium, ), content, ], ), ), ); } }