build method
Implementation
@override
ClientState build({required String apiKey, required ClientEntry entry}) {
// final services = ref.watch(workerProvider(apiKey).select(
// (workerState) {
// final listPlanned =
// workerState.planned.where((e) => e.contractId == entry.contractId);
// final acceptId = listPlanned.map((e) => e.servId).toSet();
// return workerState.services
// .where((service) {
// if (acceptId.contains(service.id)) {
// return true;
// } else {
// return false;
// // todo: also add services not in list as stub readOnly, or throw error, or send error to administrator
// }
// })
// .map((entry) => ClientService(
// ref: ref,
// apiKey: apiKey,
// service: entry,
// planned: listPlanned
// .firstWhere((element) => element.servId == entry.id),
// ))
// .toList(growable: false)
// ..sort((a, b) => a.servId.compareTo(b.servId)); // preserve id order
// },
// ));
final workerState = ref.watch(workerProvider(apiKey));
final listPlanned =
workerState.planned.where((e) => e.contractId == entry.contractId);
final acceptId = listPlanned.map((e) => e.servId).toSet();
final services = workerState.services
.where((service) {
if (acceptId.contains(service.id)) {
return true;
} else {
return false;
// todo: also add services not in list as stub readOnly, or throw error, or send error to administrator
}
})
.map((entry) => ClientService(
ref: ref,
apiKey: apiKey,
service: entry,
planned: listPlanned
.firstWhere((element) => element.servId == entry.id),
))
.toList(growable: false)
..sort((a, b) => a.servId.compareTo(b.servId)); // preserve id order
return ClientState(
ref: ref,
apiKey: apiKey,
entry: entry,
services: services,
state: ref.watch(appStateProvider),
worker: ref.read(workerProvider(apiKey).notifier));
}