// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'package:flutter/material.dart'; import '../../../layout/adaptive.dart'; import '../colors.dart'; import '../data.dart'; import '../routes.dart' as rally_route; class SettingsView extends StatefulWidget { const SettingsView({super.key}); @override State createState() => _SettingsViewState(); } class _SettingsViewState extends State { @override Widget build(BuildContext context) { return FocusTraversalGroup( child: Container( padding: EdgeInsets.only(top: isDisplayDesktop(context) ? 24 : 0), child: ListView( restorationId: 'settings_list_view', shrinkWrap: true, children: [ for (final String title in DummyDataService.getSettingsTitles(context)) ...[ _SettingsItem(title), const Divider(color: RallyColors.dividerColor, height: 1), ], ], ), ), ); } } class _SettingsItem extends StatelessWidget { const _SettingsItem(this.title); final String title; @override Widget build(BuildContext context) { return TextButton( style: TextButton.styleFrom(foregroundColor: Colors.white, padding: EdgeInsets.zero), onPressed: () { Navigator.of(context).restorablePushNamed(rally_route.loginRoute); }, child: Container( alignment: AlignmentDirectional.centerStart, padding: const EdgeInsets.symmetric(vertical: 24, horizontal: 28), child: Text(title), ), ); } }