mirror of
https://github.com/simon-ding/polaris.git
synced 2026-03-01 07:00:47 +08:00
chore: serval fixes
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
import 'dart:js_interop_unsafe';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:ui/providers/activity.dart';
|
||||
|
||||
class ActivityPage extends ConsumerWidget {
|
||||
static const route = "/activities";
|
||||
|
||||
const ActivityPage({super.key});
|
||||
@override
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
var activitiesWatcher = ref.watch(activitiesDataProvider);
|
||||
@@ -23,7 +23,7 @@ class ActivityPage extends ConsumerWidget {
|
||||
DataColumn(label: Text("操作"))
|
||||
],
|
||||
rows: List<DataRow>.generate(activities.length, (i) {
|
||||
var activity = activities[activities.length - i -1];
|
||||
var activity = activities[activities.length - i - 1];
|
||||
|
||||
return DataRow(cells: [
|
||||
DataCell(Text("${activity.id}")),
|
||||
|
||||
@@ -43,7 +43,8 @@ class SearchPageData extends AutoDisposeAsyncNotifier<List<SearchResult>> {
|
||||
ref.invalidate(welcomePageDataProvider);
|
||||
}
|
||||
|
||||
void queryResults(String q) async {
|
||||
Future<void> queryResults(String q) async {
|
||||
list = List.empty(growable: true);
|
||||
final dio = await APIs.getDio();
|
||||
var resp = await dio.get(APIs.searchUrl, queryParameters: {"query": q});
|
||||
//var dy = jsonDecode(resp.data.toString());
|
||||
|
||||
@@ -18,6 +18,7 @@ class SearchPage extends ConsumerStatefulWidget {
|
||||
class _SearchPageState extends ConsumerState<SearchPage> {
|
||||
List<dynamic> list = List.empty();
|
||||
|
||||
Future<void>? _pendingFuture;
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var searchList = ref.watch(searchPageDataProvider);
|
||||
@@ -69,22 +70,38 @@ class _SearchPageState extends ConsumerState<SearchPage> {
|
||||
},
|
||||
error: (err, trace) => [Text("$err")],
|
||||
loading: () => [const CircularProgressIndicator()]);
|
||||
|
||||
var f = FutureBuilder(
|
||||
// We listen to the pending operation, to update the UI accordingly.
|
||||
future: _pendingFuture,
|
||||
builder: (context, snapshot) {
|
||||
if (snapshot.connectionState != ConnectionState.done &&
|
||||
snapshot.connectionState != ConnectionState.none) {
|
||||
return const Center(
|
||||
child: SizedBox(
|
||||
width: 30, height: 30, child: CircularProgressIndicator()));
|
||||
}
|
||||
return ListView(
|
||||
children: res,
|
||||
);
|
||||
});
|
||||
return Column(
|
||||
children: [
|
||||
TextField(
|
||||
autofocus: true,
|
||||
onSubmitted: (value) {
|
||||
ref.read(searchPageDataProvider.notifier).queryResults(value);
|
||||
onSubmitted: (value) async {
|
||||
var f =
|
||||
ref.read(searchPageDataProvider.notifier).queryResults(value);
|
||||
setState(() {
|
||||
_pendingFuture = f;
|
||||
});
|
||||
},
|
||||
decoration: const InputDecoration(
|
||||
labelText: "搜索",
|
||||
hintText: "搜索剧集名称",
|
||||
prefixIcon: Icon(Icons.search)),
|
||||
),
|
||||
Expanded(
|
||||
child: ListView(
|
||||
children: res,
|
||||
))
|
||||
Expanded(child: f)
|
||||
],
|
||||
);
|
||||
}
|
||||
@@ -151,9 +168,8 @@ class _SearchPageState extends ConsumerState<SearchPage> {
|
||||
),
|
||||
child: const Text('确定'),
|
||||
onPressed: () {
|
||||
ref
|
||||
.read(searchPageDataProvider.notifier)
|
||||
.submit2Watchlist(item.id!, _storageSelected, _resSelected);
|
||||
ref.read(searchPageDataProvider.notifier).submit2Watchlist(
|
||||
item.id!, _storageSelected, _resSelected);
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
),
|
||||
|
||||
@@ -124,7 +124,7 @@ class _TvDetailsPageState extends ConsumerState<TvDetailsPage> {
|
||||
Text(
|
||||
"${details!.name}",
|
||||
style: const TextStyle(
|
||||
fontSize: 14,
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.bold),
|
||||
),
|
||||
const Text(""),
|
||||
|
||||
Reference in New Issue
Block a user