diff --git a/quartz/components/Group.tsx b/quartz/components/Group.tsx new file mode 100644 index 000000000..55f122ffa --- /dev/null +++ b/quartz/components/Group.tsx @@ -0,0 +1,16 @@ +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) => ) + + 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 diff --git a/quartz/components/index.ts b/quartz/components/index.ts index cece8e614..80c6a03d7 100644 --- a/quartz/components/index.ts +++ b/quartz/components/index.ts @@ -23,6 +23,7 @@ import Breadcrumbs from "./Breadcrumbs" import Comments from "./Comments" import Flex from "./Flex" import ConditionalRender from "./ConditionalRender" +import Group from "./Group" export { ArticleTitle, @@ -50,4 +51,5 @@ export { Comments, Flex, ConditionalRender, + Group, }