whenInactive function
Inverse of whenActive — the owning feature is active while
feature is not FeatureStatus.active (i.e. .disabled or
.pending). Useful for fallback / "offline" UI features that live
only while their main counterpart is off.
final loginPromptFeature = createFeature(
name: 'LoginPrompt',
optionalDependsOn: [sessionFeature],
)..activation(whenInactive(sessionFeature));
Implementation
ActivationSetup whenInactive(AnyFeature feature) {
return (parentApi, toggle, cleanup) {
final statusStore = parentApi.statusOf(feature);
cleanup.subscribe(statusStore, (_, status) {
unawaited(
toggle(
status != FeatureStatus.active
? ToggleState.active
: ToggleState.inactive,
),
);
}, fireImmediately: true);
};
}