diff --git a/src/index.tsx b/src/index.tsx index ac06e5f..5ee7d81 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -297,14 +297,14 @@ export function define(nameOrDef: string | TagDef, defIfNamed?: TagDef) { const currentProps: Record = {} const Root = makeComponent(name, def, currentProps) + const parts: Record = { Root } + + for (const [part] of Object.entries(def.parts ?? {})) + parts[part] = makeComponent(name, def, currentProps, part) const component = (props: Record) => { for (const key in currentProps) delete currentProps[key] Object.assign(currentProps, props) - const parts: Record = { Root } - - for (const [part] of Object.entries(def.parts ?? {})) - parts[part] = makeComponent(name, def, props, part) return def.render?.({ props, parts }) ?? {props.children} }