diff --git a/ui/src/pages/CompanySkills.production.tsx b/ui/src/pages/CompanySkills.production.tsx index cc0ebc79c10..1579df556fc 100644 --- a/ui/src/pages/CompanySkills.production.tsx +++ b/ui/src/pages/CompanySkills.production.tsx @@ -2987,7 +2987,7 @@ export function SkillDetailPage({ // Track unsaved edits so we can float a save bar and warn before the page is // unloaded with a dirty draft (PAP-10907 J). - const savedFileContent = file?.content ?? ""; + const savedFileContent = file?.markdown ? splitFrontmatter(file.content).body : file?.content ?? ""; const isDirty = editMode && Boolean(file?.editable) && draft !== savedFileContent; useEffect(() => { if (!isDirty) return; @@ -3086,7 +3086,7 @@ export function SkillDetailPage({ editMode ? ( <> - diff --git a/ui/src/pages/CompanySkills.test.tsx b/ui/src/pages/CompanySkills.test.tsx index dc9798d06b5..f10fcc72e88 100644 --- a/ui/src/pages/CompanySkills.test.tsx +++ b/ui/src/pages/CompanySkills.test.tsx @@ -23,6 +23,7 @@ import { CompanySkills as ProductionCompanySkills } from "./CompanySkills.produc import { queryKeys } from "../lib/queryKeys"; const readVersion = vi.hoisted(() => vi.fn()); +const editorRoute = vi.hoisted(() => ({ path: undefined as string | undefined, search: "" })); const mockCompanySkillsApi = vi.hoisted(() => ({ version: readVersion, list: vi.fn(), @@ -34,6 +35,7 @@ const mockCompanySkillsApi = vi.hoisted(() => ({ catalogDetail: vi.fn(), catalogFile: vi.fn(), browseProject: vi.fn(), + updateFile: vi.fn(), })); const mockFoldersApi = vi.hoisted(() => ({ list: vi.fn() })); const mockAgentsApi = vi.hoisted(() => ({ list: vi.fn() })); @@ -63,8 +65,8 @@ vi.mock("@/lib/router", () => ({ {children} ), useNavigate: () => vi.fn(), - useParams: () => ({}), - useSearchParams: () => [new URLSearchParams(), vi.fn()], + useParams: () => ({ "*": editorRoute.path }), + useSearchParams: () => [new URLSearchParams(editorRoute.search), vi.fn()], })); vi.mock("@/components/ui/button", () => ({ @@ -134,7 +136,7 @@ vi.mock("../components/MarkdownBody", () => ({ })); vi.mock("../components/MarkdownEditor", () => ({ - MarkdownEditor: ({ value }: { value: string }) =>