Add back in support for children (#1486)
* Add back in support for children * Be more careful
This commit is contained in:
parent
64eb61e13a
commit
c766c6b9f6
2 changed files with 5 additions and 12 deletions
|
@ -33,7 +33,7 @@ async function _render(child: any): Promise<any> {
|
|||
// Special: If a child is a function, call it automatically.
|
||||
// This lets you do {() => ...} without the extra boilerplate
|
||||
// of wrapping it in a function and calling it.
|
||||
return await child();
|
||||
return _render(child());
|
||||
} else if (typeof child === 'string') {
|
||||
return child;
|
||||
} else if (!child && child !== 0) {
|
||||
|
@ -143,7 +143,7 @@ export async function renderSlot(result: any, slotted: string, fallback?: any) {
|
|||
|
||||
export async function renderComponent(result: any, displayName: string, Component: unknown, _props: Record<string | number, any>, slots?: any) {
|
||||
Component = await Component;
|
||||
// children = await renderGenerator(children);
|
||||
const children = await renderSlot(result, slots?.default);
|
||||
const { renderers } = result._metadata;
|
||||
|
||||
if (Component && (Component as any).isAstroComponentFactory) {
|
||||
|
@ -179,15 +179,15 @@ export async function renderComponent(result: any, displayName: string, Componen
|
|||
|
||||
let renderer = null;
|
||||
for (const r of renderers) {
|
||||
if (await r.ssr.check(Component, props, null)) {
|
||||
if (await r.ssr.check(Component, props, children)) {
|
||||
renderer = r;
|
||||
}
|
||||
}
|
||||
|
||||
({ html } = await renderer.ssr.renderToStaticMarkup(Component, props, null));
|
||||
({ html } = await renderer.ssr.renderToStaticMarkup(Component, props, children));
|
||||
|
||||
if (!hydrationDirective) {
|
||||
return html;
|
||||
return html.replace(/\<\/?astro-fragment\>/g, '');
|
||||
}
|
||||
|
||||
const astroId = shorthash.unique(html);
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
/**
|
||||
* UNCOMMENT when Component slots lands in new compiler
|
||||
|
||||
import { expect } from 'chai';
|
||||
import cheerio from 'cheerio';
|
||||
import { loadFixture } from './test-utils.js';
|
||||
|
@ -15,7 +12,6 @@ before(async () => {
|
|||
await fixture.build();
|
||||
});
|
||||
|
||||
// TODO: waiting on Component slots
|
||||
describe('Component children', () => {
|
||||
it('Passes string children to framework components', async () => {
|
||||
const html = await fixture.readFile('/strings/index.html');
|
||||
|
@ -74,6 +70,3 @@ describe('Component children', () => {
|
|||
expect($svelte.children(':last-child').text().trim()).to.equal('Goodbye world');
|
||||
});
|
||||
});
|
||||
*/
|
||||
|
||||
it.skip('is skipped', () => {});
|
||||
|
|
Loading…
Reference in a new issue