diff --git a/lobby/templates/lobby/spa_shell.html b/lobby/templates/lobby/spa_shell.html
index 64050af..dc36c08 100644
--- a/lobby/templates/lobby/spa_shell.html
+++ b/lobby/templates/lobby/spa_shell.html
@@ -6,7 +6,7 @@
-
+
Indlæser Angular app-shell…
diff --git a/lobby/tests.py b/lobby/tests.py
index a3ebaa2..d7324c6 100644
--- a/lobby/tests.py
+++ b/lobby/tests.py
@@ -982,8 +982,22 @@ class UiScreenTests(TestCase):
self.assertEqual(response.status_code, 200)
self.assertContains(response, "")
self.assertContains(response, "data-wpp-shell-route=\"/host\"")
+ self.assertContains(response, "data-wpp-shell-kind=\"host\"")
self.assertContains(response, "/static/frontend/angular/browser/main.js")
+ @override_settings(WPP_SPA_ENABLED=True)
+ def test_host_screen_deeplink_preserves_spa_path_when_feature_flag_enabled(self):
+ self.client.login(username="host_ui", password="secret123")
+
+ response = self.client.get(
+ reverse("lobby:host_screen_deeplink", kwargs={"spa_path": "guess/round-1"})
+ )
+
+ self.assertEqual(response.status_code, 200)
+ self.assertContains(response, "")
+ self.assertContains(response, "data-wpp-shell-route=\"/host/guess/round-1\"")
+ self.assertContains(response, "data-wpp-shell-kind=\"host\"")
+
@override_settings(WPP_SPA_ENABLED=True)
def test_player_screen_can_render_angular_shell_when_feature_flag_enabled(self):
response = self.client.get(reverse("lobby:player_screen"))
@@ -991,6 +1005,7 @@ class UiScreenTests(TestCase):
self.assertEqual(response.status_code, 200)
self.assertContains(response, "")
self.assertContains(response, "data-wpp-shell-route=\"/player\"")
+ self.assertContains(response, "data-wpp-shell-kind=\"player\"")
self.assertContains(response, "/static/frontend/angular/browser/main.js")
diff --git a/lobby/ui_views.py b/lobby/ui_views.py
index 1d5dfad..65a6137 100644
--- a/lobby/ui_views.py
+++ b/lobby/ui_views.py
@@ -5,12 +5,13 @@ from django.shortcuts import render
from fupogfakta.models import Category
-def _render_spa_shell(request, shell_route: str):
+def _render_spa_shell(request, shell_route: str, shell_kind: str):
return render(
request,
"lobby/spa_shell.html",
{
"shell_route": shell_route,
+ "shell_kind": shell_kind,
"spa_asset_base": settings.WPP_SPA_ASSET_BASE,
},
)
@@ -19,7 +20,10 @@ def _render_spa_shell(request, shell_route: str):
@login_required
def host_screen(request, spa_path=None):
if settings.WPP_SPA_ENABLED:
- return _render_spa_shell(request, "/host")
+ host_route = "/host"
+ if spa_path:
+ host_route = f"/host/{spa_path.strip('/')}"
+ return _render_spa_shell(request, host_route, "host")
categories = Category.objects.filter(is_active=True).order_by("name")
return render(request, "lobby/host_screen.html", {"categories": categories})
@@ -27,6 +31,6 @@ def host_screen(request, spa_path=None):
def player_screen(request):
if settings.WPP_SPA_ENABLED:
- return _render_spa_shell(request, "/player")
+ return _render_spa_shell(request, "/player", "player")
return render(request, "lobby/player_screen.html")