cealning up sent message ux

This commit is contained in:
talksik
2022-01-04 10:11:12 -08:00
parent db33f05679
commit 4115a76cce
3 changed files with 40 additions and 33 deletions
@@ -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