import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:media_kit/media_kit.dart'; import 'package:window_manager/window_manager.dart'; import 'app/kabuk.dart'; import 'app/tema.dart'; import 'comfy/comfy_istemci.dart'; import 'comfy/uretim_kuyrugu.dart'; import 'veri/isar_servisi.dart'; Future main() async { WidgetsFlutterBinding.ensureInitialized(); MediaKit.ensureInitialized(); await windowManager.ensureInitialized(); await isarBaslat(); await ComfyIstemci.clientIdHazirla(); const pencere = WindowOptions( size: Size(1500, 920), minimumSize: Size(1100, 700), center: true, title: 'FikoYT Stüdyo', backgroundColor: Colors.transparent, ); windowManager.waitUntilReadyToShow(pencere, () async { await windowManager.show(); await windowManager.focus(); }); runApp(const ProviderScope(child: FikoYTStudyoApp())); } /// Mouse ile tutup sürükleyerek kaydırmayı (touch gibi) etkinleştirir. class _SurukleScrollDavranisi extends MaterialScrollBehavior { const _SurukleScrollDavranisi(); @override Set get dragDevices => { PointerDeviceKind.touch, PointerDeviceKind.mouse, PointerDeviceKind.trackpad, PointerDeviceKind.stylus, }; } class FikoYTStudyoApp extends ConsumerStatefulWidget { const FikoYTStudyoApp({super.key}); @override ConsumerState createState() => _FikoYTStudyoAppState(); } class _FikoYTStudyoAppState extends ConsumerState { @override void initState() { super.initState(); // Açılışta asılı kalmış üretim işlerini ComfyUI geçmişinden kurtar. WidgetsBinding.instance.addPostFrameCallback((_) { ref.read(uretimKuyruguProvider.notifier).kurtar(); }); } @override Widget build(BuildContext context) { final koyu = ref.watch(ayarlarProvider.select((a) => a.koyuTema)); return MaterialApp( title: 'FikoYT Stüdyo', debugShowCheckedModeBanner: false, theme: FikoTema.acik(), darkTheme: FikoTema.koyu(), themeMode: koyu ? ThemeMode.dark : ThemeMode.light, // Tüm yatay/dikey kaydırmalarda mouse ile tutup sürükleme açık scrollBehavior: const _SurukleScrollDavranisi(), home: const Kabuk(), ); } }