import 'package:fikoyt_akcali/apps/finans/base_page_mesaici_view.dart'; import 'package:fikoyt_akcali/apps/finans/model/model_hareketler.dart'; import 'package:fikoyt_akcali/apps/finans/pages/hareketler/pages/gun_hareketler/gun_hareketler.dart'; import 'package:fikoyt_akcali/core/fikoyt.service.dart'; import 'package:fikoyt_akcali/core/widgets/fiko_ui/fiko_button/fiko_button.dart'; import 'package:flutter/material.dart'; import 'package:flutter_animate/flutter_animate.dart'; import 'package:get/get.dart'; // ignore: must_be_immutable class AciklamaKartiWidget extends StatelessWidget { AciklamaKartiWidget({super.key, required this.kayit}); Rx? kayit; RxBool siliniyor = false.obs; BasePageMesaiciLogic basePageMesaiciLogic = Get.put(BasePageMesaiciLogic()); // final FikoYTMesaiciService FikoYTService.servisMesaici = Get.put(FikoYTMesaiciService()); final PageMesaiciGunHareketlerLogic gunLogic = Get.put(PageMesaiciGunHareketlerLogic()); final FikoYTService servisFikoYT = FikoYTService(); @override Widget build(BuildContext context) { return Container( width: double.infinity, padding: const EdgeInsets.all(0), constraints: const BoxConstraints(minHeight: 41), alignment: Alignment.topLeft, decoration: BoxDecoration(color: Colors.white, border: Border.all(color: Colors.blue.shade400, width: 1), borderRadius: BorderRadius.circular(5)), margin: const EdgeInsets.symmetric(horizontal: 10, vertical: 3), child: Column( children: [ Container( width: double.infinity, alignment: Alignment.topLeft, padding: const EdgeInsets.all(0), constraints: const BoxConstraints(minHeight: 40), child: FikoButton1( text: "💬 ${(kayit?.value?.altKart?.aciklama ?? '').isEmpty ? 'Açıklama Yok' : kayit?.value?.altKart?.aciklama}", textStrokeColor: Colors.transparent, fontWeight: FontWeight.normal, textColor: Colors.black, ), ), const Divider( height: 2, ), Padding( padding: const EdgeInsets.all(5), child: Row( children: [ const Spacer(), /** */ TextButton( onPressed: () async { if (siliniyor.value == true) return; siliniyor.value = true; siliniyor.refresh(); try { await FikoYTService.servisMesaici.isar?.writeTxn( () async { await Future.delayed(const Duration(milliseconds: 1000)); if (kayit?.value != null) { await FikoYTService.servisMesaici.isar?.modelHareketlers.delete(kayit!.value!.id); ScaffoldMessenger.of(context).showSnackBar( const SnackBar( content: Text( 'Kart Silindi.', style: TextStyle(color: Colors.white), ), backgroundColor: Colors.red, duration: Duration(seconds: 2), // SnackBar'ın ekranda kalma süresi ), ); } }, ); siliniyor.value = false; siliniyor.refresh(); kayit?.refresh(); } catch (e) { // print(e); siliniyor.value = false; siliniyor.refresh(); } finally { siliniyor.value = false; siliniyor.refresh(); await gunLogic.alAktifHareket(); gunLogic.aktifHareket.refresh(); } }, style: TextButton.styleFrom( alignment: Alignment.center, fixedSize: const Size.fromHeight(16), backgroundColor: Colors.red.shade400, shape: const RoundedRectangleBorder( borderRadius: BorderRadius.horizontal( left: Radius.circular(50), right: Radius.circular(50), ), ), textStyle: const TextStyle( fontSize: 10, color: Colors.white, ), ), child: Padding( padding: const EdgeInsets.symmetric(horizontal: 10), child: Obx( () => AnimatedCrossFade( firstChild: const Text( "💾 Sil", style: TextStyle( color: Colors.white, ), ), secondChild: Row( crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: [ Container( width: 16, height: 16, padding: const EdgeInsets.all(2.0), child: const CircularProgressIndicator( color: Colors.white, strokeWidth: 3, ), ), ], ), crossFadeState: siliniyor.value ? CrossFadeState.showSecond : CrossFadeState.showFirst, duration: const Duration(milliseconds: 500), ), ), ), ), ], ), /** */ ), ], ), ).animate(effects: [const FadeEffect()]); } }