From 5b84e40b1bdcd0774fab92d8767010e5530114fc Mon Sep 17 00:00:00 2001 From: Antony Bouyon Date: Tue, 3 Feb 2026 13:04:02 +0100 Subject: [PATCH] feat: add support for hooks in changelogs Signed-off-by: Antony Bouyon --- .../src/components/ChangelogComponent/index.tsx | 14 ++++++++++---- docs-ui/src/utils/types.ts | 14 +++++++++++--- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/docs-ui/src/components/ChangelogComponent/index.tsx b/docs-ui/src/components/ChangelogComponent/index.tsx index 92068d04f8..1ba5c45a0b 100644 --- a/docs-ui/src/components/ChangelogComponent/index.tsx +++ b/docs-ui/src/components/ChangelogComponent/index.tsx @@ -1,16 +1,22 @@ import { changelog } from '@/utils/changelog'; import { MDXRemote } from 'next-mdx-remote-client/rsc'; import { formattedMDXComponents } from '@/mdx-components'; -import type { Component } from '@/utils/changelog'; +import type { Component, Hook } from '@/utils/changelog'; import { Badge, BreakingBadge, generateChangelogMarkdown, } from '../Changelog/utils'; -export const ChangelogComponent = ({ component }: { component: Component }) => { - const componentChangelog = changelog.filter(c => - c.components.includes(component), +export const ChangelogComponent = ({ + component, + hook, +}: { + component: Component; + hook: Hook; +}) => { + const componentChangelog = changelog.filter( + c => c.components?.includes(component) || c.hooks?.includes(hook), ); const content = `## Changelog diff --git a/docs-ui/src/utils/types.ts b/docs-ui/src/utils/types.ts index 21acc950a0..4fa0d8b1c3 100644 --- a/docs-ui/src/utils/types.ts +++ b/docs-ui/src/utils/types.ts @@ -35,14 +35,22 @@ export type Component = | 'tooltip' | 'visually-hidden'; +export type Hook = 'use-breakpoint'; + export type Version = `${number}.${number}.${number}`; -export interface ChangelogProps { - components: Component[]; +type AtLeastOne = K extends string + ? Pick & Partial> + : never; + +export type ChangelogProps = { description: string; version: Version; prs: string[]; breaking?: boolean; commitSha?: string; migration?: string; -} +} & AtLeastOne<{ + components: Component[]; + hooks: Hook[]; +}>;