75 lines
2.9 KiB
Dart
75 lines
2.9 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
|
import 'package:simplecloudnotifier/components/layout/scaffold.dart';
|
|
import 'package:simplecloudnotifier/pages/debug/debug_actions.dart';
|
|
import 'package:simplecloudnotifier/pages/debug/debug_colors.dart';
|
|
import 'package:simplecloudnotifier/pages/debug/debug_logs.dart';
|
|
import 'package:simplecloudnotifier/pages/debug/debug_persistence.dart';
|
|
import 'package:simplecloudnotifier/pages/debug/debug_requests.dart';
|
|
|
|
class DebugMainPage extends StatefulWidget {
|
|
@override
|
|
_DebugMainPageState createState() => _DebugMainPageState();
|
|
}
|
|
|
|
enum DebugMainPageSubPage { colors, requests, persistence, logs, actions }
|
|
|
|
class _DebugMainPageState extends State<DebugMainPage> {
|
|
final Map<DebugMainPageSubPage, Widget> _subpages = {
|
|
DebugMainPageSubPage.colors: DebugColorsPage(),
|
|
DebugMainPageSubPage.requests: DebugRequestsPage(),
|
|
DebugMainPageSubPage.persistence: DebugPersistencePage(),
|
|
DebugMainPageSubPage.logs: DebugLogsPage(),
|
|
DebugMainPageSubPage.actions: DebugActionsPage(),
|
|
};
|
|
|
|
DebugMainPageSubPage _subPage = DebugMainPageSubPage.colors;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return SCNScaffold(
|
|
title: 'Debug',
|
|
showSearch: false,
|
|
child: Column(
|
|
children: [
|
|
Padding(
|
|
padding: const EdgeInsets.all(16.0),
|
|
child: Row(
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
children: [
|
|
buildSegButton(context),
|
|
],
|
|
),
|
|
),
|
|
Expanded(
|
|
child: _subpages[_subPage]!,
|
|
),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
|
|
Widget buildSegButton(BuildContext context) {
|
|
return SegmentedButton<DebugMainPageSubPage>(
|
|
showSelectedIcon: false,
|
|
segments: const <ButtonSegment<DebugMainPageSubPage>>[
|
|
ButtonSegment<DebugMainPageSubPage>(value: DebugMainPageSubPage.colors, icon: Icon(FontAwesomeIcons.solidPaintRoller, size: 14)),
|
|
ButtonSegment<DebugMainPageSubPage>(value: DebugMainPageSubPage.actions, icon: Icon(FontAwesomeIcons.solidHammer, size: 14)),
|
|
ButtonSegment<DebugMainPageSubPage>(value: DebugMainPageSubPage.requests, icon: Icon(FontAwesomeIcons.solidNetworkWired, size: 14)),
|
|
ButtonSegment<DebugMainPageSubPage>(value: DebugMainPageSubPage.persistence, icon: Icon(FontAwesomeIcons.solidDatabase, size: 14)),
|
|
ButtonSegment<DebugMainPageSubPage>(value: DebugMainPageSubPage.logs, icon: Icon(FontAwesomeIcons.solidFileLines, size: 14)),
|
|
],
|
|
style: ButtonStyle(
|
|
padding: MaterialStateProperty.all<EdgeInsets>(EdgeInsets.fromLTRB(0, 0, 0, 0)),
|
|
visualDensity: VisualDensity(horizontal: -3, vertical: -3),
|
|
),
|
|
selected: <DebugMainPageSubPage>{_subPage},
|
|
onSelectionChanged: (Set<DebugMainPageSubPage> v) {
|
|
setState(() {
|
|
_subPage = v.first;
|
|
});
|
|
},
|
|
);
|
|
}
|
|
}
|