Compare commits
1 Commits
master
...
tyiu/selec
| Author | SHA1 | Date | |
|---|---|---|---|
|
d10e5a87de
|
@@ -23,19 +23,21 @@ struct EventActionBar: View {
|
|||||||
let event: NostrEvent
|
let event: NostrEvent
|
||||||
let test_lnurl: String?
|
let test_lnurl: String?
|
||||||
let generator = UIImpactFeedbackGenerator(style: .medium)
|
let generator = UIImpactFeedbackGenerator(style: .medium)
|
||||||
|
let thread: ThreadV2?
|
||||||
|
|
||||||
// just used for previews
|
// just used for previews
|
||||||
@State var sheet: ActionBarSheet? = nil
|
@State var sheet: ActionBarSheet? = nil
|
||||||
@State var confirm_boost: Bool = false
|
@State var confirm_boost: Bool = false
|
||||||
@State var show_share_sheet: Bool = false
|
@State var show_share_sheet: Bool = false
|
||||||
|
|
||||||
@ObservedObject var bar: ActionBarModel
|
@ObservedObject var bar: ActionBarModel
|
||||||
|
|
||||||
init(damus_state: DamusState, event: NostrEvent, bar: ActionBarModel? = nil, test_lnurl: String? = nil) {
|
init(damus_state: DamusState, event: NostrEvent, bar: ActionBarModel? = nil, test_lnurl: String? = nil, thread: ThreadV2? = nil) {
|
||||||
self.damus_state = damus_state
|
self.damus_state = damus_state
|
||||||
self.event = event
|
self.event = event
|
||||||
self.test_lnurl = test_lnurl
|
self.test_lnurl = test_lnurl
|
||||||
_bar = ObservedObject(wrappedValue: bar ?? make_actionbar_model(ev: event.id, damus: damus_state))
|
_bar = ObservedObject(wrappedValue: bar ?? make_actionbar_model(ev: event.id, damus: damus_state))
|
||||||
|
self.thread = thread
|
||||||
}
|
}
|
||||||
|
|
||||||
var lnurl: String? {
|
var lnurl: String? {
|
||||||
@@ -45,10 +47,18 @@ struct EventActionBar: View {
|
|||||||
var body: some View {
|
var body: some View {
|
||||||
HStack {
|
HStack {
|
||||||
if damus_state.keypair.privkey != nil {
|
if damus_state.keypair.privkey != nil {
|
||||||
EventActionButton(img: "bubble.left", col: nil) {
|
let self_replied = (thread != nil && thread!.childEvents.first { $0.pubkey == damus_state.pubkey } != nil)
|
||||||
|
|
||||||
|
EventActionButton(img: "bubble.left", col: self_replied ? Color.blue : nil) {
|
||||||
notify(.reply, event)
|
notify(.reply, event)
|
||||||
}
|
}
|
||||||
.accessibilityLabel(NSLocalizedString("Reply", comment: "Accessibility label for reply button"))
|
.accessibilityLabel(NSLocalizedString("Reply", comment: "Accessibility label for reply button"))
|
||||||
|
if thread != nil && !thread!.childEvents.isEmpty {
|
||||||
|
Text("\(thread!.childEvents.count)")
|
||||||
|
.offset(x: -10)
|
||||||
|
.font(.footnote.weight(.medium))
|
||||||
|
.foregroundColor(self_replied ? Color.blue : Color.gray)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Spacer()
|
Spacer()
|
||||||
ZStack {
|
ZStack {
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ struct MutedEventView: View {
|
|||||||
let damus_state: DamusState
|
let damus_state: DamusState
|
||||||
let event: NostrEvent
|
let event: NostrEvent
|
||||||
let scroller: ScrollViewProxy?
|
let scroller: ScrollViewProxy?
|
||||||
|
let thread: ThreadV2?
|
||||||
|
|
||||||
let selected: Bool
|
let selected: Bool
|
||||||
@Binding var nav_target: String?
|
@Binding var nav_target: String?
|
||||||
@@ -18,7 +19,7 @@ struct MutedEventView: View {
|
|||||||
@State var shown: Bool
|
@State var shown: Bool
|
||||||
@Environment(\.colorScheme) var colorScheme
|
@Environment(\.colorScheme) var colorScheme
|
||||||
|
|
||||||
init(damus_state: DamusState, event: NostrEvent, scroller: ScrollViewProxy?, nav_target: Binding<String?>, navigating: Binding<Bool>, selected: Bool) {
|
init(damus_state: DamusState, event: NostrEvent, scroller: ScrollViewProxy?, nav_target: Binding<String?>, navigating: Binding<Bool>, selected: Bool, thread: ThreadV2?) {
|
||||||
self.damus_state = damus_state
|
self.damus_state = damus_state
|
||||||
self.event = event
|
self.event = event
|
||||||
self.scroller = scroller
|
self.scroller = scroller
|
||||||
@@ -26,6 +27,7 @@ struct MutedEventView: View {
|
|||||||
self._nav_target = nav_target
|
self._nav_target = nav_target
|
||||||
self._navigating = navigating
|
self._navigating = navigating
|
||||||
self._shown = State(initialValue: should_show_event(contacts: damus_state.contacts, ev: event))
|
self._shown = State(initialValue: should_show_event(contacts: damus_state.contacts, ev: event))
|
||||||
|
self.thread = thread
|
||||||
}
|
}
|
||||||
|
|
||||||
var should_mute: Bool {
|
var should_mute: Bool {
|
||||||
@@ -55,7 +57,7 @@ struct MutedEventView: View {
|
|||||||
var Event: some View {
|
var Event: some View {
|
||||||
Group {
|
Group {
|
||||||
if selected {
|
if selected {
|
||||||
SelectedEventView(damus: damus_state, event: event)
|
SelectedEventView(damus: damus_state, event: event, thread: thread)
|
||||||
} else {
|
} else {
|
||||||
EventView(damus: damus_state, event: event, has_action_bar: true)
|
EventView(damus: damus_state, event: event, has_action_bar: true)
|
||||||
.onTapGesture {
|
.onTapGesture {
|
||||||
@@ -106,7 +108,7 @@ struct MutedEventView_Previews: PreviewProvider {
|
|||||||
|
|
||||||
static var previews: some View {
|
static var previews: some View {
|
||||||
|
|
||||||
MutedEventView(damus_state: test_damus_state(), event: test_event, scroller: nil, nav_target: $nav_target, navigating: $navigating, selected: false)
|
MutedEventView(damus_state: test_damus_state(), event: test_event, scroller: nil, nav_target: $nav_target, navigating: $navigating, selected: false, thread: nil)
|
||||||
.frame(width: .infinity, height: 50)
|
.frame(width: .infinity, height: 50)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import SwiftUI
|
|||||||
struct SelectedEventView: View {
|
struct SelectedEventView: View {
|
||||||
let damus: DamusState
|
let damus: DamusState
|
||||||
let event: NostrEvent
|
let event: NostrEvent
|
||||||
|
let thread: ThreadV2?
|
||||||
|
|
||||||
var pubkey: String {
|
var pubkey: String {
|
||||||
event.pubkey
|
event.pubkey
|
||||||
@@ -17,10 +18,11 @@ struct SelectedEventView: View {
|
|||||||
|
|
||||||
@StateObject var bar: ActionBarModel
|
@StateObject var bar: ActionBarModel
|
||||||
|
|
||||||
init(damus: DamusState, event: NostrEvent) {
|
init(damus: DamusState, event: NostrEvent, thread: ThreadV2?) {
|
||||||
self.damus = damus
|
self.damus = damus
|
||||||
self.event = event
|
self.event = event
|
||||||
self._bar = StateObject(wrappedValue: make_actionbar_model(ev: event.id, damus: damus))
|
self._bar = StateObject(wrappedValue: make_actionbar_model(ev: event.id, damus: damus))
|
||||||
|
self.thread = thread
|
||||||
}
|
}
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
@@ -47,8 +49,8 @@ struct SelectedEventView: View {
|
|||||||
EventDetailBar(state: damus, target: event.id, target_pk: event.pubkey)
|
EventDetailBar(state: damus, target: event.id, target_pk: event.pubkey)
|
||||||
Divider()
|
Divider()
|
||||||
}
|
}
|
||||||
|
|
||||||
EventActionBar(damus_state: damus, event: event)
|
EventActionBar(damus_state: damus, event: event, thread: thread)
|
||||||
.padding([.top], 4)
|
.padding([.top], 4)
|
||||||
|
|
||||||
Divider()
|
Divider()
|
||||||
@@ -67,7 +69,7 @@ struct SelectedEventView: View {
|
|||||||
|
|
||||||
struct SelectedEventView_Previews: PreviewProvider {
|
struct SelectedEventView_Previews: PreviewProvider {
|
||||||
static var previews: some View {
|
static var previews: some View {
|
||||||
SelectedEventView(damus: test_damus_state(), event: test_event)
|
SelectedEventView(damus: test_damus_state(), event: test_event, thread: nil)
|
||||||
.padding()
|
.padding()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -263,7 +263,8 @@ struct ThreadV2View: View {
|
|||||||
scroller: reader,
|
scroller: reader,
|
||||||
nav_target: $nav_target,
|
nav_target: $nav_target,
|
||||||
navigating: $navigating,
|
navigating: $navigating,
|
||||||
selected: false
|
selected: false,
|
||||||
|
thread: nil
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}.background(GeometryReader { geometry in
|
}.background(GeometryReader { geometry in
|
||||||
@@ -285,7 +286,8 @@ struct ThreadV2View: View {
|
|||||||
scroller: reader,
|
scroller: reader,
|
||||||
nav_target: $nav_target,
|
nav_target: $nav_target,
|
||||||
navigating: $navigating,
|
navigating: $navigating,
|
||||||
selected: true
|
selected: true,
|
||||||
|
thread: thread
|
||||||
).id("main")
|
).id("main")
|
||||||
|
|
||||||
// MARK: - Responses of the actual event view
|
// MARK: - Responses of the actual event view
|
||||||
@@ -296,7 +298,8 @@ struct ThreadV2View: View {
|
|||||||
scroller: reader,
|
scroller: reader,
|
||||||
nav_target: $nav_target,
|
nav_target: $nav_target,
|
||||||
navigating: $navigating,
|
navigating: $navigating,
|
||||||
selected: false
|
selected: false,
|
||||||
|
thread: nil
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}.padding()
|
}.padding()
|
||||||
|
|||||||
Reference in New Issue
Block a user