Client/lib/widget/debug/debugTile.dart

38 lines
1.1 KiB
Dart

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../storage/base/settingsProvider.dart';
import '../centeredLeading.dart';
import 'jsonViewer.dart';
class DebugTile {
BuildContext context;
bool onlyInDebug;
DebugTile(this.context, {this.onlyInDebug = false});
Widget jsonData(Map<String, dynamic> data, {bool ignoreConfig = false}) {
return callback(
title: "JSON daten anzeigen",
onTab: () => JsonViewer.asDialog(context, data)
);
}
Widget callback({String title = "Debugaktion", required void Function() onTab}) {
return child(
ListTile(
leading: const CenteredLeading(Icon(Icons.developer_mode_outlined)),
title: Text(title),
subtitle: const Text("Entwicklermodus aktiviert"),
onTap: onTab,
)
);
}
Widget child(Widget child) {
return Visibility(
visible: Provider.of<SettingsProvider>(context).val().devToolsEnabled && (onlyInDebug ? kDebugMode : true),
child: child,
);
}
}