47 lines
1.1 KiB
Swift
47 lines
1.1 KiB
Swift
//
|
|
// NavigationSplitView.swift
|
|
// MacBackend
|
|
//
|
|
// Created by david-swift on 18.09.2024.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
/// A navigation split view widget.
|
|
public struct NavigationSplitView: SwiftUIWidget {
|
|
|
|
/// The sidebar view.
|
|
var sidebar: Body
|
|
/// The detail view.
|
|
var detail: Body
|
|
|
|
/// The wrapped views.
|
|
public var wrappedViews: [String: Meta.AnyView] {
|
|
["sidebar": sidebar, "detail": detail]
|
|
}
|
|
|
|
/// Initialize the navigation split view.
|
|
/// - Parameters:
|
|
/// - sidebar: The sidebar view.
|
|
/// - detail: The detail view.
|
|
public init(
|
|
@Meta.ViewBuilder sidebar: () -> Body,
|
|
@Meta.ViewBuilder detail: () -> Body
|
|
) {
|
|
self.detail = detail()
|
|
self.sidebar = sidebar()
|
|
}
|
|
|
|
/// Get the SwiftUI view.
|
|
/// - Parameter properties: The widget data.
|
|
/// - Returns: The SwiftUI view.
|
|
public static func view(properties: Self) -> some SwiftUI.View {
|
|
SwiftUI.NavigationSplitView {
|
|
MacBackendView("sidebar")
|
|
} detail: {
|
|
MacBackendView("detail")
|
|
}
|
|
}
|
|
|
|
}
|