good spot with footer stuff
This commit is contained in:
@@ -10,6 +10,7 @@
|
|||||||
8904DEC8277055E90071E6CA /* OnboardingOneView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8904DEC7277055E90071E6CA /* OnboardingOneView.swift */; };
|
8904DEC8277055E90071E6CA /* OnboardingOneView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8904DEC7277055E90071E6CA /* OnboardingOneView.swift */; };
|
||||||
89091993277D958D0025F4BB /* ConvoViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89091992277D958D0025F4BB /* ConvoViewModel.swift */; };
|
89091993277D958D0025F4BB /* ConvoViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89091992277D958D0025F4BB /* ConvoViewModel.swift */; };
|
||||||
89091995277DD9F80025F4BB /* ConvoFooterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89091994277DD9F80025F4BB /* ConvoFooterView.swift */; };
|
89091995277DD9F80025F4BB /* ConvoFooterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89091994277DD9F80025F4BB /* ConvoFooterView.swift */; };
|
||||||
|
89091997277DDE030025F4BB /* ProfilePicturesOverlappedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89091996277DDE030025F4BB /* ProfilePicturesOverlappedView.swift */; };
|
||||||
890C245D277BF628009B4A30 /* AgoraRtcKit in Frameworks */ = {isa = PBXBuildFile; productRef = 890C245C277BF628009B4A30 /* AgoraRtcKit */; };
|
890C245D277BF628009B4A30 /* AgoraRtcKit in Frameworks */ = {isa = PBXBuildFile; productRef = 890C245C277BF628009B4A30 /* AgoraRtcKit */; };
|
||||||
890C2460277BF896009B4A30 /* AgoraViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 890C245F277BF896009B4A30 /* AgoraViewController.swift */; };
|
890C2460277BF896009B4A30 /* AgoraViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 890C245F277BF896009B4A30 /* AgoraViewController.swift */; };
|
||||||
890C2462277BF935009B4A30 /* CallView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 890C2461277BF935009B4A30 /* CallView.swift */; };
|
890C2462277BF935009B4A30 /* CallView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 890C2461277BF935009B4A30 /* CallView.swift */; };
|
||||||
@@ -96,6 +97,7 @@
|
|||||||
8904DEC7277055E90071E6CA /* OnboardingOneView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OnboardingOneView.swift; sourceTree = "<group>"; };
|
8904DEC7277055E90071E6CA /* OnboardingOneView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OnboardingOneView.swift; sourceTree = "<group>"; };
|
||||||
89091992277D958D0025F4BB /* ConvoViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConvoViewModel.swift; sourceTree = "<group>"; };
|
89091992277D958D0025F4BB /* ConvoViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConvoViewModel.swift; sourceTree = "<group>"; };
|
||||||
89091994277DD9F80025F4BB /* ConvoFooterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConvoFooterView.swift; sourceTree = "<group>"; };
|
89091994277DD9F80025F4BB /* ConvoFooterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConvoFooterView.swift; sourceTree = "<group>"; };
|
||||||
|
89091996277DDE030025F4BB /* ProfilePicturesOverlappedView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfilePicturesOverlappedView.swift; sourceTree = "<group>"; };
|
||||||
890C245F277BF896009B4A30 /* AgoraViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AgoraViewController.swift; sourceTree = "<group>"; };
|
890C245F277BF896009B4A30 /* AgoraViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AgoraViewController.swift; sourceTree = "<group>"; };
|
||||||
890C2461277BF935009B4A30 /* CallView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallView.swift; sourceTree = "<group>"; };
|
890C2461277BF935009B4A30 /* CallView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallView.swift; sourceTree = "<group>"; };
|
||||||
890C2463277BFA97009B4A30 /* AgroRep.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AgroRep.swift; sourceTree = "<group>"; };
|
890C2463277BFA97009B4A30 /* AgroRep.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AgroRep.swift; sourceTree = "<group>"; };
|
||||||
@@ -379,6 +381,7 @@
|
|||||||
89814682277D83F300DA46CD /* ConvosView.swift */,
|
89814682277D83F300DA46CD /* ConvosView.swift */,
|
||||||
89091992277D958D0025F4BB /* ConvoViewModel.swift */,
|
89091992277D958D0025F4BB /* ConvoViewModel.swift */,
|
||||||
89091994277DD9F80025F4BB /* ConvoFooterView.swift */,
|
89091994277DD9F80025F4BB /* ConvoFooterView.swift */,
|
||||||
|
89091996277DDE030025F4BB /* ProfilePicturesOverlappedView.swift */,
|
||||||
);
|
);
|
||||||
path = Convos;
|
path = Convos;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -600,6 +603,7 @@
|
|||||||
891060E4277359B900F14509 /* CloudStorageService.swift in Sources */,
|
891060E4277359B900F14509 /* CloudStorageService.swift in Sources */,
|
||||||
896CE7002770847400DB474E /* CircleFooterView.swift in Sources */,
|
896CE7002770847400DB474E /* CircleFooterView.swift in Sources */,
|
||||||
894E80BE276ED7A700624B72 /* avatars.swift in Sources */,
|
894E80BE276ED7A700624B72 /* avatars.swift in Sources */,
|
||||||
|
89091997277DDE030025F4BB /* ProfilePicturesOverlappedView.swift in Sources */,
|
||||||
890C2462277BF935009B4A30 /* CallView.swift in Sources */,
|
890C2462277BF935009B4A30 /* CallView.swift in Sources */,
|
||||||
896CE7052770AE5D00DB474E /* InboxView.swift in Sources */,
|
896CE7052770AE5D00DB474E /* InboxView.swift in Sources */,
|
||||||
891A160327656FC700B26659 /* HomeView.swift in Sources */,
|
891A160327656FC700B26659 /* HomeView.swift in Sources */,
|
||||||
|
|||||||
@@ -18,7 +18,10 @@ struct ConvoFooterView: View {
|
|||||||
Spacer()
|
Spacer()
|
||||||
|
|
||||||
HStack {
|
HStack {
|
||||||
ProfilePictureOverlap()
|
ProfilePicturesOverlappedView(indvAvatarWidth: CGFloat(35))
|
||||||
|
.padding(.leading, 20)
|
||||||
|
.padding(.trailing, 10)
|
||||||
|
|
||||||
|
|
||||||
// meta data of convo
|
// meta data of convo
|
||||||
VStack (alignment: .leading) {
|
VStack (alignment: .leading) {
|
||||||
@@ -43,8 +46,8 @@ struct ConvoFooterView: View {
|
|||||||
Label("attendees", systemImage: "person.2.circle.fill")
|
Label("attendees", systemImage: "person.2.circle.fill")
|
||||||
.labelStyle(.iconOnly)
|
.labelStyle(.iconOnly)
|
||||||
.foregroundColor(NirvanaColor.teal)
|
.foregroundColor(NirvanaColor.teal)
|
||||||
.padding()
|
|
||||||
.font(.title2)
|
.font(.title2)
|
||||||
|
.padding(.trailing, 5)
|
||||||
}
|
}
|
||||||
|
|
||||||
// disconnect button
|
// disconnect button
|
||||||
@@ -58,8 +61,8 @@ struct ConvoFooterView: View {
|
|||||||
Label("Call", systemImage: "powerplug.fill")
|
Label("Call", systemImage: "powerplug.fill")
|
||||||
.labelStyle(.iconOnly)
|
.labelStyle(.iconOnly)
|
||||||
.foregroundColor(Color.orange)
|
.foregroundColor(Color.orange)
|
||||||
.padding()
|
|
||||||
.font(.title2)
|
.font(.title2)
|
||||||
|
.padding(.trailing, 5)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ struct ConvosView: View {
|
|||||||
|
|
||||||
ZStack {
|
ZStack {
|
||||||
Color.clear
|
Color.clear
|
||||||
ProfilePictureOverlap()
|
ProfilePicturesOverlappedView()
|
||||||
.shadow(radius: 10)
|
.shadow(radius: 10)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,25 +74,3 @@ struct ConvosView: View {
|
|||||||
// ConvosView()
|
// ConvosView()
|
||||||
// }
|
// }
|
||||||
//}
|
//}
|
||||||
|
|
||||||
struct ProfilePictureOverlap: View {
|
|
||||||
let numberAttendees:Int = 5
|
|
||||||
let offset:Int = 15
|
|
||||||
|
|
||||||
var body: some View {
|
|
||||||
ZStack {
|
|
||||||
ForEach(0..<numberAttendees, id: \.self) {attendeeIndex in
|
|
||||||
if attendeeIndex < 3 {
|
|
||||||
Image(Avatars.avatarSystemNames[attendeeIndex+1])
|
|
||||||
.resizable()
|
|
||||||
.scaledToFit()
|
|
||||||
.background(NirvanaColor.dimTeal)
|
|
||||||
.clipShape(Circle())
|
|
||||||
.offset(x: CGFloat((-15 * attendeeIndex)) + 15)
|
|
||||||
.frame(width: 50)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
//
|
||||||
|
// ProfilePicturesOverlappedView.swift
|
||||||
|
// nirvana-ios
|
||||||
|
//
|
||||||
|
// Created by Arjun Patel on 12/30/21.
|
||||||
|
//
|
||||||
|
|
||||||
|
import SwiftUI
|
||||||
|
|
||||||
|
struct ProfilePicturesOverlappedView: View {
|
||||||
|
let numberAttendees:Int = 5
|
||||||
|
let offset:Int = 15
|
||||||
|
|
||||||
|
var indvAvatarWidth: CGFloat = 50
|
||||||
|
|
||||||
|
var body: some View {
|
||||||
|
ZStack {
|
||||||
|
ForEach(0..<numberAttendees, id: \.self) {attendeeIndex in
|
||||||
|
if attendeeIndex < 3 {
|
||||||
|
Image(Avatars.avatarSystemNames[attendeeIndex+1])
|
||||||
|
.resizable()
|
||||||
|
.scaledToFit()
|
||||||
|
.background(NirvanaColor.dimTeal)
|
||||||
|
.clipShape(Circle())
|
||||||
|
.offset(x: CGFloat((-15 * attendeeIndex)) + 15)
|
||||||
|
.frame(width: indvAvatarWidth)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct ProfilePicturesOverlappedView_Previews: PreviewProvider {
|
||||||
|
static var previews: some View {
|
||||||
|
ProfilePicturesOverlappedView()
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -84,7 +84,7 @@ struct CircleGridView: View {
|
|||||||
|
|
||||||
ZStack {
|
ZStack {
|
||||||
Color.clear
|
Color.clear
|
||||||
ProfilePictureOverlap()
|
ProfilePicturesOverlappedView()
|
||||||
.shadow(color: Color.black.opacity(0.2), radius: 10, x: 0, y: 20)
|
.shadow(color: Color.black.opacity(0.2), radius: 10, x: 0, y: 20)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,6 @@ struct InnerCircleView: View {
|
|||||||
.font(.caption)
|
.font(.caption)
|
||||||
.foregroundColor(NirvanaColor.teal)
|
.foregroundColor(NirvanaColor.teal)
|
||||||
.multilineTextAlignment(.center)
|
.multilineTextAlignment(.center)
|
||||||
|
|
||||||
}
|
}
|
||||||
.padding()
|
.padding()
|
||||||
} // add friend: stale state
|
} // add friend: stale state
|
||||||
@@ -90,7 +89,6 @@ struct InnerCircleView: View {
|
|||||||
CircleGridView(selectedFriendIndex: self.$selectedFriendIndex)
|
CircleGridView(selectedFriendIndex: self.$selectedFriendIndex)
|
||||||
.environmentObject(self.innerCircleVM)
|
.environmentObject(self.innerCircleVM)
|
||||||
.environmentObject(self.convoViewModel)
|
.environmentObject(self.convoViewModel)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// header
|
// header
|
||||||
@@ -104,6 +102,9 @@ struct InnerCircleView: View {
|
|||||||
.environmentObject(self.innerCircleVM)
|
.environmentObject(self.innerCircleVM)
|
||||||
.environmentObject(self.convoViewModel)
|
.environmentObject(self.convoViewModel)
|
||||||
|
|
||||||
|
ConvoFooterView()
|
||||||
|
.environmentObject(self.convoViewModel)
|
||||||
|
|
||||||
// helper for new users
|
// helper for new users
|
||||||
// TODO: make it back to 1 instead of 10...testing
|
// TODO: make it back to 1 instead of 10...testing
|
||||||
if self.authSessionStore.friendsArr.count == 1 && self.selectedFriendIndex == nil { // don't show if bottom metadata showing
|
if self.authSessionStore.friendsArr.count == 1 && self.selectedFriendIndex == nil { // don't show if bottom metadata showing
|
||||||
|
|||||||
Reference in New Issue
Block a user