Files
vapor-po/Sources/App/Views/Main.swift

51 lines
917 B
Swift

import Elementary
import ElementaryHTMX
struct MainPage<Inner: HTML>: HTMLDocument {
var title: String { "Purchase Orders" }
let inner: Inner
let displayNav: Bool
let routeHeader: RouteHeaderView
init(
displayNav: Bool = false,
route: ViewRoute,
_ inner: () -> Inner
) {
self.displayNav = displayNav
self.routeHeader = .init(route: route)
self.inner = inner()
}
var head: some HTML {
meta(.charset(.utf8))
script(.src("https://unpkg.com/htmx.org@2.0.4")) {}
script(.src("/js/main.js")) {}
link(.rel(.stylesheet), .href("/css/main.css"))
}
var body: some HTML {
header {
Logo()
if displayNav {
Navbar()
}
}
routeHeader
inner
}
}
extension MainPage: Sendable where Inner: Sendable {}
struct Logo: HTML, Sendable {
var content: some HTML {
div(.id("logo")) {
"HHE - Purchase Orders"
}
}
}