1212use Ibexa \AdminUi \Form \Type \User \FocusModeChangeType ;
1313use Ibexa \AdminUi \UserSetting \FocusMode ;
1414use Ibexa \Contracts \AdminUi \Controller \Controller ;
15+ use Ibexa \Contracts \AdminUi \Event \FocusModeChangedEvent ;
1516use Ibexa \User \UserSetting \UserSettingService ;
17+ use Symfony \Component \EventDispatcher \EventDispatcherInterface ;
1618use Symfony \Component \HttpFoundation \RedirectResponse ;
1719use Symfony \Component \HttpFoundation \Request ;
1820use Symfony \Component \HttpFoundation \Response ;
@@ -22,6 +24,8 @@ final class FocusModeController extends Controller
2224{
2325 private const RETURN_PATH_PARAM = 'returnPath ' ;
2426
27+ private EventDispatcherInterface $ eventDispatcher ;
28+
2529 private UserSettingService $ userSettingService ;
2630
2731 private UrlMatcherInterface $ urlMatcher ;
@@ -33,10 +37,12 @@ final class FocusModeController extends Controller
3337 * @param iterable<\Ibexa\Contracts\AdminUi\FocusMode\RedirectStrategyInterface> $redirectStrategies
3438 */
3539 public function __construct (
40+ EventDispatcherInterface $ eventDispatcher ,
3641 UserSettingService $ userSettingService ,
3742 UrlMatcherInterface $ urlMatcher ,
3843 iterable $ redirectStrategies
3944 ) {
45+ $ this ->eventDispatcher = $ eventDispatcher ;
4046 $ this ->userSettingService = $ userSettingService ;
4147 $ this ->urlMatcher = $ urlMatcher ;
4248 $ this ->redirectStrategies = $ redirectStrategies ;
@@ -70,6 +76,8 @@ public function changeAction(Request $request, ?string $returnPath): Response
7076 $ data ->isEnabled () ? FocusMode::FOCUS_MODE_ON : FocusMode::FOCUS_MODE_OFF
7177 );
7278
79+ $ this ->eventDispatcher ->dispatch (new FocusModeChangedEvent ($ data ->isEnabled ()));
80+
7381 return $ this ->createRedirectToReturnPath ($ request );
7482 }
7583
0 commit comments