mirror of
https://github.com/localsend/localsend.git
synced 2026-06-23 04:10:07 +00:00
56 lines
1.3 KiB
Dart
56 lines
1.3 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:localsend_app/util/native/platform_check.dart';
|
|
import 'package:logging/logging.dart';
|
|
import 'package:window_manager/window_manager.dart';
|
|
|
|
final _logger = Logger('Init');
|
|
|
|
/// Shows an alternative app if the initialization failed.
|
|
void showInitErrorApp({
|
|
required Object error,
|
|
required StackTrace stackTrace
|
|
}) async {
|
|
_logger.severe('Error during init', error, stackTrace);
|
|
|
|
if (checkPlatformIsDesktop()) {
|
|
await WindowManager.instance.ensureInitialized();
|
|
await WindowManager.instance.show();
|
|
}
|
|
|
|
runApp(_ErrorApp(
|
|
error: error,
|
|
stackTrace: stackTrace,
|
|
));
|
|
}
|
|
|
|
class _ErrorApp extends StatelessWidget {
|
|
final Object error;
|
|
final StackTrace stackTrace;
|
|
|
|
const _ErrorApp({
|
|
required this.error,
|
|
required this.stackTrace,
|
|
});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return MaterialApp(
|
|
title: 'LocalSend: Error',
|
|
debugShowCheckedModeBanner: false,
|
|
home: Scaffold(
|
|
body: TextFormField(
|
|
initialValue: 'Error: $error\n\n$stackTrace',
|
|
maxLines: null,
|
|
readOnly: true,
|
|
decoration: const InputDecoration(
|
|
contentPadding: EdgeInsets.all(10),
|
|
border: OutlineInputBorder(
|
|
borderSide: BorderSide(),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|