import 'dart:developer'; import 'package:enaklo_pos/core/components/buttons.dart'; import 'package:enaklo_pos/core/constants/colors.dart'; import 'package:enaklo_pos/presentation/setting/widgets/settings_title.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:enaklo_pos/data/datasources/product_local_datasource.dart'; import 'package:enaklo_pos/presentation/setting/bloc/sync_order/sync_order_bloc.dart'; import 'package:enaklo_pos/presentation/setting/bloc/sync_product/sync_product_bloc.dart'; class SyncDataPage extends StatefulWidget { const SyncDataPage({super.key}); @override State createState() => _SyncDataPageState(); } class _SyncDataPageState extends State { @override Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.background, body: Column( children: [ SettingsTitle('Sync Data'), Padding( padding: const EdgeInsets.all(16.0), child: Column( children: [ Container( padding: const EdgeInsets.all(16.0), margin: const EdgeInsets.only(bottom: 16.0), decoration: BoxDecoration( color: AppColors.white, borderRadius: BorderRadius.circular(8.0), ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( 'Sinkronasikan Produk', style: TextStyle( color: AppColors.black, fontSize: 16, fontWeight: FontWeight.w500, ), ), BlocConsumer( listener: (context, state) { state.maybeWhen( orElse: () {}, error: (message) { ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text(message), backgroundColor: Colors.red, ), ); }, loaded: (productResponseModel) async { // await ProductLocalDatasource.instance // .deleteAllProducts(); // await ProductLocalDatasource.instance // .insertProducts( // productResponseModel.data!.products!, // ); // ScaffoldMessenger.of(context).showSnackBar( // const SnackBar( // content: Text('Sync Product Success2'), // backgroundColor: Colors.green, // ), // ); }, ); }, builder: (context, state) { return state.maybeWhen( orElse: () { return Button.filled( width: 100, height: 40, onPressed: () { context.read().add( const SyncProductEvent.syncProduct()); }, label: 'Sinkronasikan', ); }, loading: () { return const Center( child: CircularProgressIndicator(), ); }, ); }, ), ], ), ), Container( padding: const EdgeInsets.all(16.0), decoration: BoxDecoration( color: AppColors.white, borderRadius: BorderRadius.circular(8.0), ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( 'Sinkronasikan Pesanan', style: TextStyle( color: AppColors.black, fontSize: 16, fontWeight: FontWeight.w500, ), ), BlocConsumer( listener: (context, state) { state.maybeWhen( orElse: () {}, error: (message) { ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text(message), backgroundColor: Colors.red, ), ); }, loaded: () { // ScaffoldMessenger.of(context).showSnackBar( // const SnackBar( // content: Text('Sync Order Success'), // backgroundColor: Colors.green, // ), // ); }, ); }, builder: (context, state) { return state.maybeWhen( orElse: () { return Button.filled( width: 100, height: 40, onPressed: () { log("🔘 Sync Order button pressed"); log("🔘 SyncOrderBloc instance: ${context.read()}"); context .read() .add(const SyncOrderEvent.syncOrder()); log("🔘 SyncOrderEvent.syncOrder dispatched"); }, label: 'Sinkronasikan', ); }, loading: () { return const Center( child: CircularProgressIndicator(), ); }, ); }, ) ], ), ), ], ), ), ], ), ); } }