Skip to content

Commit d152c35

Browse files
committed
fix: assure header is the first element in Document
1 parent 9d954eb commit d152c35

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

Sources/Ignite/Rendering/ResultBuilders/DocumentBuilder.swift

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,18 @@
1111
public struct DocumentBuilder {
1212
public static func buildBlock(_ components: any DocumentElement...) -> some HTML {
1313
Document {
14-
// If no HTMLHead is provided, add a default one
15-
if !components.contains(where: { $0 is Head }) {
16-
Head()
14+
let (header, components) = components.reduce(
15+
into: (header: Head, components: [any DocumentElement])(Head(), [])
16+
) { partialResult, element in
17+
if let header = element as? Head {
18+
// In case multiple headers were provided only lat one will be used
19+
partialResult.header = header
20+
} else {
21+
partialResult.components.append(element)
22+
}
1723
}
24+
25+
header
1826

1927
// Add all provided components
2028
for component in components {

0 commit comments

Comments
 (0)