Reorganize targets into LuminateUI with Components and Utilities
This commit is contained in:
parent
cd2c435a04
commit
662ec0caac
19 changed files with 56 additions and 63 deletions
|
|
@ -59,26 +59,7 @@ let package = Package(
|
|||
.product(name: "Adwaita", package: "adwaita-swift"),
|
||||
]
|
||||
),
|
||||
.target(
|
||||
name: "LuminateHome",
|
||||
dependencies: [
|
||||
"LuminateCore",
|
||||
"LuminateDI",
|
||||
"LuminateUI",
|
||||
"LuminateObservationMacros",
|
||||
.product(name: "Adwaita", package: "adwaita-swift"),
|
||||
]
|
||||
),
|
||||
.target(
|
||||
name: "LuminateLibrary",
|
||||
dependencies: [
|
||||
"LuminateCore",
|
||||
"LuminateDI",
|
||||
"LuminateUI",
|
||||
"LuminateObservationMacros",
|
||||
.product(name: "Adwaita", package: "adwaita-swift"),
|
||||
]
|
||||
),
|
||||
|
||||
.target(
|
||||
name: "LuminatePlayer",
|
||||
dependencies: [
|
||||
|
|
@ -92,8 +73,6 @@ let package = Package(
|
|||
.executableTarget(
|
||||
name: "Luminate",
|
||||
dependencies: [
|
||||
"LuminateHome",
|
||||
"LuminateLibrary",
|
||||
"LuminatePlayer",
|
||||
"LuminateUI",
|
||||
"LuminateDI",
|
||||
|
|
|
|||
|
|
@ -2,8 +2,6 @@ import Adwaita
|
|||
import Foundation
|
||||
import LuminateCore
|
||||
import LuminateDI
|
||||
import LuminateHome
|
||||
import LuminateLibrary
|
||||
import LuminatePlayer
|
||||
import LuminateUI
|
||||
|
||||
|
|
@ -20,6 +18,7 @@ struct Luminate: App {
|
|||
if let store = try? SQLiteStore(dbURL: SQLiteStore.defaultDatabaseURL()) {
|
||||
DIContainer.shared.register(\.persistence, value: store)
|
||||
}
|
||||
DIContainer.shared.register(\.imageService, value: ImageService())
|
||||
DIContainer.shared.register(\.pageAnimationTracker, value: PageAnimationTracker())
|
||||
}
|
||||
|
||||
|
|
@ -41,9 +40,6 @@ struct Luminate: App {
|
|||
ServerSetupView { client, id in
|
||||
DIContainer.shared.register(\.client, value: client)
|
||||
DIContainer.shared.register(\.userId, value: id)
|
||||
DIContainer.shared.register(\.imageService, value: ImageService())
|
||||
DIContainer.shared.register(
|
||||
\.pageAnimationTracker, value: PageAnimationTracker())
|
||||
|
||||
self.client = client
|
||||
self.userId = id
|
||||
|
|
@ -75,8 +71,6 @@ struct Luminate: App {
|
|||
|
||||
DIContainer.shared.register(\.client, value: client)
|
||||
DIContainer.shared.register(\.userId, value: auth.userId)
|
||||
DIContainer.shared.register(\.imageService, value: ImageService())
|
||||
DIContainer.shared.register(\.pageAnimationTracker, value: PageAnimationTracker())
|
||||
|
||||
self.client = client
|
||||
self.userId = auth.userId
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import Adwaita
|
||||
import LuminateCore
|
||||
import LuminateDI
|
||||
import LuminateUI
|
||||
|
||||
public struct HomeView: View {
|
||||
|
||||
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
import Adwaita
|
||||
import LuminateCore
|
||||
import LuminateUI
|
||||
|
||||
public struct LibraryPage: View {
|
||||
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
import Adwaita
|
||||
import Foundation
|
||||
import LuminateCore
|
||||
|
||||
struct LibraryGrid: View {
|
||||
|
||||
var libraries: [Components.Schemas.BaseItemDto]
|
||||
@Binding var navigation: NavigationStack<Page>
|
||||
var title: String?
|
||||
|
||||
var view: Body {
|
||||
VStack(spacing: 16) {
|
||||
Text(title ?? "Libraries")
|
||||
.title3()
|
||||
.halign(.start)
|
||||
.padding(10, .horizontal)
|
||||
FlowBox(libraries) { library in
|
||||
HomePosterCell(item: library)
|
||||
}
|
||||
.columnSpacing(16)
|
||||
.rowSpacing(16)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
import Adwaita
|
||||
import LuminateCore
|
||||
|
||||
public struct LuminateLibrary {}
|
||||
34
Sources/LuminateUI/Components/LibraryGrid.swift
Normal file
34
Sources/LuminateUI/Components/LibraryGrid.swift
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
import Adwaita
|
||||
import Foundation
|
||||
import LuminateCore
|
||||
|
||||
public struct LibraryGrid: View {
|
||||
|
||||
public var libraries: [Components.Schemas.BaseItemDto]
|
||||
@Binding public var navigation: NavigationStack<Page>
|
||||
public var title: String?
|
||||
|
||||
public init(
|
||||
libraries: [Components.Schemas.BaseItemDto],
|
||||
navigation: Binding<NavigationStack<Page>>,
|
||||
title: String? = nil
|
||||
) {
|
||||
self.libraries = libraries
|
||||
_navigation = navigation
|
||||
self.title = title
|
||||
}
|
||||
|
||||
public var view: Body {
|
||||
VStack(spacing: 16) {
|
||||
Text(title ?? "Libraries")
|
||||
.title3()
|
||||
.halign(.start)
|
||||
.padding(10, .horizontal)
|
||||
FlowBox(libraries) { library in
|
||||
HomePosterCell(item: library)
|
||||
}
|
||||
.columnSpacing(16)
|
||||
.rowSpacing(16)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,14 +2,26 @@ import Adwaita
|
|||
import Foundation
|
||||
import LuminateCore
|
||||
|
||||
struct MediaRow: View {
|
||||
public struct MediaRow: View {
|
||||
|
||||
var title: String
|
||||
var items: [Components.Schemas.BaseItemDto]
|
||||
@Binding var navigation: NavigationStack<Page>
|
||||
var onSeeAll: (() -> Void)?
|
||||
public var title: String
|
||||
public var items: [Components.Schemas.BaseItemDto]
|
||||
@Binding public var navigation: NavigationStack<Page>
|
||||
public var onSeeAll: (() -> Void)?
|
||||
|
||||
var view: Body {
|
||||
public init(
|
||||
title: String,
|
||||
items: [Components.Schemas.BaseItemDto],
|
||||
navigation: Binding<NavigationStack<Page>>,
|
||||
onSeeAll: (() -> Void)? = nil
|
||||
) {
|
||||
self.title = title
|
||||
self.items = items
|
||||
_navigation = navigation
|
||||
self.onSeeAll = onSeeAll
|
||||
}
|
||||
|
||||
public var view: Body {
|
||||
VStack(spacing: 16) {
|
||||
HStack {
|
||||
Text(title)
|
||||
Loading…
Reference in a new issue