vendor/ibexa/admin-ui/src/lib/Component/EventSubscriber/RenderEventSubscriber.php line 41

Open in your IDE?
  1. <?php
  2. /**
  3. * @copyright Copyright (C) Ibexa AS. All rights reserved.
  4. * @license For full copyright and license information view LICENSE file distributed with this source code.
  5. */
  6. declare(strict_types=1);
  7. namespace Ibexa\AdminUi\Component\EventSubscriber;
  8. use Ibexa\AdminUi\Component\Event\RenderGroupEvent;
  9. use Ibexa\AdminUi\Component\Event\RenderSingleEvent;
  10. use Ibexa\AdminUi\Component\Registry;
  11. use Ibexa\Contracts\TwigComponents\Event\RenderGroupEvent as TwigComponentsRenderGroupEvent;
  12. use Ibexa\Contracts\TwigComponents\Event\RenderSingleEvent as TwigComponentsRenderSingleEvent;
  13. use Symfony\Component\EventDispatcher\EventDispatcherInterface;
  14. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  15. final class RenderEventSubscriber implements EventSubscriberInterface
  16. {
  17. private Registry $registry;
  18. private EventDispatcherInterface $eventDispatcher;
  19. public function __construct(
  20. EventDispatcherInterface $eventDispatcher,
  21. Registry $registry
  22. ) {
  23. $this->registry = $registry;
  24. $this->eventDispatcher = $eventDispatcher;
  25. }
  26. public static function getSubscribedEvents(): array
  27. {
  28. return [
  29. TwigComponentsRenderGroupEvent::class => ['onRenderGroup', 500],
  30. TwigComponentsRenderSingleEvent::class => ['onRenderSingle', 500],
  31. ];
  32. }
  33. public function onRenderGroup(TwigComponentsRenderGroupEvent $event): void
  34. {
  35. $this->eventDispatcher->dispatch(new RenderGroupEvent(
  36. $this->registry,
  37. $event->getGroupName(),
  38. $event->getParameters(),
  39. ), RenderGroupEvent::NAME);
  40. }
  41. public function onRenderSingle(TwigComponentsRenderSingleEvent $event): void
  42. {
  43. $this->eventDispatcher->dispatch(new RenderSingleEvent(
  44. $this->registry,
  45. $event->getGroupName(),
  46. $event->getName(),
  47. $event->getParameters(),
  48. ), RenderSingleEvent::NAME);
  49. }
  50. }