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 }