Initial commit

This commit is contained in:
2026-09-02 08:21:27 +02:00
commit 84eec0039e
609 changed files with 94880 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
import { PublicLayout } from './PublicLayout'
import { useLegal } from '../../lib/useLegal'
/**
* Strona regulaminu albo polityki prywatnosci.
*
* Tresc pochodzi z gotowych, wbudowanych dokumentow (backend sklada je z danych
* firmy z ustawien). Administrator nie pisze prawa - dokumenty sa zawsze
* obecne, a w miejsce danych firmy podstawiane sa wartosci z konfiguracji.
* Obowiazek informacyjny RODO jest juz czescia tresci polityki, wiec strona
* tylko ja wyswietla.
*/
export function LegalPage({ kind }: { kind: 'terms' | 'privacy' }) {
const legal = useLegal()
const title = kind === 'terms' ? 'Regulamin' : 'Polityka prywatności'
const html = kind === 'terms' ? legal.data?.termsHtml : legal.data?.privacyHtml
return (
<PublicLayout wide>
<article className="space-y-6">
<h1 className="text-2xl font-semibold text-slate-900">{title}</h1>
{legal.isPending ? (
<p className="text-sm text-slate-500">Wczytywanie...</p>
) : (
// tresc jest skladana po stronie serwera z zaufanych stalych i
// escapowanych danych firmy - nie przechodzi przez edytor uzytkownika
<div
className="prose prose-slate max-w-none"
dangerouslySetInnerHTML={{ __html: html ?? '' }}
/>
)}
</article>
</PublicLayout>
)
}