diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 5002ad4..f90a162 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -33,5 +33,15 @@ updates:
groups:
frontend:
update-types: [minor, patch]
+ ignore:
+ # TypeScript 7 (the native compiler) drops the JS compiler API that
+ # openapi-typescript uses to generate src/types/api.ts; revisit once
+ # openapi-typescript supports it
+ - dependency-name: typescript
+ update-types: ["version-update:semver-major"]
+ # Node's types should match the Node version the app runs on (CI and
+ # the Docker image use Node 22), not the newest Node release
+ - dependency-name: "@types/node"
+ update-types: ["version-update:semver-major"]
commit-message:
prefix: chore(frontend)
diff --git a/frontend/index.html b/frontend/index.html
index 8fc97c8..f5fdced 100644
--- a/frontend/index.html
+++ b/frontend/index.html
@@ -3,8 +3,11 @@
+
+
+
- frontend
+ Lead Management
diff --git a/frontend/public/apple-touch-icon.png b/frontend/public/apple-touch-icon.png
new file mode 100644
index 0000000..a436c55
Binary files /dev/null and b/frontend/public/apple-touch-icon.png differ
diff --git a/frontend/public/favicon.svg b/frontend/public/favicon.svg
index 6893eb1..c7beee7 100644
--- a/frontend/public/favicon.svg
+++ b/frontend/public/favicon.svg
@@ -1 +1,5 @@
-
\ No newline at end of file
+
diff --git a/frontend/public/icons.svg b/frontend/public/icons.svg
deleted file mode 100644
index e952219..0000000
--- a/frontend/public/icons.svg
+++ /dev/null
@@ -1,24 +0,0 @@
-
diff --git a/frontend/src/pages/leads/LeadListPage.test.tsx b/frontend/src/pages/leads/LeadListPage.test.tsx
index 4563c93..99f6af0 100644
--- a/frontend/src/pages/leads/LeadListPage.test.tsx
+++ b/frontend/src/pages/leads/LeadListPage.test.tsx
@@ -1,7 +1,7 @@
import { screen, waitFor, within } from "@testing-library/react"
import userEvent from "@testing-library/user-event"
import { AxiosError } from "axios"
-import type { AxiosResponse } from "axios"
+import type { AxiosRequestConfig, AxiosResponse } from "axios"
import { describe, expect, it, vi } from "vitest"
import api from "../../api/axios"
@@ -15,9 +15,10 @@ function renderList(url = "/leads") {
// Fake paginated endpoint over `total` leads, 20 per page, mirroring DRF
function paginatedLeads(total: number) {
- return vi.spyOn(api, "get").mockImplementation((_url: string, config?: { params?: Record }) => {
- const page = config?.params?.page ?? 1
- const size = config?.params?.page_size ?? 20
+ return vi.spyOn(api, "get").mockImplementation((_url: string, config?: AxiosRequestConfig) => {
+ const params = config?.params as { page?: number; page_size?: number } | undefined
+ const page = params?.page ?? 1
+ const size = params?.page_size ?? 20
const pages = Math.max(1, Math.ceil(total / size))
if (page > pages) {