claude refactor
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
|
||||
import '../../api/mhsl/breaker/getBreakers/getBreakersResponse.dart';
|
||||
import '../../state/app/modules/breaker/bloc/breaker_bloc.dart';
|
||||
import '../../widget/placeholderView.dart';
|
||||
|
||||
class Breaker extends StatelessWidget {
|
||||
final BreakerArea breaker;
|
||||
final Widget child;
|
||||
|
||||
const Breaker({required this.breaker, required this.child, super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final bloc = context.watch<BreakerBloc>();
|
||||
final blocked = bloc.isBlocked(breaker);
|
||||
if (blocked != null) {
|
||||
return PlaceholderView(
|
||||
icon: Icons.app_blocking_outlined,
|
||||
text: 'Die App / Dieser Bereich ist zurzeit nicht verfügbar!\n\n'
|
||||
'${blocked.isEmpty ? "Es wurde vom Server kein Grund übermittelt.\nAktualisiere die App und versuche es später erneut" : blocked}',
|
||||
);
|
||||
}
|
||||
return child;
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
|
||||
import '../../storage/base/settingsProvider.dart';
|
||||
import '../../state/app/modules/settings/bloc/settings_cubit.dart';
|
||||
import '../centeredLeading.dart';
|
||||
import 'jsonViewer.dart';
|
||||
|
||||
@@ -11,29 +11,27 @@ class DebugTile {
|
||||
bool onlyInDebug;
|
||||
DebugTile(this.context, {this.onlyInDebug = false});
|
||||
|
||||
bool devConditionFulfilled() => Provider.of<SettingsProvider>(context, listen: false).val().devToolsEnabled && (onlyInDebug ? kDebugMode : true);
|
||||
bool devConditionFulfilled() =>
|
||||
context.read<SettingsCubit>().val().devToolsEnabled && (onlyInDebug ? kDebugMode : true);
|
||||
|
||||
Widget jsonData(Map<String, dynamic> data, {bool ignoreConfig = false}) => callback(
|
||||
title: 'JSON daten anzeigen',
|
||||
onTab: () => JsonViewer.asDialog(context, data)
|
||||
);
|
||||
title: 'JSON daten anzeigen',
|
||||
onTab: () => JsonViewer.asDialog(context, data),
|
||||
);
|
||||
|
||||
Widget callback({String title = 'Debugaktion', required void Function() onTab}) => child(
|
||||
ListTile(
|
||||
leading: const CenteredLeading(Icon(Icons.developer_mode_outlined)),
|
||||
title: Text(title),
|
||||
subtitle: const Text('Entwicklermodus aktiviert'),
|
||||
onTap: onTab,
|
||||
)
|
||||
);
|
||||
ListTile(
|
||||
leading: const CenteredLeading(Icon(Icons.developer_mode_outlined)),
|
||||
title: Text(title),
|
||||
subtitle: const Text('Entwicklermodus aktiviert'),
|
||||
onTap: onTab,
|
||||
),
|
||||
);
|
||||
|
||||
Widget child(Widget child) => Visibility(
|
||||
visible: devConditionFulfilled(),
|
||||
child: child,
|
||||
);
|
||||
Widget child(Widget child) => Visibility(visible: devConditionFulfilled(), child: child);
|
||||
|
||||
void run(void Function() callback) {
|
||||
if(!devConditionFulfilled()) return;
|
||||
if (!devConditionFulfilled()) return;
|
||||
callback();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,11 +29,13 @@ class JsonViewer extends StatelessWidget {
|
||||
actions: [
|
||||
TextButton(onPressed: () {
|
||||
Clipboard.setData(ClipboardData(text: JsonViewer.format(dataMap))).then((value) {
|
||||
if (!context.mounted) return;
|
||||
showDialog(context: context, builder: (context) => const AlertDialog(content: Text('Formatiertes JSON wurde erfolgreich in deiner Zwischenlage abgelegt.')));
|
||||
});
|
||||
}, child: const Text('Kopieren')),
|
||||
TextButton(onPressed: () {
|
||||
Clipboard.setData(ClipboardData(text: dataMap.toString())).then((value) {
|
||||
if (!context.mounted) return;
|
||||
showDialog(context: context, builder: (context) => const AlertDialog(content: Text('Unformatiertes JSON wurde erfolgreich in deiner Zwischenablage abgelegt.')));
|
||||
});
|
||||
}, child: const Text('Inline Kopieren')),
|
||||
|
||||
@@ -4,11 +4,11 @@ import 'dart:math';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:open_filex/open_filex.dart';
|
||||
import 'package:photo_view/photo_view.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:share_plus/share_plus.dart';
|
||||
import 'package:syncfusion_flutter_pdfviewer/pdfviewer.dart';
|
||||
|
||||
import '../storage/base/settingsProvider.dart';
|
||||
import '../state/app/modules/settings/bloc/settings_cubit.dart';
|
||||
import '../utils/FileSaver.dart';
|
||||
import 'infoDialog.dart';
|
||||
import 'placeholderView.dart';
|
||||
@@ -32,7 +32,7 @@ enum FileViewingActions {
|
||||
class _FileViewerState extends State<FileViewer> {
|
||||
PhotoViewController photoViewController = PhotoViewController();
|
||||
|
||||
late SettingsProvider settings = Provider.of<SettingsProvider>(context, listen: false);
|
||||
late SettingsCubit settings = context.read<SettingsCubit>();
|
||||
late bool openExternal;
|
||||
|
||||
@override
|
||||
@@ -137,6 +137,7 @@ class _FileViewerState extends State<FileViewer> {
|
||||
|
||||
default:
|
||||
OpenFilex.open(widget.path).then((result) {
|
||||
if (!context.mounted) return;
|
||||
Navigator.of(context).pop();
|
||||
if(result.type != ResultType.done) {
|
||||
showDialog(context: context, builder: (context) => AlertDialog(
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class InfoDialog {
|
||||
static show(BuildContext context, String info) {
|
||||
static void show(BuildContext context, String info) {
|
||||
showDialog(context: context, builder: (context) => AlertDialog(
|
||||
content: Text(info),
|
||||
contentPadding: const EdgeInsets.all(20),
|
||||
|
||||
@@ -23,7 +23,7 @@ class PlaceholderView extends StatelessWidget {
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
const SizedBox(height: 30),
|
||||
if(button != null) button!,
|
||||
?button,
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user