diff --git a/amt/api/routes/projects.py b/amt/api/routes/projects.py
index 2ed05440..e4ec6823 100644
--- a/amt/api/routes/projects.py
+++ b/amt/api/routes/projects.py
@@ -26,7 +26,7 @@ async def get_root(
if request.state.htmx:
return templates.TemplateResponse(
- request, "projects/_list.html.j2", {"projects": projects, "next": next, "search": search}
+ request, "projects/_list.html.j2", {"projects": projects, "next": next, "search": search, "limit": limit}
)
return templates.TemplateResponse(
diff --git a/amt/site/templates/projects/_list.html.j2 b/amt/site/templates/projects/_list.html.j2
index c1c29ee3..0940103b 100644
--- a/amt/site/templates/projects/_list.html.j2
+++ b/amt/site/templates/projects/_list.html.j2
@@ -1,6 +1,7 @@
{% for project in projects %}
-
{{ project.name }}
+ {% if loop.last and projects|length == limit %}
+ {{ project.name }}
+ {% else %}
+ {{ project.name }}
+ {% endif %}
{% endfor %}
-{% if projects|length > 0 %}
-More
-{% endif %}
diff --git a/amt/site/templates/projects/index.html.j2 b/amt/site/templates/projects/index.html.j2
index c5e9db20..c4909e24 100644
--- a/amt/site/templates/projects/index.html.j2
+++ b/amt/site/templates/projects/index.html.j2
@@ -19,7 +19,15 @@
id="project-search-input"
/>
-
+
diff --git a/tests/e2e/test_scroll_project.py b/tests/e2e/test_scroll_project.py
index c7c05538..b687a6b3 100644
--- a/tests/e2e/test_scroll_project.py
+++ b/tests/e2e/test_scroll_project.py
@@ -1,5 +1,5 @@
import pytest
-from playwright.sync_api import Page
+from playwright.sync_api import Page, expect
@pytest.mark.slow()
@@ -8,10 +8,12 @@ def test_e2e_scroll_projects(page: Page) -> None:
project_links = page.locator(".project-list > li").count()
- assert 90 <= project_links <= 101
+ assert project_links == 100
+
+ expect(page.locator('[data-marker="last-element"]')).to_be_visible()
with page.expect_response("/projects/?skip=100&search=", timeout=3000) as response_info:
- page.get_by_text("More").scroll_into_view_if_needed()
+ page.locator('[data-marker="last-element"]').scroll_into_view_if_needed()
response = response_info.value
assert response.status == 200