opt.: RNode

This commit is contained in:
lollipopkit
2024-06-08 15:35:19 +08:00
parent da48d1f66c
commit 8121eef839
8 changed files with 20 additions and 44 deletions

View File

@@ -15,7 +15,7 @@ class MyApp extends StatelessWidget {
Widget build(BuildContext context) {
_setup(context);
return ListenableBuilder(
listenable: RebuildNodes.app,
listenable: RNodes.app,
builder: (context, _) {
if (!Stores.setting.useSystemPrimaryColor.fetch()) {
UIs.colorSeed = Color(Stores.setting.primaryColor.fetch());

View File

@@ -170,7 +170,7 @@ class Backup {
}
Pros.reload();
RebuildNodes.app.rebuild();
RNodes.app.build();
_logger.info('Restore success');
}

View File

@@ -1,5 +0,0 @@
typedef GhId = String;
extension GhIdX on GhId {
String get url => 'https://github.com/$this';
}

View File

@@ -1,23 +0,0 @@
import 'package:flutter/foundation.dart';
class RebuildNode implements Listenable {
final List<VoidCallback> _listeners = [];
RebuildNode();
@override
void addListener(VoidCallback listener) {
_listeners.add(listener);
}
@override
void removeListener(VoidCallback listener) {
_listeners.remove(listener);
}
void rebuild() {
for (var listener in _listeners) {
listener();
}
}
}

View File

@@ -1,5 +1,3 @@
import 'package:toolbox/data/model/app/github_id.dart';
abstract final class GithubIds {
// Thanks
// If you want to change your Github ID, please open an issue.
@@ -75,3 +73,9 @@ abstract final class GithubIds {
'Jasonzhu1207',
};
}
typedef GhId = String;
extension GhIdX on GhId {
String get url => 'https://github.com/$this';
}

View File

@@ -1,5 +1,6 @@
import 'package:toolbox/data/model/app/rebuild.dart';
import 'package:fl_lib/fl_lib.dart';
abstract final class RebuildNodes {
static final app = RebuildNode();
}
abstract final class RNodes {
static final app = RNode();
static final dark = false.vn;
}

View File

@@ -9,7 +9,6 @@ import 'package:toolbox/core/channel/home_widget.dart';
import 'package:toolbox/core/extension/build.dart';
import 'package:toolbox/core/extension/context/locale.dart';
import 'package:toolbox/core/route.dart';
import 'package:toolbox/data/model/app/github_id.dart';
import 'package:toolbox/data/model/app/tab.dart';
import 'package:toolbox/data/res/build_data.dart';
import 'package:toolbox/data/res/github_id.dart';

View File

@@ -305,7 +305,7 @@ class _SettingPageState extends State<SettingPage> {
_setting.primaryColor.put(color.value);
context.pop();
context.pop();
RebuildNodes.app.rebuild();
RNodes.app.build();
}
// Widget _buildLaunchPage() {
@@ -393,7 +393,7 @@ class _SettingPageState extends State<SettingPage> {
);
if (selected != null) {
_setting.themeMode.put(selected);
RebuildNodes.app.rebuild();
RNodes.app.build();
}
},
trailing: ValBuilder(
@@ -442,7 +442,7 @@ class _SettingPageState extends State<SettingPage> {
onPressed: () {
_setting.fontPath.delete();
context.pop();
RebuildNodes.app.rebuild();
RNodes.app.build();
},
child: Text(l10n.clear),
)
@@ -466,7 +466,7 @@ class _SettingPageState extends State<SettingPage> {
}
context.pop();
RebuildNodes.app.rebuild();
RNodes.app.build();
}
Widget _buildTermFontSize() {
@@ -536,7 +536,7 @@ class _SettingPageState extends State<SettingPage> {
if (selected != null) {
_setting.locale.put(selected.code);
context.pop();
RebuildNodes.app.rebuild();
RNodes.app.build();
}
},
trailing: ListenBuilder(
@@ -609,7 +609,7 @@ class _SettingPageState extends State<SettingPage> {
subtitle: Text(l10n.fullScreenTip, style: UIs.textGrey),
trailing: StoreSwitch(
prop: _setting.fullScreen,
callback: (_) => RebuildNodes.app.rebuild(),
callback: (_) => RNodes.app.build(),
),
);
}
@@ -820,7 +820,7 @@ class _SettingPageState extends State<SettingPage> {
return;
}
_setting.textFactor.put(val);
RebuildNodes.app.rebuild();
RNodes.app.build();
context.pop();
}