Tappable label tags

This commit is contained in:
2024-12-22 17:37:37 +08:00
parent d1eb51c596
commit 594f57e0d3
3 changed files with 35 additions and 5 deletions

View File

@ -13,7 +13,10 @@ import 'package:surface/widgets/post/post_tags_field.dart';
import 'package:very_good_infinite_list/very_good_infinite_list.dart';
class PostSearchScreen extends StatefulWidget {
const PostSearchScreen({super.key});
final Iterable<String>? initialTags;
final Iterable<String>? initialCategories;
const PostSearchScreen({super.key, this.initialTags, this.initialCategories});
@override
State<PostSearchScreen> createState() => _PostSearchScreenState();
@ -31,6 +34,16 @@ class _PostSearchScreenState extends State<PostSearchScreen> {
String _searchTerm = '';
Duration? _lastTook;
@override
void initState() {
super.initState();
_searchTags.addAll(widget.initialTags ?? []);
_searchCategories.addAll(widget.initialCategories ?? []);
if (_searchTags.isNotEmpty || _searchCategories.isNotEmpty) {
_fetchPosts();
}
}
Future<void> _fetchPosts() async {
if (_searchTerm.isEmpty && _searchCategories.isEmpty && _searchTags.isEmpty) return;
if (_postCount != null && _posts.length >= _postCount!) return;