Ну тут вариантов не мало на самом деле,можешь подписаться в одном месте например в use factory далее Стрим используешь как зависимость ,каждая модалка передает в Стрим функцию для открытия ,подписчик её выполняет ,то есть в самой модалке подписки нет