Files
CloudHome-Ops/lib/providers/devices_provider.dart

34 lines
1.1 KiB
Dart
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../models/alert.dart';
import '../models/device.dart';
import '../services/device_service.dart';
/// DeviceService 提供者。
final deviceServiceProvider =
Provider<DeviceService>((ref) => DeviceService());
/// 设备列表提供者(下拉刷新时调用 [ProviderRef.refresh] 即可)。
final devicesProvider = FutureProvider<List<Device>>((ref) {
return ref.watch(deviceServiceProvider).fetchDevices();
});
/// 按门店筛选的设备列表提供者(参数为门店 orgId,null 表示全部门店)。
final devicesByStoreProvider =
FutureProvider.family<List<Device>, String?>((ref, storeOrgId) {
return ref
.watch(deviceServiceProvider)
.fetchDevices(storeOrgId: storeOrgId);
});
/// 设备详情提供者(按设备 ID 参数化)。
final deviceDetailProvider =
FutureProvider.family<Device, String>((ref, deviceId) {
return ref.watch(deviceServiceProvider).fetchDeviceById(deviceId);
});
/// 告警列表提供者。
final alertsProvider = FutureProvider<List<Alert>>((ref) {
return ref.watch(deviceServiceProvider).fetchAlerts();
});