Skip to content

Nextjs readme#273

Merged
danielmarv merged 33 commits intonext-js-migrationfrom
nextjs-readme
Feb 8, 2026
Merged

Nextjs readme#273
danielmarv merged 33 commits intonext-js-migrationfrom
nextjs-readme

Conversation

@danielmarv
Copy link
Member

This pull request adds a new localized Impressum page to the application, supporting both German and English content. The page dynamically generates metadata based on the user's locale and renders appropriate legal information for each language.

New Impressum page implementation:

Localization and content rendering:

@danielmarv danielmarv self-assigned this Feb 8, 2026
Copilot AI review requested due to automatic review settings February 8, 2026 22:00
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new /impressum route under the localized app router segment, intended to display locale-specific legal information and provide localized SEO metadata.

Changes:

  • Added src/app/[locale]/impressum/page.tsx implementing the Impressum page for DE/EN.
  • Implemented generateMetadata for the new page, including Open Graph metadata.
  • Rendered DE/EN Impressum content (currently via an HTML string + dangerouslySetInnerHTML).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +10 to +15
export async function generateMetadata({ params }: ImpressumPageProps): Promise<Metadata> {
const { locale } = await params

const title = locale === 'de' ? 'Impressum - Open Elements' : 'Impressum - Open Elements'
const description = locale === 'de' ? 'Impressum' : 'Impressum'

Copy link

Copilot AI Feb 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

generateMetadata uses locale conditionals, but both branches return identical title and description, so metadata isn’t actually localized (beyond openGraph.locale). This also makes the meta description extremely short, which is inconsistent with the repo’s SEO expectations (see tests/e2e/seo.spec.ts where descriptions are expected to be meaningful). Consider providing distinct EN/DE title/description strings (and a longer description) or removing the unnecessary conditional if localization isn’t intended here.

Copilot uses AI. Check for mistakes.
Comment on lines +69 to +70
<h1 className="text-center h1">Impressum</h1>
<Image
Copy link

Copilot AI Feb 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The page heading is hard-coded to "Impressum" for all locales. For the English locale the rest of the content is in English, so the H1 should likely be localized as well (e.g., "Imprint" / "Legal notice") to avoid a mixed-language page.

Copilot uses AI. Check for mistakes.
Comment on lines +83 to +87
<div
className="text-blue prose prose-a:text-purple-700 prose-code:bg-yellow prose-blockquote:border-l-0 prose-blockquote:bg-green-100 prose-blockquote:not-italic prose-blockquote:px-8 prose-blockquote:py-3 prose-blockquote:rounded-3xl relative"
style={{ maxWidth: '100%' }}
dangerouslySetInnerHTML={{ __html: contentHtml }}
/>
Copy link

Copilot AI Feb 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dangerouslySetInnerHTML is being used to render static, hard-coded content. Since this isn’t coming from markdown or a CMS, rendering as JSX (or at least storing the content as React nodes) would be safer and easier to maintain, and avoids normalizing dangerouslySetInnerHTML usage for simple content.

Copilot uses AI. Check for mistakes.
Comment on lines +10 to +27
export async function generateMetadata({ params }: ImpressumPageProps): Promise<Metadata> {
const { locale } = await params

const title = locale === 'de' ? 'Impressum - Open Elements' : 'Impressum - Open Elements'
const description = locale === 'de' ? 'Impressum' : 'Impressum'

return {
title,
description,
openGraph: {
type: 'website',
title,
description,
siteName: 'Open Elements',
locale: locale === 'de' ? 'de_DE' : 'en_US',
},
}
}
Copy link

Copilot AI Feb 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There’s Playwright coverage for SEO across a fixed set of routes (tests/e2e/seo.spec.ts), but the new impressum route isn’t included, so regressions in title/description/OpenGraph tags won’t be caught. Consider extending the existing SEO (and/or navigation) E2E tests to include /impressum for both locales.

Copilot uses AI. Check for mistakes.
danielmarv and others added 14 commits February 9, 2026 01:07
Signed-off-by: Daniel Ntege <danientege785@gmail.com>
Signed-off-by: Daniel Ntege <danientege785@gmail.com>
Signed-off-by: Daniel Ntege <danientege785@gmail.com>
Signed-off-by: Daniel Ntege <danientege785@gmail.com>
…ript loading

Signed-off-by: Daniel Ntege <danientege785@gmail.com>
…lean up layout files

Signed-off-by: Daniel Ntege <danientege785@gmail.com>
Signed-off-by: Daniel Ntege <danientege785@gmail.com>
…ocale

Signed-off-by: Daniel Ntege <danientege785@gmail.com>
Signed-off-by: Jessie Ssebuliba <jessiessebuliba@gmail.com>
Signed-off-by: Daniel Ntege <danientege785@gmail.com>
- Added green-arrow.svg with a detailed arrow design and gradients.
- Introduced plane-sm.svg featuring a stylized plane with dashed lines.
- Created plane.svg showcasing a larger plane illustration with gradient strokes.
- Added round11.svg containing two circles with varying opacities.
- Introduced sky-round.svg featuring a large circle with a light blue fill.

Signed-off-by: Daniel Ntege <danientege785@gmail.com>
…logs

- Created German and English markdown files for updates v0.1.7 and v0.1.8.
- Implemented new components for displaying updates, including collapsible sections and truncated views.
- Added functionality to parse markdown files and extract update information.
- Introduced a new data structure for updates, including contributors and assets.
- Enhanced the updates page with metadata generation and localization support.

Signed-off-by: Daniel Ntege <danientege785@gmail.com>
Signed-off-by: Jessie Ssebuliba <jessiessebuliba@gmail.com>
Signed-off-by: Daniel Ntege <danientege785@gmail.com>
- Added green-arrow.svg with a detailed arrow design and gradients.
- Introduced plane-sm.svg featuring a stylized plane with dashed lines.
- Created plane.svg showcasing a larger plane illustration with gradient strokes.
- Added round11.svg containing two circles with varying opacities.
- Introduced sky-round.svg featuring a large circle with a light blue fill.

Signed-off-by: Daniel Ntege <danientege785@gmail.com>
…logs

- Created German and English markdown files for updates v0.1.7 and v0.1.8.
- Implemented new components for displaying updates, including collapsible sections and truncated views.
- Added functionality to parse markdown files and extract update information.
- Introduced a new data structure for updates, including contributors and assets.
- Enhanced the updates page with metadata generation and localization support.

Signed-off-by: Daniel Ntege <danientege785@gmail.com>
Signed-off-by: Daniel Ntege <danientege785@gmail.com>
Signed-off-by: Daniel Ntege <danientege785@gmail.com>
Signed-off-by: Daniel Ntege <danientege785@gmail.com>
Signed-off-by: Daniel Ntege <danientege785@gmail.com>
…ript loading

Signed-off-by: Daniel Ntege <danientege785@gmail.com>
…lean up layout files

Signed-off-by: Daniel Ntege <danientege785@gmail.com>
danielmarv and others added 11 commits February 9, 2026 01:18
Signed-off-by: Daniel Ntege <danientege785@gmail.com>
…ocale

Signed-off-by: Daniel Ntege <danientege785@gmail.com>
Signed-off-by: Jessie Ssebuliba <jessiessebuliba@gmail.com>
Signed-off-by: Daniel Ntege <danientege785@gmail.com>
- Added green-arrow.svg with a detailed arrow design and gradients.
- Introduced plane-sm.svg featuring a stylized plane with dashed lines.
- Created plane.svg showcasing a larger plane illustration with gradient strokes.
- Added round11.svg containing two circles with varying opacities.
- Introduced sky-round.svg featuring a large circle with a light blue fill.

Signed-off-by: Daniel Ntege <danientege785@gmail.com>
…logs

- Created German and English markdown files for updates v0.1.7 and v0.1.8.
- Implemented new components for displaying updates, including collapsible sections and truncated views.
- Added functionality to parse markdown files and extract update information.
- Introduced a new data structure for updates, including contributors and assets.
- Enhanced the updates page with metadata generation and localization support.

Signed-off-by: Daniel Ntege <danientege785@gmail.com>
Signed-off-by: Jessie Ssebuliba <jessiessebuliba@gmail.com>
Signed-off-by: Daniel Ntege <danientege785@gmail.com>
- Added green-arrow.svg with a detailed arrow design and gradients.
- Introduced plane-sm.svg featuring a stylized plane with dashed lines.
- Created plane.svg showcasing a larger plane illustration with gradient strokes.
- Added round11.svg containing two circles with varying opacities.
- Introduced sky-round.svg featuring a large circle with a light blue fill.

Signed-off-by: Daniel Ntege <danientege785@gmail.com>
…logs

- Created German and English markdown files for updates v0.1.7 and v0.1.8.
- Implemented new components for displaying updates, including collapsible sections and truncated views.
- Added functionality to parse markdown files and extract update information.
- Introduced a new data structure for updates, including contributors and assets.
- Enhanced the updates page with metadata generation and localization support.

Signed-off-by: Daniel Ntege <danientege785@gmail.com>
Signed-off-by: Daniel Ntege <danientege785@gmail.com>
@danielmarv danielmarv merged commit 479ffff into next-js-migration Feb 8, 2026
1 of 2 checks passed
@github-project-automation github-project-automation bot moved this from Backlog to Done in Migration to NextJS Feb 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants