feat: 팔로워 리스트
- 프로필 이미지를 터치하면 프로필 다이얼로그 표시
This commit is contained in:
		@@ -11,6 +11,7 @@ import Kingfisher
 | 
			
		||||
struct FollowerListItemView: View {
 | 
			
		||||
    
 | 
			
		||||
    let item: GetFollowerListResponseItem
 | 
			
		||||
    let clickProfile: (Int) -> Void
 | 
			
		||||
    let creatorFollow: (Int) -> Void
 | 
			
		||||
    let showCreatorFollowNotifyDialog: (Int) -> Void
 | 
			
		||||
    
 | 
			
		||||
@@ -28,6 +29,9 @@ struct FollowerListItemView: View {
 | 
			
		||||
                    .resizable()
 | 
			
		||||
                    .frame(width: 60, height: 60)
 | 
			
		||||
                    .clipShape(Circle())
 | 
			
		||||
                    .onTapGesture {
 | 
			
		||||
                        clickProfile(item.userId)
 | 
			
		||||
                    }
 | 
			
		||||
                
 | 
			
		||||
                Text(item.nickname)
 | 
			
		||||
                    .font(.custom(Font.medium.rawValue, size: 16.7))
 | 
			
		||||
@@ -70,6 +74,7 @@ struct FollowerListItemView_Previews: PreviewProvider {
 | 
			
		||||
                nickname: "상남자",
 | 
			
		||||
                isFollow: false
 | 
			
		||||
            ),
 | 
			
		||||
            clickProfile: { _ in },
 | 
			
		||||
            creatorFollow: { _ in },
 | 
			
		||||
            showCreatorFollowNotifyDialog: { _ in }
 | 
			
		||||
        )
 | 
			
		||||
 
 | 
			
		||||
@@ -16,6 +16,9 @@ struct FollowerListView: View {
 | 
			
		||||
    @State private var creatorId: Int = 0
 | 
			
		||||
    @State private var selectedItemIndex: Int = 0
 | 
			
		||||
    
 | 
			
		||||
    @State private var selectedMemberId: Int = 0
 | 
			
		||||
    @State private var isShowMemberProfilePopup: Bool = false
 | 
			
		||||
    
 | 
			
		||||
    var body: some View {
 | 
			
		||||
        BaseView(isLoading: $viewModel.isLoading) {
 | 
			
		||||
            VStack(spacing: 0) {
 | 
			
		||||
@@ -41,6 +44,10 @@ struct FollowerListView: View {
 | 
			
		||||
                            let item = viewModel.followerListItems[index]
 | 
			
		||||
                            FollowerListItemView(
 | 
			
		||||
                                item: item,
 | 
			
		||||
                                clickProfile: {
 | 
			
		||||
                                    selectedMemberId = $0
 | 
			
		||||
                                    isShowMemberProfilePopup = true
 | 
			
		||||
                                },
 | 
			
		||||
                                creatorFollow: {
 | 
			
		||||
                                    viewModel.creatorFollow(creatorId: $0, index: index)
 | 
			
		||||
                                },
 | 
			
		||||
@@ -62,6 +69,17 @@ struct FollowerListView: View {
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            if isShowMemberProfilePopup {
 | 
			
		||||
                MemberProfileDialog(
 | 
			
		||||
                    isShowing: $isShowMemberProfilePopup,
 | 
			
		||||
                    memberId: selectedMemberId,
 | 
			
		||||
                    onBlockComplete: {
 | 
			
		||||
                        viewModel.removeMember(memberId: selectedMemberId)
 | 
			
		||||
                        selectedMemberId = 0
 | 
			
		||||
                    }
 | 
			
		||||
                )
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            if isShowFollowNotifyDialog {
 | 
			
		||||
                CreatorFollowNotifyDialog(
 | 
			
		||||
                    isShowing: $isShowFollowNotifyDialog,
 | 
			
		||||
 
 | 
			
		||||
@@ -117,4 +117,9 @@ final class FollowerListViewModel: ObservableObject {
 | 
			
		||||
            }
 | 
			
		||||
            .store(in: &subscription)
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    func removeMember(memberId: Int) {
 | 
			
		||||
        totalCount -= 1
 | 
			
		||||
        followerListItems.removeAll { $0.userId == memberId }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user