mirror of
https://github.com/yattee/yattee.git
synced 2025-08-09 04:04:07 +00:00
UI improvements
This commit is contained in:
@@ -2,32 +2,16 @@ import Defaults
|
||||
import Foundation
|
||||
|
||||
extension Defaults.Keys {
|
||||
static let invidiousInstanceID = "default-invidious-instance"
|
||||
static let pipedInstanceID = "default-piped-instance"
|
||||
static let privateAccountID = "default-private-invidious-account"
|
||||
|
||||
static let instances = Key<[Instance]>("instances", default: [
|
||||
.init(
|
||||
app: .piped,
|
||||
id: pipedInstanceID,
|
||||
name: "Public",
|
||||
id: "default-piped-instance",
|
||||
name: "Kavin",
|
||||
apiURL: "https://pipedapi.kavin.rocks",
|
||||
frontendURL: "https://piped.kavin.rocks"
|
||||
),
|
||||
.init(app: .invidious,
|
||||
id: invidiousInstanceID,
|
||||
name: "Private",
|
||||
apiURL: "https://invidious.home.arekf.net")
|
||||
])
|
||||
static let accounts = Key<[Account]>("accounts", default: [
|
||||
.init(
|
||||
id: privateAccountID,
|
||||
instanceID: invidiousInstanceID,
|
||||
name: "arekf",
|
||||
url: "https://invidious.home.arekf.net",
|
||||
sid: "ki55SJbaQmm0bOxUWctGAQLYPQRgk-CXDPw5Dp4oBmI="
|
||||
)
|
||||
])
|
||||
static let accounts = Key<[Account]>("accounts", default: [])
|
||||
static let lastAccountID = Key<Account.ID?>("lastAccountID")
|
||||
static let lastInstanceID = Key<Instance.ID?>("lastInstanceID")
|
||||
static let lastUsedPlaylistID = Key<Playlist.ID?>("lastPlaylistID")
|
||||
@@ -36,9 +20,8 @@ extension Defaults.Keys {
|
||||
static let sponsorBlockCategories = Key<Set<String>>("sponsorBlockCategories", default: Set(SponsorBlockAPI.categories))
|
||||
|
||||
static let favorites = Key<[FavoriteItem]>("favorites", default: [
|
||||
.init(section: .trending("US", nil)),
|
||||
.init(section: .searchQuery("World Discoveries", "", "", "")),
|
||||
.init(section: .searchQuery("Full Body Workout", "", "", "")),
|
||||
.init(section: .trending("US", "default")),
|
||||
.init(section: .channel("UC-lHJZR3Gqxm24_Vd_AJ5Yw", "PewDiePie")),
|
||||
.init(section: .searchQuery("Apple Pie Recipes", "", "", ""))
|
||||
])
|
||||
|
||||
|
@@ -71,7 +71,7 @@ struct FavoriteItemView: View {
|
||||
private var isVisible: Bool {
|
||||
switch item.section {
|
||||
case .subscriptions:
|
||||
return accounts.app.supportsSubscriptions
|
||||
return accounts.app.supportsSubscriptions && accounts.signedIn
|
||||
case .popular:
|
||||
return accounts.app.supportsPopular
|
||||
default:
|
||||
@@ -93,7 +93,7 @@ struct FavoriteItemView: View {
|
||||
|
||||
case let .trending(country, category):
|
||||
let trendingCountry = Country(rawValue: country)!
|
||||
let trendingCategory = category.isNil ? nil : TrendingCategory(rawValue: category!)!
|
||||
let trendingCategory = category.isNil ? nil : TrendingCategory(rawValue: category!)
|
||||
|
||||
return accounts.api.trending(country: trendingCountry, category: trendingCategory)
|
||||
|
||||
|
@@ -33,19 +33,28 @@ struct VerticalCells: View {
|
||||
}
|
||||
|
||||
var adaptiveItem: [GridItem] {
|
||||
[GridItem(.adaptive(minimum: adaptiveGridItemMinimumSize))]
|
||||
[GridItem(.adaptive(minimum: adaptiveGridItemMinimumSize, maximum: adaptiveGridItemMaximumSize))]
|
||||
}
|
||||
|
||||
var adaptiveGridItemMinimumSize: Double {
|
||||
#if os(iOS)
|
||||
return verticalSizeClass == .regular ? 320 : 800
|
||||
#elseif os(tvOS)
|
||||
return 500
|
||||
return 600
|
||||
#else
|
||||
return 320
|
||||
#endif
|
||||
}
|
||||
|
||||
var adaptiveGridItemMaximumSize: Double {
|
||||
#if os(tvOS)
|
||||
return 600
|
||||
#else
|
||||
return .infinity
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
var scrollViewShowsIndicators: Bool {
|
||||
#if !os(tvOS)
|
||||
true
|
||||
@@ -57,7 +66,7 @@ struct VerticalCells: View {
|
||||
|
||||
struct VeticalCells_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
VerticalCells(items: ContentItem.array(of: Video.allFixtures))
|
||||
VerticalCells(items: ContentItem.array(of: Array(repeating: Video.fixture, count: 30)))
|
||||
.injectFixtureEnvironmentObjects()
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user