build method

  1. @override
Widget build(
  1. BuildContext context
)
override

Builds the UI for the farmer order management screen.

Displays a loading indicator, an empty state message, or a list of FarmerOrderCard widgets based on the state of the order stream.

Parameters:

Returns: A Widget representing the order management screen UI.

Implementation

@override
Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(title: const Text('Orders')),
    body: StreamBuilder<List<Map<String, dynamic>>>(
      stream: _getFarmerOrders(context),
      builder: (context, snapshot) {
        if (snapshot.connectionState == ConnectionState.waiting) {
          return const Center(child: CircularProgressIndicator());
        }

        if (!snapshot.hasData || snapshot.data!.isEmpty) {
          return const Center(
            child: Text(
              'No orders yet',
              style: TextStyle(fontSize: 18),
            ),
          );
        }

        return ListView.builder(
          padding: const EdgeInsets.all(16),
          itemCount: snapshot.data!.length,
          itemBuilder: (context, index) {
            final orderData = snapshot.data![index];
            return FarmerOrderCard(orderData: orderData);
          },
        );
      },
    ),
  );
}