import 'dart:developer'; 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( appBar: AppBar( title: const Text('Sync Data'), ), body: Column( children: [ 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!, ); ScaffoldMessenger.of(context).showSnackBar( const SnackBar( content: Text('Sync Product Success2'), backgroundColor: Colors.green, ), ); }, ); }, builder: (context, state) { return state.maybeWhen( orElse: () { return ElevatedButton( onPressed: () { context .read() .add(const SyncProductEvent.syncProduct()); }, child: const Text('Sync Product')); }, loading: () { return const Center( child: CircularProgressIndicator(), ); }, ); }, ), 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 ElevatedButton( onPressed: () { log("🔘 Sync Order button pressed"); log("🔘 SyncOrderBloc instance: ${context.read()}"); context .read() .add(const SyncOrderEvent.syncOrder()); log("🔘 SyncOrderEvent.syncOrder dispatched"); }, child: const Text('Sync Order'), ); }, loading: () { return const Center( child: CircularProgressIndicator(), ); }, ); }, ) ], ), ); } }