From 71ed31fc462e1fc0f048b0ae21afe74c36b99ce3 Mon Sep 17 00:00:00 2001 From: yun-zhi-ztl <15071461069@163.com> Date: Tue, 17 Mar 2026 10:53:00 +0800 Subject: [PATCH] fix: return skill detail back button to search --- web/src/pages/skill-detail.tsx | 7 ++----- web/src/shared/lib/skill-navigation.test.ts | 13 +++++++++++++ web/src/shared/lib/skill-navigation.ts | 8 ++++++++ 3 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 web/src/shared/lib/skill-navigation.test.ts create mode 100644 web/src/shared/lib/skill-navigation.ts diff --git a/web/src/pages/skill-detail.tsx b/web/src/pages/skill-detail.tsx index dd7da5b3..6f1b45c4 100644 --- a/web/src/pages/skill-detail.tsx +++ b/web/src/pages/skill-detail.tsx @@ -13,6 +13,7 @@ import { adminApi, ApiError, skillDownloadApi } from '@/api/client' import { useSubmitSkillReport } from '@/features/report/use-skill-reports' import { formatLocalDateTime } from '@/shared/lib/date-time' import { incrementSkillDownloadCount } from '@/shared/lib/skill-download-cache' +import { getSkillSquareSearch } from '@/shared/lib/skill-navigation' import { formatCompactCount } from '@/shared/lib/number-format' import { resolveDocumentationFilePath } from '@/shared/lib/skill-documentation' import { NamespaceBadge } from '@/shared/components/namespace-badge' @@ -210,11 +211,7 @@ export function SkillDetailPage() { } const handleBack = () => { - if (window.history.length > 1) { - window.history.back() - return - } - navigate({ to: '/search', search: { q: '', sort: 'relevance', page: 0, starredOnly: false } }) + navigate({ to: '/search', search: getSkillSquareSearch() }) } const resolveSkillStatusLabel = (status?: string) => { diff --git a/web/src/shared/lib/skill-navigation.test.ts b/web/src/shared/lib/skill-navigation.test.ts new file mode 100644 index 00000000..396f6b7f --- /dev/null +++ b/web/src/shared/lib/skill-navigation.test.ts @@ -0,0 +1,13 @@ +import { describe, expect, it } from 'vitest' +import { getSkillSquareSearch } from './skill-navigation' + +describe('getSkillSquareSearch', () => { + it('returns the default search params for the skill square', () => { + expect(getSkillSquareSearch()).toEqual({ + q: '', + sort: 'relevance', + page: 0, + starredOnly: false, + }) + }) +}) diff --git a/web/src/shared/lib/skill-navigation.ts b/web/src/shared/lib/skill-navigation.ts new file mode 100644 index 00000000..f3a4de05 --- /dev/null +++ b/web/src/shared/lib/skill-navigation.ts @@ -0,0 +1,8 @@ +export function getSkillSquareSearch() { + return { + q: '', + sort: 'relevance' as const, + page: 0, + starredOnly: false, + } +}