mirror of
https://github.com/withastro/astro.git
synced 2025-02-03 22:29:08 -05:00
[ci] format
This commit is contained in:
parent
4dee38711c
commit
48bf7c3de6
2 changed files with 35 additions and 28 deletions
|
@ -12,38 +12,41 @@ function isAlreadyHydrated(element) {
|
||||||
|
|
||||||
function createReactElementFromDOMElement(element) {
|
function createReactElementFromDOMElement(element) {
|
||||||
let attrs = {};
|
let attrs = {};
|
||||||
for(const attr of element.attributes) {
|
for (const attr of element.attributes) {
|
||||||
attrs[attr.name] = attr.value;
|
attrs[attr.name] = attr.value;
|
||||||
}
|
}
|
||||||
|
|
||||||
return createElement(element.localName, attrs,
|
return createElement(
|
||||||
Array.from(element.childNodes).map(c => {
|
element.localName,
|
||||||
if(c.nodeType === Node.TEXT_NODE) {
|
attrs,
|
||||||
return c.data;
|
Array.from(element.childNodes)
|
||||||
} else if(c.nodeType === Node.ELEMENT_NODE) {
|
.map((c) => {
|
||||||
return createReactElementFromDOMElement(c)
|
if (c.nodeType === Node.TEXT_NODE) {
|
||||||
} else {
|
return c.data;
|
||||||
return undefined;
|
} else if (c.nodeType === Node.ELEMENT_NODE) {
|
||||||
}
|
return createReactElementFromDOMElement(c);
|
||||||
}).filter(a => !!a)
|
} else {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.filter((a) => !!a)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getChildren(childString, experimentalReactChildren) {
|
function getChildren(childString, experimentalReactChildren) {
|
||||||
if(experimentalReactChildren && childString) {
|
if (experimentalReactChildren && childString) {
|
||||||
let children = [];
|
let children = [];
|
||||||
let template = document.createElement('template');
|
let template = document.createElement('template');
|
||||||
template.innerHTML = childString;
|
template.innerHTML = childString;
|
||||||
for(let child of template.content.children) {
|
for (let child of template.content.children) {
|
||||||
children.push(createReactElementFromDOMElement(child))
|
children.push(createReactElementFromDOMElement(child));
|
||||||
}
|
}
|
||||||
return children;
|
return children;
|
||||||
} else if(childString) {
|
} else if (childString) {
|
||||||
return createElement(StaticHtml, { value: childString });
|
return createElement(StaticHtml, { value: childString });
|
||||||
} else {
|
} else {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default (element) =>
|
export default (element) =>
|
||||||
|
@ -55,7 +58,7 @@ export default (element) =>
|
||||||
for (const [key, value] of Object.entries(slotted)) {
|
for (const [key, value] of Object.entries(slotted)) {
|
||||||
props[key] = createElement(StaticHtml, { value, name: key });
|
props[key] = createElement(StaticHtml, { value, name: key });
|
||||||
}
|
}
|
||||||
|
|
||||||
const componentEl = createElement(
|
const componentEl = createElement(
|
||||||
Component,
|
Component,
|
||||||
props,
|
props,
|
||||||
|
|
|
@ -8,18 +8,22 @@ export default function convert(children) {
|
||||||
let key = 0;
|
let key = 0;
|
||||||
|
|
||||||
function createReactElementFromNode(node) {
|
function createReactElementFromNode(node) {
|
||||||
const childVnodes = Array.isArray(node.children) ? node.children.map(child => {
|
const childVnodes = Array.isArray(node.children)
|
||||||
if(child.type === ELEMENT_NODE) {
|
? node.children
|
||||||
return createReactElementFromNode(child);
|
.map((child) => {
|
||||||
} else if(child.type === TEXT_NODE) {
|
if (child.type === ELEMENT_NODE) {
|
||||||
// 0-length text gets omitted in JSX
|
return createReactElementFromNode(child);
|
||||||
return child.value.trim() ? child.value : undefined;
|
} else if (child.type === TEXT_NODE) {
|
||||||
}
|
// 0-length text gets omitted in JSX
|
||||||
}).filter(n => !!n) : undefined;
|
return child.value.trim() ? child.value : undefined;
|
||||||
|
}
|
||||||
if(node.type === DOCUMENT_NODE) {
|
})
|
||||||
|
.filter((n) => !!n)
|
||||||
|
: undefined;
|
||||||
|
|
||||||
|
if (node.type === DOCUMENT_NODE) {
|
||||||
return createElement(Fragment, {}, childVnodes);
|
return createElement(Fragment, {}, childVnodes);
|
||||||
} else if(node.type === ELEMENT_NODE) {
|
} else if (node.type === ELEMENT_NODE) {
|
||||||
const { class: className, ...props } = node.attributes;
|
const { class: className, ...props } = node.attributes;
|
||||||
return createElement(node.name, { ...props, className, key: `${id}-${key++}` }, childVnodes);
|
return createElement(node.name, { ...props, className, key: `${id}-${key++}` }, childVnodes);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue