mudular code ready to fork

This commit is contained in:
gitea
2025-11-08 12:54:40 +01:00
parent 5f8d8330f5
commit 8c6bf598f5
21 changed files with 288 additions and 519 deletions
+9 -17
View File
@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import '../../core/service_locator.dart';
import '../../data/nostr/nostr_service.dart';
import '../../data/sync/sync_engine.dart';
import '../../data/session/session_service.dart';
@@ -9,16 +10,7 @@ import '../relay_management/relay_management_controller.dart';
/// Screen for displaying and testing Nostr events.
class NostrEventsScreen extends StatefulWidget {
final NostrService? nostrService;
final SyncEngine? syncEngine;
final SessionService? sessionService;
const NostrEventsScreen({
super.key,
this.nostrService,
this.syncEngine,
this.sessionService,
});
const NostrEventsScreen({super.key});
@override
State<NostrEventsScreen> createState() => _NostrEventsScreenState();
@@ -29,7 +21,7 @@ class _NostrEventsScreenState extends State<NostrEventsScreen> {
bool _isLoading = false;
Future<void> _publishTestEvent() async {
if (widget.nostrService == null) {
if (ServiceLocator.instance.nostrService == null) {
if (mounted) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
@@ -42,7 +34,7 @@ class _NostrEventsScreenState extends State<NostrEventsScreen> {
}
// Check if user is logged in with Nostr
final currentUser = widget.sessionService?.currentUser;
final currentUser = ServiceLocator.instance.sessionService?.currentUser;
if (currentUser == null || currentUser.nostrPrivateKey == null) {
if (mounted) {
ScaffoldMessenger.of(context).showSnackBar(
@@ -56,7 +48,7 @@ class _NostrEventsScreenState extends State<NostrEventsScreen> {
}
// Get relays
final relays = widget.nostrService!.getRelays();
final relays = ServiceLocator.instance.nostrService!.getRelays();
if (relays.isEmpty) {
if (mounted) {
ScaffoldMessenger.of(context).showSnackBar(
@@ -85,7 +77,7 @@ class _NostrEventsScreenState extends State<NostrEventsScreen> {
);
// Publish to all enabled relays
final results = await widget.nostrService!.publishEventToAllRelays(event);
final results = await ServiceLocator.instance.nostrService!.publishEventToAllRelays(event);
setState(() {
_isLoading = false;
@@ -169,13 +161,13 @@ class _NostrEventsScreenState extends State<NostrEventsScreen> {
const SizedBox(height: 8),
TextButton.icon(
onPressed: () {
if (widget.nostrService != null && widget.syncEngine != null) {
if (ServiceLocator.instance.nostrService != null && ServiceLocator.instance.syncEngine != null) {
Navigator.of(context).push(
MaterialPageRoute(
builder: (_) => RelayManagementScreen(
controller: RelayManagementController(
nostrService: widget.nostrService!,
syncEngine: widget.syncEngine!,
nostrService: ServiceLocator.instance.nostrService!,
syncEngine: ServiceLocator.instance.syncEngine!,
),
),
),