All files / src/components/Legal Legal.js

100% Statements 3/3
100% Branches 0/0
100% Functions 1/1
100% Lines 3/3

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43                    2x 9x 9x                                                            
import React from 'react';
import { useTranslation } from 'react-i18next';
import './Legal.css';
 
/**
 * Renders the German legal pages: Impressum and Datenschutzerklärung.
 * Both sections reuse the project-card layout for visual consistency with the rest of the site.
 *
 * @returns {JSX.Element} Fragment containing Impressum and Datenschutz sections.
 */
const Legal = () => {
  const { t } = useTranslation();
  return (
    <>
      <div className="project-container" id="Impressum">
        <h2>{t('legal.impressumHeading')}</h2>
        <div className="project-grid">
          <div className="project-card visible">
            <div className="project-content legal-content">
              {/* Legal text contains links and line-break tags authored in the locale files */}
              <div dangerouslySetInnerHTML={{ __html: t('legal.impressumContent') }} />
            </div>
          </div>
        </div>
      </div>
 
      <div className="project-container" id="Datenschutz">
        <h2>{t('legal.datenschutzHeading')}</h2>
        <div className="project-grid">
          <div className="project-card visible">
            <div className="project-content legal-content">
              {/* Legal text contains links and line-break tags authored in the locale files */}
              <div dangerouslySetInnerHTML={{ __html: t('legal.datenschutzContent') }} />
            </div>
          </div>
        </div>
      </div>
    </>
  );
};
 
export default Legal;