head static method
Inject elements into the document head synchronously
Implementation
static Component head({List<HeadElementData>? elements}) {
if (_stylesInjected || elements == null || elements.isEmpty) {
return const Component.fragment([]);
}
_stylesInjected = true;
final web.HTMLHeadElement head = web.document.head!;
for (final HeadElementData element in elements) {
if (element.tag == 'link') {
final web.HTMLLinkElement link =
web.document.createElement('link') as web.HTMLLinkElement;
if (element.attributes != null) {
for (final MapEntry<String, String> attr in element.attributes!.entries) {
link.setAttribute(attr.key, attr.value);
}
}
head.appendChild(link);
} else if (element.tag == 'style' && element.textContent != null) {
final web.HTMLStyleElement style =
web.document.createElement('style') as web.HTMLStyleElement;
style.textContent = element.textContent!;
head.appendChild(style);
}
}
// Hide loading screen after fonts are ready
_hideLoadingScreenWhenReady();
return const Component.fragment([]);
}