// needed for web horizontal scroll behavior import 'dart:convert' show jsonDecode; import 'dart:ui'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:json_theme/json_theme.dart'; import 'package:fotodocumentation/main.dart' show logger; class MyCustomScrollBehavior extends MaterialScrollBehavior { // Override behavior methods and getters like dragDevices @override Set get dragDevices => { PointerDeviceKind.touch, PointerDeviceKind.mouse, }; } class ThemeLoader { static Future loadTheme() async { try { String prefix = kDebugMode && kIsWeb ? "" : "assets/"; String url = "${prefix}theme/appainter_theme.json"; final themeStr = await rootBundle.loadString(url); final themeJson = jsonDecode(themeStr); return ThemeDecoder.decodeThemeData(themeJson)!; } catch (e) { logger.e("Failed to load theme $e", error: e); return ThemeData.light(); } } }