enrollment-app/lib/presentation/claims_overview/claims_overview_scope.dart
2026-06-04 14:47:40 +05:30

81 lines
2.1 KiB
Dart

import 'package:flutter/material.dart';
import 'claims_collection_kpi.dart';
import 'enrollment_collection_kpi.dart';
/// When true, tab widgets skip scroll/entrance animations (PDF capture).
class ClaimsPdfExportScope extends InheritedWidget {
final bool enabled;
final double? laneWidth;
const ClaimsPdfExportScope({
super.key,
required this.enabled,
this.laneWidth,
required super.child,
});
static bool of(BuildContext context) {
return context
.dependOnInheritedWidgetOfExactType<ClaimsPdfExportScope>()
?.enabled ??
false;
}
static double? laneWidthOf(BuildContext context) {
return context
.dependOnInheritedWidgetOfExactType<ClaimsPdfExportScope>()
?.laneWidth;
}
@override
bool updateShouldNotify(ClaimsPdfExportScope oldWidget) {
return oldWidget.enabled != enabled ||
oldWidget.laneWidth != laneWidth;
}
}
/// Provides parsed KPI data to all Claims Overview tabs.
class ClaimsOverviewScope extends InheritedWidget {
final ClaimsOverviewViewData data;
const ClaimsOverviewScope({
super.key,
required this.data,
required super.child,
});
static ClaimsOverviewViewData of(BuildContext context) {
final scope =
context.dependOnInheritedWidgetOfExactType<ClaimsOverviewScope>();
return scope?.data ?? ClaimsOverviewViewData.empty();
}
@override
bool updateShouldNotify(ClaimsOverviewScope oldWidget) {
return oldWidget.data != data;
}
}
/// Provides parsed enrollment KPI data to the Enrollment tab.
class EnrollmentOverviewScope extends InheritedWidget {
final EnrollmentOverviewViewData data;
const EnrollmentOverviewScope({
super.key,
required this.data,
required super.child,
});
static EnrollmentOverviewViewData of(BuildContext context) {
final scope =
context.dependOnInheritedWidgetOfExactType<EnrollmentOverviewScope>();
return scope?.data ?? EnrollmentOverviewViewData.empty();
}
@override
bool updateShouldNotify(EnrollmentOverviewScope oldWidget) {
return oldWidget.data != data;
}
}