new: Providers

This commit is contained in:
lollipopkit
2023-09-14 15:13:11 +08:00
parent eb158e63a2
commit c07958fa73
29 changed files with 206 additions and 218 deletions

View File

@@ -3,12 +3,11 @@ import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:toolbox/core/extension/context/common.dart';
import 'package:toolbox/core/extension/context/snackbar.dart';
import 'package:toolbox/data/res/provider.dart';
import 'package:toolbox/view/widget/input_field.dart';
import '../../../data/model/server/snippet.dart';
import '../../../data/provider/snippet.dart';
import '../../../data/res/ui.dart';
import '../../../locator.dart';
import '../../widget/custom_appbar.dart';
import '../../widget/tag.dart';
@@ -28,17 +27,10 @@ class _SnippetEditPageState extends State<SnippetEditPage>
final _noteController = TextEditingController();
final _scriptNode = FocusNode();
late SnippetProvider _provider;
late S _s;
List<String> _tags = [];
@override
void initState() {
super.initState();
_provider = locator<SnippetProvider>();
}
@override
void dispose() {
super.dispose();
@@ -72,7 +64,7 @@ class _SnippetEditPageState extends State<SnippetEditPage>
return [
IconButton(
onPressed: () {
_provider.del(widget.snippet!);
Providers.snippet.del(widget.snippet!);
context.pop();
},
tooltip: _s.delete,
@@ -100,9 +92,9 @@ class _SnippetEditPageState extends State<SnippetEditPage>
note: note.isEmpty ? null : note,
);
if (widget.snippet != null) {
_provider.update(widget.snippet!, snippet);
Providers.snippet.update(widget.snippet!, snippet);
} else {
_provider.add(snippet);
Providers.snippet.add(snippet);
}
context.pop();
},
@@ -135,9 +127,9 @@ class _SnippetEditPageState extends State<SnippetEditPage>
_tags = p0;
}),
s: _s,
allTags: [..._provider.tags],
allTags: [...Providers.server.tags],
onRenameTag: (old, n) => setState(() {
_provider.renameTag(old, n);
Providers.server.renameTag(old, n);
}),
),
Input(

View File

@@ -3,14 +3,13 @@ import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:provider/provider.dart';
import 'package:toolbox/core/extension/context/dialog.dart';
import 'package:toolbox/core/extension/order.dart';
import 'package:toolbox/data/res/provider.dart';
import 'package:toolbox/data/res/store.dart';
import '../../../core/utils/misc.dart';
import '../../../data/model/server/server.dart';
import '../../../data/model/server/snippet.dart';
import '../../../data/provider/server.dart';
import '../../../data/res/ui.dart';
import '../../../locator.dart';
import '../../widget/tag.dart';
import '/core/route.dart';
import '/data/provider/snippet.dart';
@@ -130,19 +129,18 @@ class _SnippetListPageState extends State<SnippetListPage> {
}
Future<void> _runSnippet(Snippet snippet) async {
final provider = locator<ServerProvider>();
final servers = await showDialog<List<Server>>(
context: context,
builder: (_) => TagPicker<Server>(
items: provider.servers.values.toList(),
tags: provider.tags.toSet(),
items: Providers.server.servers.values.toList(),
tags: Providers.server.tags.toSet(),
),
);
if (servers == null) {
return;
}
final ids = servers.map((e) => e.spi.id).toList();
final results = await provider.runSnippetsOnMulti(ids, [snippet]);
final results = await Providers.server.runSnippetsMulti(ids, [snippet]);
if (results.isNotEmpty) {
// SERVER_NAME: RESULT
final result = Map.fromIterables(