mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
fix: tags dialog
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user