cealning up sent message ux
This commit is contained in:
@@ -105,9 +105,14 @@ struct CircleFooterView: View {
|
||||
x:0,
|
||||
y:self.selectedFriendIndex == nil ? 150 : 0
|
||||
)
|
||||
.onChange(of: self.selectedFriendIndex) {newValue in
|
||||
.onChange(of: self.selectedFriendIndex) {_ in
|
||||
self.updateLocals()
|
||||
}
|
||||
}
|
||||
|
||||
func updateLocals() {
|
||||
// update meta data based on which friend was selected
|
||||
let myId = self.authSessionStore.user?.id
|
||||
let myId = AuthSessionStore.getCurrentUserId()
|
||||
|
||||
// reset the selected options to start fresh
|
||||
self.selectedFriend = nil
|
||||
@@ -115,8 +120,8 @@ struct CircleFooterView: View {
|
||||
self.convoRelativeTime = ""
|
||||
|
||||
// set convo moment/relative time to show
|
||||
if newValue != nil && myId != nil {
|
||||
self.selectedFriend = self.authSessionStore.relevantUsersDict[newValue!]
|
||||
if myId != nil && self.selectedFriendIndex != nil {
|
||||
self.selectedFriend = self.authSessionStore.relevantUsersDict[self.selectedFriendIndex!]
|
||||
|
||||
// get the latest message's timestamp...will be the first in list now
|
||||
let lastMessage = self.authSessionStore.relevantMessagesByUserDict[self.selectedFriend!.id!]?.first
|
||||
@@ -138,7 +143,6 @@ struct CircleFooterView: View {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct CircleFooterView_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
|
||||
@@ -34,6 +34,7 @@ struct CircleGridView: View {
|
||||
count: totalColumns)
|
||||
|
||||
@Binding var selectedFriendIndex: String?
|
||||
@State var lastPersonIdSentMessageTo: String?
|
||||
|
||||
private let big:CGFloat = 1
|
||||
private let medium:CGFloat = 0.9
|
||||
@@ -157,7 +158,8 @@ struct CircleGridView: View {
|
||||
|
||||
if self.haveNewMessageFromFriend(friendDbId: friendId) {
|
||||
ProgressBarView(progress: self.selectedFriendIndex == friendId ? self.innerCircleVM.messagesListeningProgress : Float(1), color: Color.orange)
|
||||
} else if self.selectedFriendIndex == friendId {
|
||||
}
|
||||
else if friendId == self.lastPersonIdSentMessageTo { // show that I sent a message to the last person I sent a message to
|
||||
ProgressBarView(progress: self.innerCircleVM.toast == InnerCircleViewModel.Toast.clipSent ? Float(1) : Float(0), color: NirvanaColor.dimTeal)
|
||||
}
|
||||
|
||||
@@ -252,7 +254,8 @@ struct CircleGridView: View {
|
||||
// stop recording
|
||||
print("stopping recording")
|
||||
|
||||
// self.selectedFriendIndex = nil
|
||||
self.lastPersonIdSentMessageTo = self.selectedFriendIndex
|
||||
self.selectedFriendIndex = nil
|
||||
|
||||
self.innerCircleVM.stopRecording(sender: self.authSessionStore.user!, receiver: self.authSessionStore.relevantUsersDict[friendId]!)
|
||||
|
||||
@@ -360,7 +363,6 @@ struct CircleGridView: View {
|
||||
} //lazygrid // TODO: add padding based on if we are on any cornering item to allow the bubble to enlargen
|
||||
.padding(.trailing, Self.size / 2 + Self.spacingBetweenColumns / 2) // because of the offset of last column
|
||||
.padding(.top, Self.size / 2 + Self.spacingBetweenRows / 2) // because we are going under the nav bar
|
||||
// .id(UUID())
|
||||
}// scrollview
|
||||
.onAppear {
|
||||
// scrolling to first person in grid
|
||||
|
||||
@@ -63,7 +63,7 @@ class InnerCircleViewModel: NSObject, ObservableObject {
|
||||
case .problemSendingClip:
|
||||
return AlertToast(displayMode: .hud, type: .error(Color.orange), title: "problem sending clip", subTitle: "please try again")
|
||||
case .startedClip:
|
||||
return AlertToast(displayMode: .hud, type: .systemImage("waveform.and.mic", Color.orange), subTitle: "you're on")
|
||||
return AlertToast(displayMode: .hud, type: .systemImage("waveform.and.mic", Color.orange))
|
||||
default:
|
||||
return AlertToast(displayMode: .hud, type: .error(Color.orange), title: "Something went wrong ‼️")
|
||||
}
|
||||
@@ -74,6 +74,7 @@ class InnerCircleViewModel: NSObject, ObservableObject {
|
||||
|
||||
var queuePlayer = AVQueuePlayer()
|
||||
var avplayer: AVPlayer?
|
||||
|
||||
private var cachedPlayerItemsDict: [String: URL] = [:] // firebase audio url to local url
|
||||
|
||||
@Published var isRecording : Bool = false
|
||||
|
||||
Reference in New Issue
Block a user