Files
localsend/app/lib/config/init_error.dart
T

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(),
),
),
),
),
);
}
}