Skip to content

fix: link SPA contract-card titles to the detail pages (#611 follow-up)#613

Merged
rdmueller merged 1 commit into
LLM-Coding:mainfrom
raifdmueller:fix/611-spa-contract-links
Jun 12, 2026
Merged

fix: link SPA contract-card titles to the detail pages (#611 follow-up)#613
rdmueller merged 1 commit into
LLM-Coding:mainfrom
raifdmueller:fix/611-spa-contract-links

Conversation

@raifdmueller

@raifdmueller raifdmueller commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Summary

Follow-up to #612, found through the obvious question "where do I see the change?": the no-JS contracts fragment linked card titles to the new /contract/<id> pages, but the SPA replaces those cards on hydration with contracts-page.js markup whose titles were plain text — with JavaScript enabled there was no visible way to reach or copy a contract link.

Change

  • SPA card titles are now links to /contract/<id> (the card's click-to-select handler already ignores <a> clicks, so selecting via card click is unaffected)
  • Localized tooltip (contracts.permalink) in EN + DE
  • renderContractCard exported for testing; new unit test asserts the title link (TDD, 108/108 pass)

Verification

Playwright against the built preview:

  • /contracts/ hydrated: 19/19 card titles link to their detail page
  • direct /contract/specification/: tab title "Specification — Semantic Anchors", card scrolled into viewport

Refs #611

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • New Features

    • Contract-Titel sind nun anklickbare Permalinks zur jeweiligen Detailseite.
    • Neue Permalink-Beschriftung in Verträgen hinzugefügt.
  • Documentation

    • UI-Texte für Verträge und Onboarding aktualisiert.
    • Formatierung und Zeichensetzung in mehreren Sprachen überarbeitet.

…g#611)

The static (no-JS) contracts fragment linked card titles to
/contract/<id>, 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 <a> 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 LLM-Coding#611

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

Pull request was closed or merged during review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: b1254328-84cc-4079-bf27-0814579f55e5

📥 Commits

Reviewing files that changed from the base of the PR and between db68b06 and f628d57.

📒 Files selected for processing (4)
  • website/src/components/contracts-page.js
  • website/src/components/contracts-page.test.js
  • website/src/translations/de.json
  • website/src/translations/en.json

Walkthrough

Die Änderungen machen renderContractCard exportierbar und aktualisieren den Vertrags-Titelelement zu einem Permalink-Link. Ein Vitest-Test validiert die Link-Ausgabe. Deutsch- und Englisch-Übersetzungszeichenfolgen werden für den neuen contracts.permalink-Schlüssel ergänzt und Onboarding-Textzeichensetzung wird vereinheitlicht.

Changes

Vertrag Permalink-Implementierung und Lokalisierung

Layer / File(s) Zusammenfassung
Vertrag-Permalink-Link und Funktionsexport
website/src/components/contracts-page.js
renderContractCard wird exportiert; der Vertrags-Titel wird in einen Permalink-Link zu contract/${contract.id} mit lokalisiertem title-Attribut (über contracts.permalink) umgewandelt.
Vitest-Validierung des Vertrags-Permalink-Links
website/src/components/contracts-page.test.js
Neuer Testblock mockt ../i18n.js und validiert, dass renderContractCard einen <a>-Link mit import.meta.env.BASE_URL und Pfad contract/specification erzeugt.
Deutsch- und Englisch-Übersetzungszeichenfolgen
website/src/translations/de.json, website/src/translations/en.json
Neuer Schlüssel contracts.permalink wird in beide Sprachdateien eingefügt; contracts.linkedinLink wird angepasst; Onboarding-Texte (onboarding.text0onboarding.text4) werden in ihrer Zeichensetzung aktualisiert (Umstellung auf literale Dash-Zeichen).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • LLM-Coding/Semantic-Anchors#612: Beide PRs aktualisieren die Vertrags-UI zur Generierung von /contract/<id>-Permalink-Links über renderContractCard.
  • LLM-Coding/Semantic-Anchors#488: Beide PRs ändern renderContractCard in website/src/components/contracts-page.js und beeinflussen die Rendering-Logik der Vertrags-Karte.
  • LLM-Coding/Semantic-Anchors#366: Hauptsächliche Änderungen an der Vertrags-Seiten-UI und Vertrags-Karten-Rendering-Logik sind direkt mit der ursprünglichen Implementierung dieser Komponenten verbunden.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed Der Titel beschreibt klar und präzise die Hauptänderung: Verlinken von SPA-Kontraktkarten-Titeln zu Detailseiten, einschließlich einer referenzierten Nachfolge-PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rdmueller rdmueller merged commit 386e555 into LLM-Coding:main Jun 12, 2026
6 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants