fix: resolve semantic documentation deep links
Module Package Release / publish-packages (push) Successful in 12s

This commit is contained in:
2026-08-21 15:54:08 +02:00
parent d6db344d81
commit 7984573c81
2 changed files with 21 additions and 12 deletions
@@ -83,7 +83,17 @@ export default function SemanticDocumentationPage({ settings }: { settings: ApiS
setEntries(nextEntries);
const requestedEntry = searchParams.get("entryId");
const entry = nextEntries.find((item) => item.id === requestedEntry) ?? selectedEntry;
if (entry) selectExisting(entry, nextSubjects);
if (entry) {
selectExisting(entry, nextSubjects);
} else {
const requestedSubject = nextSubjects.find((item) => (
item.reference.module_id === searchParams.get("module")
&& item.reference.subject_kind === searchParams.get("subjectKind")
&& item.reference.subject_id === searchParams.get("subjectId")
&& (item.route_anchor ?? "") === (searchParams.get("routeAnchor") ?? "")
));
if (requestedSubject) selectNew(requestedSubject, nextEntries);
}
} catch (reason) {
setError(adminErrorMessage(reason));
} finally {
@@ -155,8 +165,8 @@ export default function SemanticDocumentationPage({ settings }: { settings: ApiS
setSearchParams({ entryId: entry.id, locale: entry.locale }, { replace: true });
}
function selectNew(subject: SemanticSubjectDescriptor) {
const existing = entries.find((entry) => entry.locale === locale && sameSubject(entry.subject, subject.reference));
function selectNew(subject: SemanticSubjectDescriptor, availableEntries = entries) {
const existing = availableEntries.find((entry) => entry.locale === locale && sameSubject(entry.subject, subject.reference));
if (existing) {
selectExisting(existing);
return;