diff --git a/ui/lib/init_wizard.dart b/ui/lib/init_wizard.dart index b8f19c8..af7c0a0 100644 --- a/ui/lib/init_wizard.dart +++ b/ui/lib/init_wizard.dart @@ -1,9 +1,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_form_builder/flutter_form_builder.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:form_builder_validators/form_builder_validators.dart'; +import 'package:ui/settings/downloader.dart'; import 'package:ui/settings/prowlarr.dart'; -import 'package:ui/widgets/widgets.dart'; +import 'package:ui/settings/storage.dart'; class InitWizard extends ConsumerStatefulWidget { const InitWizard({super.key}); @@ -46,6 +46,7 @@ class _InitWizardState extends ConsumerState { tmdbSetting(), downloaderSetting(), indexerSetting(), + storageSetting(), ], ), )), @@ -96,95 +97,22 @@ class _InitWizardState extends ConsumerState { } Widget downloaderSetting() { - final _formKey = GlobalKey(); - var _enableAuth = false; - String selectImpl = "transmission"; - return ExpansionTile( childrenPadding: EdgeInsets.only(left: 100, right: 20), initiallyExpanded: true, title: Text("第二步:下载客户端", style: TextStyle(fontWeight: FontWeight.bold)), children: [ - StatefulBuilder(builder: (BuildContext context, StateSetter setState) { - return FormBuilder( - key: _formKey, - initialValue: { - "name": "client.name", - "url": "client.url", - "user": "client.user", - "password": "client.password", - "impl": selectImpl, - }, - child: Column( - children: [ - FormBuilderDropdown( - name: "impl", - decoration: const InputDecoration(labelText: "类型"), - items: const [ - DropdownMenuItem( - value: "transmission", child: Text("Transmission")), - DropdownMenuItem( - value: "qbittorrent", child: Text("qBittorrent")), - ], - validator: FormBuilderValidators.required(), - ), - FormBuilderTextField( - name: "name", - decoration: const InputDecoration(labelText: "名称"), - validator: FormBuilderValidators.required(), - autovalidateMode: AutovalidateMode.onUserInteraction), - FormBuilderTextField( - name: "url", - decoration: const InputDecoration( - labelText: "地址", hintText: "http://127.0.0.1:9091"), - autovalidateMode: AutovalidateMode.onUserInteraction, - validator: FormBuilderValidators.required(), - ), - StatefulBuilder( - builder: (BuildContext context, StateSetter setState) { - return Column( - children: [ - FormBuilderSwitch( - name: "auth", - title: const Text("需要认证"), - initialValue: _enableAuth, - onChanged: (v) { - setState(() { - _enableAuth = v!; - }); - }), - _enableAuth - ? Column( - children: [ - FormBuilderTextField( - name: "user", - decoration: - Commons.requiredTextFieldStyle( - text: "用户"), - validator: - FormBuilderValidators.required(), - autovalidateMode: - AutovalidateMode.onUserInteraction), - FormBuilderTextField( - name: "password", - decoration: - Commons.requiredTextFieldStyle( - text: "密码"), - validator: - FormBuilderValidators.required(), - obscureText: true, - autovalidateMode: - AutovalidateMode.onUserInteraction), - ], - ) - : Container() - ], - ); - }) - ], - )); - }), + DownloaderSettings(), ], ); } + + Widget storageSetting() { + return ExpansionTile( + childrenPadding: EdgeInsets.only(left: 100, right: 20), + title: Text("第四步:存储设置", style: TextStyle(fontWeight: FontWeight.bold)), + initiallyExpanded: true, + children: [StorageSettings()], + ); + } }