Skip to content

Orders Providers

Source: pharmanet/lib/core/providers/order_provider.dart

Provider Reference

Provider Type Description
ordersProvider StateNotifierProvider<AsyncValue<List<Order>>> Order list with CRUD actions
orderStreamProvider StreamProvider<List<Map<String, dynamic>>> Real-time order updates
orderDetailsProvider FutureProvider.family<Map<String, dynamic>, String> Single order detail

Order Stream (Real-time)

final orderStreamProvider = StreamProvider<List<Map<String, dynamic>>>((ref) {
  final userId = ref.watch(currentUserProvider)?.id;
  if (userId == null) return Stream.value([]);

  return supabase
    .from('orders')
    .stream(primaryKey: ['id'])
    .eq('user_id', userId)
    .order('created_at', ascending: false);
});

Orders update in real-time as sellers/admins change order statuses.

Usage

final ordersAsync = ref.watch(ordersProvider);
final orders = ref.watch(orderStreamProvider);
final details = ref.watch(orderDetailsProvider(orderId));