fix: show correct path when select storage

This commit is contained in:
Simon Ding
2024-07-19 19:40:23 +08:00
parent 4b346d30fb
commit 64b254d24f

View File

@@ -172,50 +172,66 @@ class _SearchPageState extends ConsumerState<SearchPage> {
), ),
storage.when( storage.when(
data: (v) { data: (v) {
return Column( return StatefulBuilder(
crossAxisAlignment: CrossAxisAlignment.start, builder: (context, setState) {
children: [ return Column(
DropdownMenu( crossAxisAlignment: CrossAxisAlignment.start,
width: 200, children: [
label: const Text("存储位置"), DropdownMenu(
initialSelection: storageSelected, width: 200,
dropdownMenuEntries: v label: const Text("存储位置"),
.map((s) => DropdownMenuEntry( initialSelection: storageSelected,
label: s.name!, value: s.id)) dropdownMenuEntries: v
.toList(), .map((s) => DropdownMenuEntry(
onSelected: (value) { label: s.name!, value: s.id))
setState(() { .toList(),
storageSelected = value!; onSelected: (value) {
}); setState(() {
}, storageSelected = value!;
), });
item.mediaType == "tv" },
? name.when( ),
data: (s) { item.mediaType == "tv"
final path = v[storageSelected] ? name.when(
.settings!["tv_path"]; data: (s) {
return storageSelected == 0
? const Text("")
: () {
final storage = v
.where((e) =>
e.id ==
storageSelected)
.first;
final path = storage
.settings!["tv_path"];
pathController.text = s; pathController.text = s;
return SizedBox( return SizedBox(
//width: 300, //width: 300,
child: TextField( child: TextField(
controller: pathController, controller:
decoration: InputDecoration( pathController,
labelText: "存储路径", decoration:
prefix: Text(path)), InputDecoration(
), labelText:
); "存储路径",
}, prefix:
error: (error, stackTrace) => Text(path)),
Text("$error"), ),
loading: () => );
const MyProgressIndicator( }();
size: 20, },
), error: (error, stackTrace) =>
) Text("$error"),
: Text(""), loading: () =>
], const MyProgressIndicator(
); size: 20,
),
)
: Text(""),
],
);
});
}, },
error: (err, trace) => Text("$err"), error: (err, trace) => Text("$err"),
loading: () => const MyProgressIndicator()), loading: () => const MyProgressIndicator()),