feat: wrap game in centered card, style abandon button, abandon anonymous game on login

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
thibaud-leclere
2026-03-30 19:55:32 +02:00
parent 96adefbb1e
commit 2f5ba701b6
3 changed files with 71 additions and 15 deletions

View File

@@ -0,0 +1,39 @@
<?php
declare(strict_types=1);
namespace App\EventListener;
use App\Entity\Game;
use App\Repository\GameRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\EventDispatcher\Attribute\AsEventListener;
use Symfony\Component\Security\Http\Event\LoginSuccessEvent;
#[AsEventListener]
class AbandonAnonymousGameOnLoginListener
{
public function __construct(
private readonly GameRepository $gameRepository,
private readonly EntityManagerInterface $em,
) {}
public function __invoke(LoginSuccessEvent $event): void
{
$session = $event->getRequest()->getSession();
$gameId = $session->get('current_game_id');
if (!$gameId) {
return;
}
$game = $this->gameRepository->find($gameId);
if ($game && $game->getStatus() === Game::STATUS_IN_PROGRESS) {
$game->abandon();
$this->em->flush();
}
$session->remove('current_game_id');
}
}