Skip to content

Commit

Permalink
feat: added copy to clipboard, fixed pages not showing sometines
Browse files Browse the repository at this point in the history
  • Loading branch information
danielbady committed May 24, 2024
1 parent c6a2f5c commit 4542a94
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,12 @@ public struct PlaylistDetailsFeature: Feature {
if let group = content.groups.value?.first(where: { $0.default ?? false }) ?? content.groups.value?.first,
let variant = group.variants.value?.first {
if let epId = playlistHistory.value?.epId {
if let page = variant.pagings.value?.first(where: { ($0.items.value ?? []).contains(where: { $0.id.rawValue == epId }) }),
if let page = variant.pagings.value?.first(where: {
if let output = $0.items.value {
return output.contains(where: { $0.id.rawValue == epId })
}
return true
}),
let item = page.items.value?.first(where: { $0.id.rawValue == epId }) {
return .resume(group.id, variant.id, page.id, item.id, item.title ?? "", playlistHistory.value?.timestamp ?? 0.0)
}
Expand Down
79 changes: 53 additions & 26 deletions Sources/Features/Settings/Components/Logs.swift
Original file line number Diff line number Diff line change
Expand Up @@ -155,45 +155,61 @@ extension Logs {
public let store: StoreOf<Logs>

@Dependency(\.dateFormatter) var dateFormatter

@SwiftUI.State var showCopyAlert = false

@MainActor
public init(store: StoreOf<Logs>) {
self.store = store
}

@MainActor public var body: some SwiftUI.View {
ScrollView(.vertical) {
LazyVStack(spacing: 12) {
WithViewStore(store, observe: \.selected) { viewStore in
if viewStore.logsEmpty {
Text("No logs available.")
} else {
_VariadicView.Tree(Layout()) {
switch viewStore.state {
case let .system(events):
ForEach(events, id: \.timestamp) { event in
eventRow(
level: event.level.rawValue,
levelColor: event.level.color,
timeStamp: event.timestamp,
message: event.message
)
}
case let .module(_, _, events):
ForEach(events, id: \.timestamp) { event in
eventRow(
level: event.level.rawValue,
levelColor: event.level.color,
timeStamp: event.timestamp,
message: event.body
)
ZStack(alignment: .bottom) {
ScrollView(.vertical) {
LazyVStack(spacing: 12) {
WithViewStore(store, observe: \.selected) { viewStore in
if viewStore.logsEmpty {
Text("No logs available.")
} else {
_VariadicView.Tree(Layout()) {
switch viewStore.state {
case let .system(events):
ForEach(events, id: \.timestamp) { event in
eventRow(
level: event.level.rawValue,
levelColor: event.level.color,
timeStamp: event.timestamp,
message: event.message
)
}
case let .module(_, _, events):
ForEach(events, id: \.timestamp) { event in
eventRow(
level: event.level.rawValue,
levelColor: event.level.color,
timeStamp: event.timestamp,
message: event.body
)
}
}
}
}
}
}
.padding()
}
if showCopyAlert {
VStack {
Text("Copied to clipboard!")
}
.transition(.opacity)
.padding()
.background(Theme.pastelOrange)
.foregroundColor(.white)
.clipShape(RoundedCorners(12))
.shadow(radius: 10)
.offset(y: -20)
}
.padding()
}
.moduleListsSheet(
store.scope(
Expand Down Expand Up @@ -300,6 +316,17 @@ extension Logs {
Text(message)
.font(.footnote)
.frame(maxWidth: .infinity, alignment: .leading)
.onLongPressGesture {
UIPasteboard.general.setValue(message, forPasteboardType: "public.plain-text")
withAnimation {
showCopyAlert = true
}
DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
withAnimation {
self.showCopyAlert = false
}
}
}
}
.frame(maxWidth: .infinity)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,7 @@ private struct VersionView: View {
Text(
"""
Design and developed by \
[@MochiTeam](https://MochiTeam.dev) \
& \
[contributors](https://github.com/Mochi-Team/mochi/contributors)
[the community](https://mochisite.vercel.app)
"""
)
.multilineTextAlignment(.center)
Expand Down

0 comments on commit 4542a94

Please sign in to comment.