🐛 Fix bugs

This commit is contained in:
2025-10-07 03:05:53 +08:00
parent 28dd204b1a
commit a8c4988790
4 changed files with 28 additions and 8 deletions

View File

@@ -9,12 +9,17 @@ AppDatabase constructDb() {
DatabaseConnection connectOnWeb() {
return DatabaseConnection.delayed(
Future(() async {
final result = await WasmDatabase.open(
databaseName: 'solar_network_data',
sqlite3Uri: Uri.parse('sqlite3.wasm'),
driftWorkerUri: Uri.parse('drift_worker.dart.js'),
);
return result.resolvedExecutor;
try {
final result = await WasmDatabase.open(
databaseName: 'solar_network_data',
sqlite3Uri: Uri.parse('sqlite3.wasm'),
driftWorkerUri: Uri.parse('drift_worker.dart.js'),
);
return result.resolvedExecutor;
} catch (e) {
print('Failed to open WASM database: $e');
rethrow;
}
}),
);
}

View File

@@ -312,7 +312,7 @@ class ServerStateNotifier extends StateNotifier<ServerState> {
: super(ServerState(status: 'Server not started'));
Future<void> start() async {
if (!Platform.isAndroid && !Platform.isIOS && !kIsWeb) {
if (!kIsWeb && !Platform.isAndroid && !Platform.isIOS) {
try {
await server.start();
state = state.copyWith(status: 'Server running');

View File

@@ -2,6 +2,7 @@ import 'dart:async';
import 'dart:io';
import 'package:dio/dio.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
@@ -11,6 +12,10 @@ import 'notify.universal.dart' as universal_notify;
// Platform-specific delegation
Future<void> initializeLocalNotifications() async {
if (kIsWeb) {
// No local notifications on web
return;
}
if (Platform.isWindows) {
return windows_notify.initializeLocalNotifications();
} else {
@@ -18,10 +23,14 @@ Future<void> initializeLocalNotifications() async {
}
}
StreamSubscription setupNotificationListener(
StreamSubscription? setupNotificationListener(
BuildContext context,
WidgetRef ref,
) {
if (kIsWeb) {
// No notification listener on web
return null;
}
if (Platform.isWindows) {
return windows_notify.setupNotificationListener(context, ref);
} else {
@@ -33,6 +42,10 @@ Future<void> subscribePushNotification(
Dio apiClient, {
bool detailedErrors = false,
}) async {
if (kIsWeb) {
// No push notification subscription on web
return;
}
if (Platform.isWindows) {
return windows_notify.subscribePushNotification(
apiClient,