54 lines
1.3 KiB
Swift
54 lines
1.3 KiB
Swift
import Foundation
|
|
|
|
struct NavigationBarLink {
|
|
|
|
let text: String
|
|
|
|
let url: String
|
|
}
|
|
|
|
|
|
struct NavigationBarData {
|
|
|
|
let navigationIconPath: String
|
|
|
|
let iconDescription: String
|
|
|
|
let navigationItems: [NavigationBarLink]
|
|
}
|
|
|
|
|
|
struct NavigationBar {
|
|
|
|
let data: NavigationBarData
|
|
|
|
init(data: NavigationBarData) {
|
|
self.data = data
|
|
}
|
|
|
|
private var items: [NavigationBarLink] {
|
|
data.navigationItems
|
|
}
|
|
|
|
var content: String {
|
|
var result = "<nav class=\"navbar\"><div class=\"navbar-fade\"></div><div class=\"nav-center\">"
|
|
let middleIndex = items.count / 2
|
|
let leftNavigationItems = items[..<middleIndex]
|
|
let rightNavigationItems = items[middleIndex...]
|
|
|
|
for item in leftNavigationItems {
|
|
result += "<a class=\"nav-animate\" href=\"\(item.url)\">\(item.text)</a>"
|
|
}
|
|
|
|
result += "<a id=\"nav-image\" href=\"/\">"
|
|
result += "<img class=\"navbar-icon\" src=\"\(data.navigationIconPath)\" alt=\"\(data.iconDescription)\">"
|
|
result += "</a>"
|
|
|
|
for item in rightNavigationItems {
|
|
result += "<a class=\"nav-animate\" href=\"\(item.url)\">\(item.text)</a>"
|
|
}
|
|
result += "</div></nav>" // Close nav-center, navbar
|
|
return result
|
|
}
|
|
}
|