From f628d570924df2816447ee89980080cd7f3c61a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=7BAI=7Df=20D=2E=20M=C3=BCller?= Date: Fri, 12 Jun 2026 15:26:09 +0200 Subject: [PATCH] fix: link SPA contract-card titles to the new detail pages (#611) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The static (no-JS) contracts fragment linked card titles to /contract/, but the SPA replaces those cards on hydration with contracts-page.js markup whose titles were plain text — so with JavaScript enabled there was no visible way to reach or copy a contract link. Card titles are now links (the card's click-to-select handler already ignores clicks on elements); localized tooltip added in EN and DE. Verified in the hydrated preview via Playwright: all 19 card titles link to their detail pages, and a direct /contract/specification URL titles the tab and scrolls to the card. Refs #611 Co-Authored-By: Claude Fable 5 --- website/src/components/contracts-page.js | 4 +-- website/src/components/contracts-page.test.js | 26 +++++++++++++++++++ website/src/translations/de.json | 15 ++++++----- website/src/translations/en.json | 11 ++++---- 4 files changed, 42 insertions(+), 14 deletions(-) create mode 100644 website/src/components/contracts-page.test.js diff --git a/website/src/components/contracts-page.js b/website/src/components/contracts-page.js index e4545bc..4bd9996 100644 --- a/website/src/components/contracts-page.js +++ b/website/src/components/contracts-page.js @@ -175,7 +175,7 @@ export function renderContractsPage() { ` } -function renderContractCard(contract, isSelected) { +export function renderContractCard(contract, isSelected) { const title = getLocalizedField(contract, 'title') const description = getLocalizedField(contract, 'description') const template = getLocalizedField(contract, 'template') @@ -213,7 +213,7 @@ function renderContractCard(contract, isSelected) { />
-

${esc(title)}

+

${esc(title)}