decent place with overall flow
This commit is contained in:
@@ -32,7 +32,7 @@ struct CircleGridView: View {
|
|||||||
private let big:CGFloat = 1
|
private let big:CGFloat = 1
|
||||||
private let medium:CGFloat = 0.75
|
private let medium:CGFloat = 0.75
|
||||||
private let small:CGFloat = 0.5
|
private let small:CGFloat = 0.5
|
||||||
private let supersmall:CGFloat = 0.3
|
private let supersmall:CGFloat = 0.3
|
||||||
|
|
||||||
// TODO: centered honeycomb + side: maybe have two honeycombs: one in the center of 7 people and then everyone else surrounding
|
// TODO: centered honeycomb + side: maybe have two honeycombs: one in the center of 7 people and then everyone else surrounding
|
||||||
// TODO: maybe make our "center" offset to a little to the top left to make it more honeycomb from top left
|
// TODO: maybe make our "center" offset to a little to the top left to make it more honeycomb from top left
|
||||||
@@ -42,7 +42,6 @@ struct CircleGridView: View {
|
|||||||
gridContent
|
gridContent
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private var gridContent: some View {
|
private var gridContent: some View {
|
||||||
// main communication hub
|
// main communication hub
|
||||||
// TODO: client side, sort the honeycomb from top left to bottom right
|
// TODO: client side, sort the honeycomb from top left to bottom right
|
||||||
@@ -60,7 +59,7 @@ struct CircleGridView: View {
|
|||||||
let scale = getScale(proxy: gridProxy, itemNumber: value)
|
let scale = getScale(proxy: gridProxy, itemNumber: value)
|
||||||
|
|
||||||
let messagesRelatedToFriend = self.authSessionStore.friendMessagesDict[friend.id!]
|
let messagesRelatedToFriend = self.authSessionStore.friendMessagesDict[friend.id!]
|
||||||
// sort the list
|
// TODO: sort the list but may already be sorted from the query and creation of the array of messages?
|
||||||
// shouldn't be nil...hopefully
|
// shouldn't be nil...hopefully
|
||||||
let userId = self.authSessionStore.user!.id
|
let userId = self.authSessionStore.user!.id
|
||||||
|
|
||||||
@@ -68,13 +67,13 @@ struct CircleGridView: View {
|
|||||||
// check if the last message in the conversation between me and my friend was me talking or him
|
// check if the last message in the conversation between me and my friend was me talking or him
|
||||||
// also check if I have listened to it once or twice
|
// also check if I have listened to it once or twice
|
||||||
if messagesRelatedToFriend?.last?.receiverId == userId && messagesRelatedToFriend?.last?.listenCount == 0 { // him talking
|
if messagesRelatedToFriend?.last?.receiverId == userId && messagesRelatedToFriend?.last?.listenCount == 0 { // him talking
|
||||||
Image(systemName: "wave.3.right.circle")
|
Image(systemName: "wave.3.right.circle.fill")
|
||||||
.foregroundColor(Color.orange)
|
.foregroundColor(Color.orange)
|
||||||
.font(.title)
|
.font(.title)
|
||||||
}
|
}
|
||||||
|
|
||||||
Circle()
|
Circle()
|
||||||
.foregroundColor(self.getBubbleTint(userIndex: value)) // different color for a selected user
|
.foregroundColor(self.getBubbleTint(friendIndex: value, friendDbId: friend.id!)) // different color for a selected user
|
||||||
.blur(radius: 8)
|
.blur(radius: 8)
|
||||||
.cornerRadius(100)
|
.cornerRadius(100)
|
||||||
|
|
||||||
@@ -129,13 +128,23 @@ struct CircleGridView: View {
|
|||||||
} // scrollview reader
|
} // scrollview reader
|
||||||
}
|
}
|
||||||
|
|
||||||
private func getBubbleTint(userIndex: Int) -> Color {
|
private func haveNewMessageFromFriend(friendDbId: String) -> Bool {
|
||||||
if (userIndex == self.selectedFriendIndex) { // user clicked on this user
|
let userId = self.authSessionStore.user!.id // O(1)
|
||||||
|
|
||||||
|
if let messagesRelatedToFriend = self.authSessionStore.friendMessagesDict[friendDbId] { // O(1)
|
||||||
|
return messagesRelatedToFriend.last?.receiverId == userId && messagesRelatedToFriend.last?.listenCount == 0
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
private func getBubbleTint(friendIndex: Int, friendDbId: String) -> Color {
|
||||||
|
if (friendIndex == self.selectedFriendIndex) { // user clicked on this user
|
||||||
return NirvanaColor.dimTeal.opacity(0.4)
|
return NirvanaColor.dimTeal.opacity(0.4)
|
||||||
}
|
}
|
||||||
// else if self.usersWithNewMessage.contains(userIndex) { // this user has a message
|
else if self.haveNewMessageFromFriend(friendDbId: friendDbId) { // this user has a message
|
||||||
// return Color.orange.opacity(0.8)
|
return Color.orange.opacity(0.8)
|
||||||
// }
|
}
|
||||||
|
|
||||||
return Color.white.opacity(0.4)
|
return Color.white.opacity(0.4)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user