Skip to content

Commit f9825af

Browse files
authored
refactor: prepare types for React 19 (#10746)
1 parent e9f0641 commit f9825af

File tree

296 files changed

+1105
-915
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

296 files changed

+1105
-915
lines changed

packages/create-docusaurus/templates/classic-typescript/src/components/HomepageFeatures/index.tsx

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1+
import type {ReactNode} from 'react';
12
import clsx from 'clsx';
23
import Heading from '@theme/Heading';
34
import styles from './styles.module.css';
45

56
type FeatureItem = {
67
title: string;
78
Svg: React.ComponentType<React.ComponentProps<'svg'>>;
8-
description: JSX.Element;
9+
description: ReactNode;
910
};
1011

1112
const FeatureList: FeatureItem[] = [
@@ -55,7 +56,7 @@ function Feature({title, Svg, description}: FeatureItem) {
5556
);
5657
}
5758

58-
export default function HomepageFeatures(): JSX.Element {
59+
export default function HomepageFeatures(): ReactNode {
5960
return (
6061
<section className={styles.features}>
6162
<div className="container">

packages/create-docusaurus/templates/classic-typescript/src/pages/index.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import type {ReactNode} from 'react';
12
import clsx from 'clsx';
23
import Link from '@docusaurus/Link';
34
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
@@ -28,7 +29,7 @@ function HomepageHeader() {
2829
);
2930
}
3031

31-
export default function Home(): JSX.Element {
32+
export default function Home(): ReactNode {
3233
const {siteConfig} = useDocusaurusContext();
3334
return (
3435
<Layout

packages/docusaurus-mdx-loader/src/index.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
* LICENSE file in the root directory of this source tree.
66
*/
77

8+
import type {ReactNode} from 'react';
9+
810
import {mdxLoader} from './loader';
911

1012
import type {TOCItem as TOCItemImported} from './remark/toc/types';
@@ -34,7 +36,7 @@ export type LoadedMDXContent<FrontMatter, Metadata, Assets = undefined> = {
3436
* in priority.
3537
*/
3638
readonly assets: Assets;
37-
(): JSX.Element;
39+
(): ReactNode;
3840
};
3941

4042
export type {MDXPlugin} from './loader';

packages/docusaurus-module-type-aliases/src/index.d.ts

+24-16
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,11 @@ declare module '@theme-original/*';
8484
declare module '@theme-init/*';
8585

8686
declare module '@theme/Error' {
87+
import type {ReactNode} from 'react';
8788
import type {FallbackParams} from '@docusaurus/ErrorBoundary';
8889

8990
export interface Props extends FallbackParams {}
90-
export default function Error(props: Props): JSX.Element;
91+
export default function Error(props: Props): ReactNode;
9192
}
9293

9394
declare module '@theme/Layout' {
@@ -96,17 +97,20 @@ declare module '@theme/Layout' {
9697
export interface Props {
9798
readonly children?: ReactNode;
9899
}
99-
export default function Layout(props: Props): JSX.Element;
100+
export default function Layout(props: Props): ReactNode;
100101
}
101102

102103
declare module '@theme/Loading' {
104+
import type {ReactNode} from 'react';
103105
import type {LoadingComponentProps} from 'react-loadable';
104106

105-
export default function Loading(props: LoadingComponentProps): JSX.Element;
107+
export default function Loading(props: LoadingComponentProps): ReactNode;
106108
}
107109

108110
declare module '@theme/NotFound' {
109-
export default function NotFound(): JSX.Element;
111+
import type {ReactNode} from 'react';
112+
113+
export default function NotFound(): ReactNode;
110114
}
111115

112116
declare module '@theme/Root' {
@@ -115,11 +119,13 @@ declare module '@theme/Root' {
115119
export interface Props {
116120
readonly children: ReactNode;
117121
}
118-
export default function Root({children}: Props): JSX.Element;
122+
export default function Root({children}: Props): ReactNode;
119123
}
120124

121125
declare module '@theme/SiteMetadata' {
122-
export default function SiteMetadata(): JSX.Element;
126+
import type {ReactNode} from 'react';
127+
128+
export default function SiteMetadata(): ReactNode;
123129
}
124130

125131
declare module '@docusaurus/constants' {
@@ -134,13 +140,13 @@ declare module '@docusaurus/ErrorBoundary' {
134140
readonly tryAgain: () => void;
135141
};
136142

137-
export type FallbackFunction = (params: FallbackParams) => JSX.Element;
143+
export type FallbackFunction = (params: FallbackParams) => ReactNode;
138144

139145
export interface Props {
140146
readonly fallback?: FallbackFunction;
141147
readonly children: ReactNode;
142148
}
143-
export default function ErrorBoundary(props: Props): JSX.Element;
149+
export default function ErrorBoundary(props: Props): ReactNode;
144150
}
145151

146152
declare module '@docusaurus/Head' {
@@ -149,11 +155,11 @@ declare module '@docusaurus/Head' {
149155

150156
export type Props = HelmetProps & {children: ReactNode};
151157

152-
export default function Head(props: Props): JSX.Element;
158+
export default function Head(props: Props): ReactNode;
153159
}
154160

155161
declare module '@docusaurus/Link' {
156-
import type {CSSProperties, ComponentProps} from 'react';
162+
import type {CSSProperties, ComponentProps, ReactNode} from 'react';
157163
import type {NavLinkProps as RRNavLinkProps} from 'react-router-dom';
158164

159165
type NavLinkProps = Partial<RRNavLinkProps>;
@@ -169,7 +175,7 @@ declare module '@docusaurus/Link' {
169175
/** Escape hatch in case broken links check doesn't make sense. */
170176
readonly 'data-noBrokenLinkCheck'?: boolean;
171177
};
172-
export default function Link(props: Props): JSX.Element;
178+
export default function Link(props: Props): ReactNode;
173179
}
174180

175181
declare module '@docusaurus/Interpolate' {
@@ -203,7 +209,7 @@ declare module '@docusaurus/Interpolate' {
203209

204210
export default function Interpolate<Str extends string>(
205211
props: InterpolateProps<Str>,
206-
): JSX.Element;
212+
): ReactNode;
207213
}
208214

209215
declare module '@docusaurus/Translate' {
@@ -241,7 +247,7 @@ declare module '@docusaurus/Translate' {
241247

242248
export default function Translate<Str extends string>(
243249
props: TranslateProps<Str>,
244-
): JSX.Element;
250+
): ReactNode;
245251
}
246252

247253
declare module '@docusaurus/router' {
@@ -318,11 +324,13 @@ declare module '@docusaurus/ComponentCreator' {
318324
}
319325

320326
declare module '@docusaurus/BrowserOnly' {
327+
import type {ReactNode} from 'react';
328+
321329
export interface Props {
322-
readonly children?: () => JSX.Element;
323-
readonly fallback?: JSX.Element;
330+
readonly children?: () => ReactNode;
331+
readonly fallback?: ReactNode;
324332
}
325-
export default function BrowserOnly(props: Props): JSX.Element | null;
333+
export default function BrowserOnly(props: Props): ReactNode | null;
326334
}
327335

328336
declare module '@docusaurus/isInternalUrl' {

packages/docusaurus-plugin-content-blog/src/client/contexts.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ export function BlogPostProvider({
7474
children: ReactNode;
7575
content: PropBlogPostContent;
7676
isBlogPostPage?: boolean;
77-
}): JSX.Element {
77+
}): ReactNode {
7878
const contextValue = useContextValue({content, isBlogPostPage});
7979
return <Context.Provider value={contextValue}>{children}</Context.Provider>;
8080
}

packages/docusaurus-plugin-content-blog/src/plugin-content-blog.d.ts

+22-10
Original file line numberDiff line numberDiff line change
@@ -663,6 +663,7 @@ declare module '@docusaurus/plugin-content-blog' {
663663
}
664664

665665
declare module '@theme/BlogPostPage' {
666+
import type {ReactNode} from 'react';
666667
import type {
667668
BlogPostFrontMatter,
668669
BlogSidebar,
@@ -683,18 +684,23 @@ declare module '@theme/BlogPostPage' {
683684
readonly blogMetadata: BlogMetadata;
684685
}
685686

686-
export default function BlogPostPage(props: Props): JSX.Element;
687+
export default function BlogPostPage(props: Props): ReactNode;
687688
}
688689

689690
declare module '@theme/BlogPostPage/Metadata' {
690-
export default function BlogPostPageMetadata(): JSX.Element;
691+
import type {ReactNode} from 'react';
692+
693+
export default function BlogPostPageMetadata(): ReactNode;
691694
}
692695

693696
declare module '@theme/BlogPostPage/StructuredData' {
694-
export default function BlogPostStructuredData(): JSX.Element;
697+
import type {ReactNode} from 'react';
698+
699+
export default function BlogPostStructuredData(): ReactNode;
695700
}
696701

697702
declare module '@theme/BlogListPage' {
703+
import type {ReactNode} from 'react';
698704
import type {Content} from '@theme/BlogPostPage';
699705
import type {
700706
BlogSidebar,
@@ -713,10 +719,11 @@ declare module '@theme/BlogListPage' {
713719
readonly items: readonly {readonly content: Content}[];
714720
}
715721

716-
export default function BlogListPage(props: Props): JSX.Element;
722+
export default function BlogListPage(props: Props): ReactNode;
717723
}
718724

719725
declare module '@theme/BlogListPage/StructuredData' {
726+
import type {ReactNode} from 'react';
720727
import type {Content} from '@theme/BlogPostPage';
721728
import type {
722729
BlogSidebar,
@@ -735,10 +742,11 @@ declare module '@theme/BlogListPage/StructuredData' {
735742
readonly items: readonly {readonly content: Content}[];
736743
}
737744

738-
export default function BlogListPageStructuredData(props: Props): JSX.Element;
745+
export default function BlogListPageStructuredData(props: Props): ReactNode;
739746
}
740747

741748
declare module '@theme/BlogTagsListPage' {
749+
import type {ReactNode} from 'react';
742750
import type {BlogSidebar} from '@docusaurus/plugin-content-blog';
743751
import type {TagsListItem} from '@docusaurus/utils';
744752

@@ -749,10 +757,11 @@ declare module '@theme/BlogTagsListPage' {
749757
readonly tags: TagsListItem[];
750758
}
751759

752-
export default function BlogTagsListPage(props: Props): JSX.Element;
760+
export default function BlogTagsListPage(props: Props): ReactNode;
753761
}
754762

755763
declare module '@theme/Blog/Pages/BlogAuthorsListPage' {
764+
import type {ReactNode} from 'react';
756765
import type {
757766
AuthorItemProp,
758767
BlogSidebar,
@@ -765,10 +774,11 @@ declare module '@theme/Blog/Pages/BlogAuthorsListPage' {
765774
readonly authors: AuthorItemProp[];
766775
}
767776

768-
export default function BlogAuthorsListPage(props: Props): JSX.Element;
777+
export default function BlogAuthorsListPage(props: Props): ReactNode;
769778
}
770779

771780
declare module '@theme/Blog/Pages/BlogAuthorsPostsPage' {
781+
import type {ReactNode} from 'react';
772782
import type {Content} from '@theme/BlogPostPage';
773783
import type {
774784
AuthorItemProp,
@@ -790,10 +800,11 @@ declare module '@theme/Blog/Pages/BlogAuthorsPostsPage' {
790800
readonly items: readonly {readonly content: Content}[];
791801
}
792802

793-
export default function BlogAuthorsPostsPage(props: Props): JSX.Element;
803+
export default function BlogAuthorsPostsPage(props: Props): ReactNode;
794804
}
795805

796806
declare module '@theme/BlogTagsPostsPage' {
807+
import type {ReactNode} from 'react';
797808
import type {Content} from '@theme/BlogPostPage';
798809
import type {
799810
BlogSidebar,
@@ -815,10 +826,11 @@ declare module '@theme/BlogTagsPostsPage' {
815826
readonly items: readonly {readonly content: Content}[];
816827
}
817828

818-
export default function BlogTagsPostsPage(props: Props): JSX.Element;
829+
export default function BlogTagsPostsPage(props: Props): ReactNode;
819830
}
820831

821832
declare module '@theme/BlogArchivePage' {
833+
import type {ReactNode} from 'react';
822834
import type {Content} from '@theme/BlogPostPage';
823835

824836
/** We may add extra metadata or prune some metadata from here */
@@ -832,5 +844,5 @@ declare module '@theme/BlogArchivePage' {
832844
};
833845
}
834846

835-
export default function BlogArchivePage(props: Props): JSX.Element;
847+
export default function BlogArchivePage(props: Props): ReactNode;
836848
}

packages/docusaurus-plugin-content-docs/src/client/doc.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ export function DocProvider({
5050
}: {
5151
children: ReactNode;
5252
content: PropDocContent;
53-
}): JSX.Element {
53+
}): ReactNode {
5454
const contextValue = useContextValue(content);
5555
return <Context.Provider value={contextValue}>{children}</Context.Provider>;
5656
}

packages/docusaurus-plugin-content-docs/src/client/docSidebarItemsExpandedState.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export function DocSidebarItemsExpandedStateProvider({
3636
children,
3737
}: {
3838
children: ReactNode;
39-
}): JSX.Element {
39+
}): ReactNode {
4040
const [expandedItem, setExpandedItem] = useState<number | null>(null);
4141
const contextValue = useMemo(
4242
() => ({expandedItem, setExpandedItem}),

packages/docusaurus-plugin-content-docs/src/client/docsPreferredVersion.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ function DocsPreferredVersionContextProviderUnsafe({
163163
children,
164164
}: {
165165
children: ReactNode;
166-
}): JSX.Element {
166+
}): ReactNode {
167167
const value = useContextValue();
168168
return <Context.Provider value={value}>{children}</Context.Provider>;
169169
}
@@ -176,7 +176,7 @@ export function DocsPreferredVersionContextProvider({
176176
children,
177177
}: {
178178
children: ReactNode;
179-
}): JSX.Element {
179+
}): ReactNode {
180180
return (
181181
<DocsPreferredVersionContextProviderUnsafe>
182182
{children}

packages/docusaurus-plugin-content-docs/src/client/docsSidebar.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export function DocsSidebarProvider({
3030
children: ReactNode;
3131
name: string | undefined;
3232
items: PropSidebar | undefined;
33-
}): JSX.Element {
33+
}): ReactNode {
3434
const stableValue: ContextValue | null = useMemo(
3535
() => (name && items ? {name, items} : null),
3636
[name, items],

packages/docusaurus-plugin-content-docs/src/client/docsUtils.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* LICENSE file in the root directory of this source tree.
66
*/
77

8-
import {useMemo} from 'react';
8+
import {type ReactNode, useMemo} from 'react';
99
import {matchPath, useLocation} from '@docusaurus/router';
1010
import renderRoutes from '@docusaurus/renderRoutes';
1111
import {
@@ -363,7 +363,7 @@ Available doc ids are:
363363
*/
364364
export function useDocRootMetadata({route}: DocRootProps): null | {
365365
/** The element that should be rendered at the current location. */
366-
docElement: JSX.Element;
366+
docElement: ReactNode;
367367
/**
368368
* The name of the sidebar associated with the current doc. `sidebarName` and
369369
* `sidebarItems` correspond to the value of {@link useDocsSidebar}.

packages/docusaurus-plugin-content-docs/src/client/docsVersion.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export function DocsVersionProvider({
2020
}: {
2121
children: ReactNode;
2222
version: PropVersionMetadata | null;
23-
}): JSX.Element {
23+
}): ReactNode {
2424
return <Context.Provider value={version}>{children}</Context.Provider>;
2525
}
2626

0 commit comments

Comments
 (0)