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/hesaplar/_hesaplar-logic.dart'; import 'package:fikoyt_akcali_v1/apps/finans/uye/hesaplar/hesap-duzenle/banka-hesap-duzenle.dart'; import 'package:fikoyt_akcali_v1/apps/finans/uye/hesaplar/hesap-duzenle/birikim-hesap-duzenle.dart'; import 'package:fikoyt_akcali_v1/apps/finans/uye/hesaplar/hesap-duzenle/kredili-hesap-duzenle.dart'; import 'package:fikoyt_akcali_v1/apps/finans/uye/hesaplar/hesap-duzenle/mevduat-hesap-duzenle.dart'; import 'package:fikoyt_akcali_v1/apps/finans/uye/hesaplar/hesap-duzenle/nakit-hesap-duzenle.dart'; import 'package:fikoyt_akcali_v1/apps/finans/uye/hesaplar/hesap-duzenle/yatirim-hesap-duzenle.dart'; import 'package:fikoyt_akcali_v1/core/widgets/header_widget/header_widget.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'; class SayfaHesapDuzenle extends StatefulWidget { SayfaHesapDuzenle({super.key, required this.hesapId}); String? hesapId; @override State createState() => _SayfaHesapDuzenleState(); } class _SayfaHesapDuzenleState extends State { FinansServis? finansServis; HesaplarService? logicHesaplar; Rx hesap = Rx(null); @override void initState() { super.initState(); finansServis = FikoYTCoreService.servisler.getServis(); logicHesaplar = Get.put(HesaplarService()); SchedulerBinding.instance.addPostFrameCallback((_) { hesap.value = logicHesaplar?.hesapByIdSync(int.tryParse(widget.hesapId ?? "-1") ?? -1); finansServis?.altBaslik.value = "Hesap Düzenleme"; }); } @override void dispose() { // Get.delete(); super.dispose(); } @override Widget build(BuildContext context) { return FikoYTSliverApp( leading: const UygulamaBaslikSol(), title: UygulamaBaslikOrta(), actions: const [UygulamaBaslikSag()], drawer: finansServis?.solMenuAl(context), backgroundColor: Theme.of(context).extension()?.backgroundColor, appBarColor: Theme.of(context).extension()?.appBarColor?.withAlpha(230), headerExpandedHeight: 250, // stretchMaxHeight: 100, fullyStretchable: true, centerTitle: true, alwaysShowLeadingAndAction: true, alwaysShowTitle: true, curvedBodyRadius: 0, // onStretchTrigger: () async { // context.vRouter.to("/"); // }, /// headerWidget: Obx( () => HeaderWidget( ovalResimUrl: hesap.value?.simgesi ?? "🖋", baslik: hesap.value?.ismi ?? "İsimsiz Hesap", baslikTheme: Theme.of(context).extension()?.copyWith( textColor: Theme.of(context).extension()?.secondaryTextColor, fontWeight: FontWeight.bold, fontSize: 16, ), altBaslik: hesap.value?.aciklama ?? "${hesap.value?.ismi != null ? '${hesap.value?.ismi} İsimli' : 'İsim Verilmemiş'} Finansal Hesabınızı Düzenleyin", altBaslikTheme: Theme.of(context).extension()?.copyWith( textColor: Theme.of(context).extension()?.tertiaryTextColor, fontWeight: FontWeight.normal, fontSize: 12, ), ustKisim: Row( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ Spacer(), FikoYTButton( text: "${hesap.value?.hesapTipi.emoji ?? ''}${hesap.value?.hesapTipi.isim ?? ''}", tema: Theme.of(context).extension()?.copyWith( textColor: Theme.of(context).extension()?.secondaryTextColor, fontWeight: FontWeight.normal, textShadow: [], fontSize: 12, ), ).animate(effects: [MoveEffect(begin: Offset(50, 0))]), ], ), // ovalResimTiklandi: finansServis?.profilResmiDegistir, ), ), headerBottomBar: Container( color: Theme.of(context).extension()?.cardBackgroundColor?.withAlpha(200), child: Row( children: [ FikoYTButton( text: "🗑", tema: Theme.of(context).extension()?.copyWith(edgePadding: EdgeInsets.all(5)), onPressed: () async { AwesomeDialog( context: context, dialogType: DialogType.question, animType: AnimType.scale, headerAnimationLoop: false, title: 'Silme Onayı', titleTextStyle: TextStyle(color: Theme.of(context).extension()?.infoTextColor, fontSize: 16), desc: '${hesap.value?.ismi ?? ""} Hesabı Silinecek. Onaylıyormusunuz?', btnCancelOnPress: () { // context.vRouter.pop(); }, btnCancelColor: Colors.green, btnCancelText: "İptal", btnOkOnPress: () async { await logicHesaplar?.isar?.writeTxn(() async { await logicHesaplar?.hesapSilById(hesap.value?.id ?? -1); /// Başarılı toastification.show( context: FikoYTCoreService.navigatorKey.currentContext, type: ToastificationType.warning, style: ToastificationStyle.fillColored, // title: Text("FikoYT Sistem"), description: Text("${hesap.value?.ismi ?? ""} Hesabı Silindi."), alignment: Alignment.topRight, autoCloseDuration: const Duration(seconds: 4), borderRadius: BorderRadius.circular(4.0), boxShadow: lowModeShadow, showProgressBar: false, dragToClose: true, applyBlurEffect: true, ); context.vRouter.to("/"); }); }, btnOkColor: Colors.red, btnOkText: "Sil", ).show(); }, ), Spacer(), // FikoYTButton( // text: "💾", // tema: Theme.of(context).extension()?.copyWith(edgePadding: EdgeInsets.all(5)), // onPressed: () {}, // ), ], ), ), /// golgeGoster: false, bodyColor: Colors.transparent, bodyMaxWidth: 350, body: [ SizedBox(height: 15), Obx(() { hesap.value; return Builder( builder: (context) { Widget sayfa = SizedBox.shrink(); switch (hesap.value?.hesapTipi) { case HesapTipi.nakit: return SayfaUyeNakitHesapDuzenle(hesap: hesap.value!.obs); case HesapTipi.banka: return SayfaUyeBankaHesapDuzenle(hesap: hesap.value!.obs); case HesapTipi.birikim: return SayfaUyeBirikimHesapDuzenle(hesap: hesap.value!.obs); case HesapTipi.kredili: return SayfaUyeKrediliHesapDuzenle(hesap: hesap.value!.obs); case HesapTipi.mevduat: return SayfaUyeMevduatHesapDuzenle(hesap: hesap.value!.obs); case HesapTipi.yatirim: return SayfaUyeYatirimHesapDuzenle(hesap: hesap.value!.obs); default: return sayfa; } }, ).build(context); }), ///$ ], sliverAltKisim: SizedBox.shrink(), ); } }