Add group component

This commit is contained in:
Harv 2025-05-03 07:12:03 +00:00 committed by GitHub
parent c238dd16d9
commit 7ad5c16495
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 25 additions and 0 deletions

View File

@ -0,0 +1,23 @@
import { concatenateResources } from "../util/resources"
import { QuartzComponent, QuartzComponentConstructor, QuartzComponentProps } from "./types"
interface GroupConfig {
components: QuartzComponent[]
}
export default ((config: GroupConfig) => {
const Group: QuartzComponent = (props: QuartzComponentProps) =>
config.components
.map((c: QuartzComponent) => ({ component: c }))
.map((it: { component: QuartzComponent} ) => (<it.component {...props} />))
Group.afterDOMLoaded = concatenateResources(
...config.components.map((c) => c.afterDOMLoaded),
)
Group.beforeDOMLoaded = concatenateResources(
...config.components.map((c) => c.beforeDOMLoaded),
)
Group.css = concatenateResources(...config.components.map((c) => c.css))
return Group
}) satisfies QuartzComponentConstructor<GroupConfig>

View File

@ -23,6 +23,7 @@ import Breadcrumbs from "./Breadcrumbs"
import Comments from "./Comments" import Comments from "./Comments"
import Flex from "./Flex" import Flex from "./Flex"
import ConditionalRender from "./ConditionalRender" import ConditionalRender from "./ConditionalRender"
import Group from "./Group"
export { export {
ArticleTitle, ArticleTitle,
@ -50,4 +51,5 @@ export {
Comments, Comments,
Flex, Flex,
ConditionalRender, ConditionalRender,
Group
} }