github.com/kubri/kubri@v0.5.1-0.20240317001612-bda2aaef967e/website/src/plugins/changelog/theme/ChangelogList/index.tsx (about)

     1  /**
     2   * Copyright (c) Facebook, Inc. and its affiliates.
     3   *
     4   * This source code is licensed under the MIT license found in the
     5   * LICENSE file in the root directory of this source tree.
     6   */
     7  
     8  import { JSX } from 'react'
     9  import clsx from 'clsx'
    10  import { PageMetadata, HtmlClassNameProvider, ThemeClassNames } from '@docusaurus/theme-common'
    11  import BlogLayout from '@theme/BlogLayout'
    12  import BlogListPaginator from '@theme/BlogListPaginator'
    13  import BlogPostItems from '@theme/BlogPostItems'
    14  import SearchMetadata from '@theme/SearchMetadata'
    15  import ChangelogItem from '@theme/ChangelogItem'
    16  import ChangelogListHeader from '@theme/ChangelogList/Header'
    17  import type { Props } from '@theme/BlogListPage'
    18  
    19  function ChangelogListMetadata({ metadata }: Props): JSX.Element {
    20    const { blogTitle, blogDescription } = metadata
    21    return (
    22      <>
    23        <PageMetadata title={blogTitle} description={blogDescription} />
    24        <SearchMetadata tag="blog_posts_list" />
    25      </>
    26    )
    27  }
    28  
    29  function ChangelogListContent({ metadata, items, sidebar }: Props): JSX.Element {
    30    const { blogTitle } = metadata
    31    return (
    32      <BlogLayout sidebar={sidebar}>
    33        <ChangelogListHeader blogTitle={blogTitle} />
    34        <BlogPostItems items={items} component={ChangelogItem} />
    35        <BlogListPaginator metadata={metadata} />
    36      </BlogLayout>
    37    )
    38  }
    39  
    40  export default function ChangelogList(props: Props): JSX.Element {
    41    return (
    42      <HtmlClassNameProvider
    43        className={clsx(ThemeClassNames.wrapper.blogPages, ThemeClassNames.page.blogListPage)}
    44      >
    45        <ChangelogListMetadata {...props} />
    46        <ChangelogListContent {...props} />
    47      </HtmlClassNameProvider>
    48    )
    49  }