feat(260925-bow): Was-ist-neu-Fenster im Portal-Rahmen
- release-notes.ts: reine Auswahl der Versionsabschnitte aus CHANGELOG.md
- release-notice-actions.ts ('use server'): Abruf und Merken ueber die API
- ReleaseNoticeDialog: barrierefreies Fenster, Eintraege ueber ChangelogView (variant plain)
- ReleaseNoticeHost in AppShell: einmal je Seitenladung, merkt erst beim Schliessen
- Texte releaseNotice in de.json und en.json
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -15,8 +15,19 @@ import { useTheme } from 'next-themes';
|
||||
* uebereinstimmen (mounted-Guard wie in AppShell). Der Markdown-Text kommt
|
||||
* als Prop von der Server-Seite; dieses Modul importiert `@/lib/changelog`
|
||||
* bewusst NICHT, damit der Text nicht in Client-Chunks landet.
|
||||
*
|
||||
* quick-260925-bow: `variant="plain"` laesst Rahmen, Hintergrund und
|
||||
* Innenabstand weg — so rendert das "Was ist neu"-Fenster seine Abschnitte mit
|
||||
* demselben Renderer wie die Seite /changelog (Vorgabe `card`, Seite
|
||||
* unveraendert).
|
||||
*/
|
||||
export function ChangelogView({ markdown }: { markdown: string }) {
|
||||
export function ChangelogView({
|
||||
markdown,
|
||||
variant = 'card',
|
||||
}: {
|
||||
markdown: string;
|
||||
variant?: 'card' | 'plain';
|
||||
}) {
|
||||
const { resolvedTheme } = useTheme();
|
||||
const [mounted, setMounted] = useState(false);
|
||||
|
||||
@@ -27,7 +38,10 @@ export function ChangelogView({ markdown }: { markdown: string }) {
|
||||
const mode: 'light' | 'dark' = mounted && resolvedTheme === 'dark' ? 'dark' : 'light';
|
||||
|
||||
return (
|
||||
<div data-testid="changelog-markdown" className="rounded-md border border-border bg-card p-4">
|
||||
<div
|
||||
data-testid="changelog-markdown"
|
||||
className={variant === 'card' ? 'rounded-md border border-border bg-card p-4' : undefined}
|
||||
>
|
||||
<MDEditor.Markdown
|
||||
source={markdown}
|
||||
rehypePlugins={[[rehypeSanitize]]}
|
||||
|
||||
Reference in New Issue
Block a user