disposeComponent method
Implementation
void disposeComponent(StarkComponent component) {
logger.info('Disposing component ${component.runtimeType}');
_factories.forEach((key, bind) {
final List<StarkComponent> toDispose = [];
bind.instances.forEach((instanceComponent, Object? instance) {
if (instanceComponent == component) {
if (instance is Disposable) {
instance.dispose();
}
toDispose.add(instanceComponent);
}
});
bind.instances.removeWhere(
(componentKey, Object? instance) => toDispose.contains(componentKey),
);
});
}