This commit is contained in:
RobinB27
2025-10-23 12:32:29 +02:00
parent 166e9896b5
commit b2de8e74ff
7 changed files with 3 additions and 3 deletions

View File

@@ -0,0 +1,44 @@
import {
RenderTemplate,
StringIndexedObject
} from './rendering';
const renderList = <T extends StringIndexedObject>(
data: T,
template: RenderTemplate,
name: string, id: number
): HTMLElement => {
const parent = renderer( data, template );
parent.id = `${ name }--${ id }`;
return parent;
};
const renderer = <T extends StringIndexedObject>( data: T, template: RenderTemplate ): HTMLElement => {
const parent = document.createElement( template.type );
for ( let i = 0; i < template.cssClasses.length; i++ ) {
parent.classList.add( template.cssClasses[i]! );
}
for ( let i = 0; i < template.children.length; i++ ) {
const element = template.children[i]!;
parent.appendChild( renderer( data, element ) );
}
if ( template.children.length === 0 ) {
if ( template.attribute ) {
parent.textContent = String( data[ template.attribute ] );
} else {
parent.textContent = String( data );
}
}
return parent;
};
export default {
renderList
};