fix: tags dialog

This commit is contained in:
lollipopkit🏳️‍⚧️
2024-08-16 21:02:05 +08:00
parent ef297673f3
commit b5329e2692
6 changed files with 14 additions and 16 deletions

View File

@@ -87,7 +87,7 @@ class _ServerPageState extends State<ServerPage>
appBar: TagSwitcher(
tags: ServerProvider.tags,
onTagChanged: (p0) => _tag.value = p0,
tag: _tag,
initTag: _tag.value,
),
body: GestureDetector(
behavior: HitTestBehavior.opaque,
@@ -647,7 +647,7 @@ ${ss.err?.message ?? 'null'}
List<String> _filterServers(List<String> order) {
final tag = _tag.value;
if (tag.isEmpty) return order;
if (tag == kDefaultTag) return order;
return order.where((e) {
final tags = ServerProvider.pick(id: e)?.value.spi.tags;
if (tags == null) return false;

View File

@@ -22,7 +22,7 @@ class _SnippetListPageState extends State<SnippetListPage> {
appBar: TagSwitcher(
tags: SnippetProvider.tags,
onTagChanged: (tag) => _tag.value = tag,
tag: _tag,
initTag: _tag.value,
),
body: _buildBody(),
floatingActionButton: FloatingActionButton(
@@ -36,24 +36,21 @@ class _SnippetListPageState extends State<SnippetListPage> {
Widget _buildBody() {
return SnippetProvider.snippets.listenVal(
(snippets) {
if (snippets.isEmpty) {
return Center(child: Text(libL10n.empty));
}
if (snippets.isEmpty) return Center(child: Text(libL10n.empty));
return _tag.listenVal((tag) => _buildSnippetList(snippets, tag));
},
);
}
Widget _buildSnippetList(List<Snippet> snippets, String tag) {
final filtered = tag.isEmpty
final filtered = tag == kDefaultTag
? snippets
: snippets.where((e) => e.tags?.contains(tag) ?? false).toList();
return ReorderableListView.builder(
padding: const EdgeInsets.symmetric(horizontal: 11),
padding: const EdgeInsets.symmetric(horizontal: 9),
itemCount: filtered.length,
onReorder: (oldIdx, newIdx) => setState(() {
onReorder: (oldIdx, newIdx) {
snippets.moveByItem(
oldIdx,
newIdx,
@@ -62,7 +59,8 @@ class _SnippetListPageState extends State<SnippetListPage> {
Stores.setting.snippetOrder.put(p0.map((e) => e.name).toList());
},
);
}),
SnippetProvider.snippets.notify();
},
footer: UIs.height77,
buildDefaultDragHandles: false,
itemBuilder: (context, idx) {

View File

@@ -300,7 +300,7 @@ class SSHPageState extends State<SSHPage>
title: l10n.snippet,
tags: SnippetProvider.tags,
itemsBuilder: (e) {
if (e == null) return SnippetProvider.snippets.value;
if (e == kDefaultTag) return SnippetProvider.snippets.value;
return SnippetProvider.snippets.value
.where((element) => element.tags?.contains(e) ?? false)
.toList();

View File

@@ -113,7 +113,7 @@ void _onTapMoreBtns(
title: l10n.snippet,
tags: SnippetProvider.tags,
itemsBuilder: (e) {
if (e == null) return SnippetProvider.snippets.value;
if (e == kDefaultTag) return SnippetProvider.snippets.value;
return SnippetProvider.snippets.value
.where((element) => element.tags?.contains(e) ?? false)
.toList();