*/ class BeforeTemplateRenderedListener implements IEventListener { public function __construct( private IInitialState $initialStateService, private LimitMapper $limitMapper, ) { } public function handle(Event $event): void { if (!$event instanceof BeforeTemplateRenderedEvent) { return; } try { $shareLimit = $this->limitMapper->get($event->getShare()->getToken()); } catch (\Throwable $e) { // No limits are set, ignoring... return; } $this->initialStateService->provideInitialState('download_limit', [ 'limit' => $shareLimit->getLimit(), 'downloads' => $shareLimit->getDownloads(), ]); Util::addStyle(Application::APP_ID, Application::APP_ID . '-public'); Util::addInitScript(Application::APP_ID, Application::APP_ID . '-public'); } }