This commit is contained in:
NewTab
2022-01-21 20:26:42 +08:00
parent 8c0a5bbb24
commit cb484eeb95
2 changed files with 336 additions and 323 deletions

View File

@@ -5,6 +5,7 @@ import 'package:qinglong_app/base/base_state_widget.dart';
import 'package:qinglong_app/base/routes.dart';
import 'package:qinglong_app/base/theme.dart';
import 'package:qinglong_app/base/ui/abs_underline_tabindicator.dart';
import 'package:qinglong_app/base/ui/empty_widget.dart';
import 'package:qinglong_app/main.dart';
import 'config_viewmodel.dart';
@@ -16,7 +17,8 @@ class ConfigPage extends StatefulWidget {
ConfigPageState createState() => ConfigPageState();
}
class ConfigPageState extends State<ConfigPage> with SingleTickerProviderStateMixin {
class ConfigPageState extends State<ConfigPage>
with SingleTickerProviderStateMixin {
TabController? _tabController;
@override
@@ -28,7 +30,11 @@ class ConfigPageState extends State<ConfigPage> with SingleTickerProviderStateMi
Widget build(BuildContext context) {
return BaseStateWidget<ConfigViewModel>(
builder: (ref, model, child) {
_tabController ??= TabController(length: model.list.length, vsync: this);
if (model.list.isEmpty) {
return const EmptyWidget();
}
_tabController ??=
TabController(length: model.list.length, vsync: this);
return Column(
children: [
@@ -60,7 +66,10 @@ class ConfigPageState extends State<ConfigPage> with SingleTickerProviderStateMi
padding: const EdgeInsets.symmetric(
horizontal: 15,
),
theme: ref.watch(themeProvider).themeColor.codeEditorTheme(),
theme: ref
.watch(themeProvider)
.themeColor
.codeEditorTheme(),
tabSize: 14,
),
),
@@ -82,7 +91,8 @@ class ConfigPageState extends State<ConfigPage> with SingleTickerProviderStateMi
if (_tabController == null || _tabController!.length == 0) return;
navigatorState.currentState?.pushNamed(Routes.routeConfigEdit, arguments: {
"title": ref.read(configProvider).list[_tabController?.index ?? 0].title,
"content": ref.read(configProvider).content[ref.read(configProvider).list[_tabController?.index ?? 0].title]
"content": ref.read(configProvider).content[
ref.read(configProvider).list[_tabController?.index ?? 0].title]
}).then((value) async {
if (value != null && (value as String).isNotEmpty) {
await ref.read(configProvider).loadContent(value);