import 'package:fikoyt_akcali_v1/apps/finans/core/models/finans.model.dart'; import 'package:fikoyt_akcali_v1/apps/finans/core/services/finans.servis.dart'; import 'package:fikoyt_akcali_v1/apps/finans/uye/hareketler/hareket-ekle/_logic_hareket_ekle.dart'; import 'package:fikoyt_akcali_v1/apps/finans/uye/hareketler/hareket-ekle/hareket-bilgileri.dart'; import 'package:fikoyt_akcali_v1/apps/finans/uye/hareketler/hareket-ekle/hesap_makinesi.dart'; import 'package:fikoyt_akcali_v1/core/widgets/uygulama_baslik/uygulama_baslik.dart'; import 'package:fikoyt_ui/fikoyt_ui.dart'; import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; import 'package:flutter/services.dart'; import 'package:smooth_page_indicator/smooth_page_indicator.dart'; // class SayfaHareketEkle extends StatefulWidget { // SayfaHareketEkle({super.key, this.animClose}); // void Function({Never returnValue})? animClose; // @override // State createState() => _SayfaHareketEkleState(); // } class SayfaHareketEkle extends StatelessWidget { SayfaHareketEkle({super.key, this.animClose, this.hesap, this.hareketTuru}); FinansServis? finansServis = FikoYTCoreService.servisler.getServis(); HareketEkleService logic = Get.put(HareketEkleService()); final Hesap? hesap; final String? hareketTuru; void Function({Never returnValue})? animClose; @override Widget build(BuildContext context) { SchedulerBinding.instance.addPostFrameCallback((_) { finansServis?.altBaslik.value = "Hareket Ekle"; logic.kyt.value?.hesap.value = hesap; logic.kyt.value?.tipi = hareketTuru ?? logic.kyt.value?.tipi; if (logic.kyt.value?.hesap.value != null) { if (logic.kyt.value?.paraBirimi.value == null) { logic.kyt.value?.paraBirimi.value = logic.kyt.value?.hesap.value?.paraBirimi.value; } else if (logic.kyt.value?.hesap.value?.cokluParaBirimiDestegi != true) { logic.kyt.value?.paraBirimi.value = logic.kyt.value?.hesap.value?.paraBirimi.value; } } FikoYTPageController.getInstance("HareketEkleAnaSayfaIndex", hatirla: false).zipla(0); }); return SafeArea( child: Scaffold( appBar: AppBar( leading: UygulamaBaslikSol( simge: Icon(Icons.arrow_back, color: Colors.white), onPressedSimge: () { if (animClose != null) animClose!(); }, ), title: UygulamaBaslikOrta(), actions: [UygulamaBaslikSag(simge: Icon(Icons.save, color: Colors.white))], backgroundColor: Theme.of(context).extension()?.appBarColor?.withAlpha(230), ), // drawer: finansServis?.solMenuAl(context), backgroundColor: Theme.of(context).extension()?.backgroundColor, // appBarColor: Theme.of(context).extension()?.appBarColor?.withAlpha(230), extendBody: false, extendBodyBehindAppBar: false, body: Stack( children: [ /// BİLGİ: Sayfalar PageView( //! Ne tarafa scroll yani kaydırılabilir olsun scrollDirection: Axis.horizontal, //* Verdiğim elemanları ters sırada yazdır anlamında reverse: false, //? Sayfalar arası geçişler için kullanılır controller: FikoYTPageController.getInstance("HareketEkleAnaSayfaIndex"), //* En ufak bir harekette diğer ekrana geçsin mi anlamında pageSnapping: true, //! Sayfa indexini tutmak için onPageChanged: (index) { // debugPrint('Sayfa indexi : $index'); }, children: [ /// NOT: Hesap Makinesi TusYayilmasiEngelleWidget( shouldBlockKey: (event) { if (event.logicalKey == LogicalKeyboardKey.goBack || event.logicalKey == LogicalKeyboardKey.goHome || event.logicalKey == LogicalKeyboardKey.allCandidates || event.logicalKey == LogicalKeyboardKey.cancel || event.logicalKey == LogicalKeyboardKey.browserBack || event.physicalKey == PhysicalKeyboardKey.escape || event.physicalKey == PhysicalKeyboardKey.exit || event.physicalKey == PhysicalKeyboardKey.browserBack || event.physicalKey == PhysicalKeyboardKey.close || event.physicalKey == PhysicalKeyboardKey.undo) { // Future.delayed(0.ms, () { // setState(() { if (animClose != null) animClose!(); // }); // }); return true; } return true; }, child: HesapMakinesi(), ), /// NOT: Hareket Bilgileri TusYayilmasiEngelleWidget( shouldBlockKey: (event) { if (event.logicalKey == LogicalKeyboardKey.goBack || event.logicalKey == LogicalKeyboardKey.goHome || event.logicalKey == LogicalKeyboardKey.allCandidates || event.logicalKey == LogicalKeyboardKey.cancel || event.logicalKey == LogicalKeyboardKey.browserBack || event.physicalKey == PhysicalKeyboardKey.escape || event.physicalKey == PhysicalKeyboardKey.exit || event.physicalKey == PhysicalKeyboardKey.browserBack || event.physicalKey == PhysicalKeyboardKey.close || event.physicalKey == PhysicalKeyboardKey.undo) { // Future.delayed(0.ms, () { FikoYTPageController.getInstance( "HareketEkleAnaSayfaIndex", ).git(0, duration: (finansServis?.openContainerDuration ?? 1000.ms) * 1.2, curve: Curves.bounceOut); // }); return true; } return true; }, child: HareketBilgileri(), ), /// NOT: Hareket Bilgileri TusYayilmasiEngelleWidget( shouldBlockKey: (event) { if (event.logicalKey == LogicalKeyboardKey.goBack || event.logicalKey == LogicalKeyboardKey.goHome || event.logicalKey == LogicalKeyboardKey.allCandidates || event.logicalKey == LogicalKeyboardKey.cancel || event.logicalKey == LogicalKeyboardKey.browserBack || event.physicalKey == PhysicalKeyboardKey.escape || event.physicalKey == PhysicalKeyboardKey.exit || event.physicalKey == PhysicalKeyboardKey.browserBack || event.physicalKey == PhysicalKeyboardKey.close || event.physicalKey == PhysicalKeyboardKey.undo) { // Future.delayed(0.ms, () { FikoYTPageController.getInstance( "HareketEkleAnaSayfaIndex", ).git(1, duration: (finansServis?.openContainerDuration ?? 1000.ms) * 1.2, curve: Curves.bounceOut); // }); return true; } return true; }, child: HareketBilgileri(), ), ], ), /// BİLGİ: Sayfalama Noktaları Positioned( left: 0, right: 0, bottom: 5, child: Center( child: IgnorePointer( child: SmoothPageIndicator( controller: FikoYTPageController.getInstance("HareketEkleAnaSayfaIndex"), count: 3, effect: CustomizableEffect( activeDotDecoration: DotDecoration( width: 10, height: 4, color: Colors.indigo, rotationAngle: 180, verticalOffset: 0, dotBorder: DotBorder(padding: 2, width: 1, color: Colors.indigo), borderRadius: BorderRadius.only( topLeft: Radius.circular(2), topRight: Radius.circular(16), bottomLeft: Radius.circular(16), bottomRight: Radius.circular(2), ), ), dotDecoration: DotDecoration( width: 10, height: 4, color: Colors.grey, dotBorder: DotBorder(padding: 2, width: 1, color: Colors.grey), borderRadius: BorderRadius.only( topLeft: Radius.circular(2), topRight: Radius.circular(16), bottomLeft: Radius.circular(16), bottomRight: Radius.circular(2), ), // borderRadius: BorderRadius.circular(16), verticalOffset: 0, ), spacing: 6.0, // activeColorOverride: (i) => colors[i], inActiveColorOverride: (i) => Colors.grey, ), ), ), ), ), ], ), ), ); } }