Add legal pages, ToS acceptance, and alpha banner
- Journal: Impressum (§5 TMG), Terms of Service, GDPR privacy page - Registration flow: required ToS checkbox, termsAcceptedAt persisted - Alpha banner on Journal (always visible); alpha badge on Planner hero - Footer with legal links + GitHub on both apps - Reduce PII: sendDefaultPii=false, Sentry init only after login (Journal) - Drop Sentry from Planner (no login, no consent possible) - Drop localStorage caching from i18n client detection - Sync SSR i18n resources each request so locale edits HMR without restart Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
6c1cd23358
commit
cc0f44258a
24 changed files with 773 additions and 206 deletions
10
apps/journal/app/components/AlphaBanner.tsx
Normal file
10
apps/journal/app/components/AlphaBanner.tsx
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
import { useTranslation } from "react-i18next";
|
||||
|
||||
export function AlphaBanner() {
|
||||
const { t } = useTranslation("journal");
|
||||
return (
|
||||
<div className="bg-amber-50 border-b border-amber-200 px-4 py-2 text-sm text-amber-900">
|
||||
<p>{t("alpha.message")}</p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
33
apps/journal/app/components/Footer.tsx
Normal file
33
apps/journal/app/components/Footer.tsx
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
import { useTranslation } from "react-i18next";
|
||||
|
||||
export function Footer() {
|
||||
const { t } = useTranslation("journal");
|
||||
return (
|
||||
<footer className="mt-16 border-t border-gray-200 bg-white">
|
||||
<div className="mx-auto max-w-7xl px-4 py-6 text-sm text-gray-500">
|
||||
<nav className="flex flex-wrap items-center gap-x-6 gap-y-2">
|
||||
<a href="/legal/imprint" className="hover:text-gray-700">
|
||||
{t("footer.imprint")}
|
||||
</a>
|
||||
<a href="/legal/privacy" className="hover:text-gray-700">
|
||||
{t("footer.privacy")}
|
||||
</a>
|
||||
<a href="/legal/terms" className="hover:text-gray-700">
|
||||
{t("footer.terms")}
|
||||
</a>
|
||||
<a
|
||||
href="https://github.com/trails-cool/trails"
|
||||
className="hover:text-gray-700"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
{t("footer.source")}
|
||||
</a>
|
||||
<span className="ml-auto text-xs text-gray-400">
|
||||
{t("footer.alpha")}
|
||||
</span>
|
||||
</nav>
|
||||
</div>
|
||||
</footer>
|
||||
);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue