Compare commits
	
		
			1 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					9ad744f3f1 | 
@ -43,15 +43,7 @@ struct ProfileContentTabbedGrid: View {
 | 
				
			|||||||
                        .cornerRadius(8)
 | 
					                        .cornerRadius(8)
 | 
				
			||||||
                        .font(.subheadline)
 | 
					                        .font(.subheadline)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    Button {
 | 
					                    
 | 
				
			||||||
                        // Создать пост
 | 
					 | 
				
			||||||
                    } label: {
 | 
					 | 
				
			||||||
                        Label("Создать", systemImage: "plus")
 | 
					 | 
				
			||||||
                            .font(.subheadline)
 | 
					 | 
				
			||||||
                            .padding(8)
 | 
					 | 
				
			||||||
                            .background(Color.blue.opacity(0.2))
 | 
					 | 
				
			||||||
                            .cornerRadius(8)
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
                    TextField("Поиск", text: $searchQuery)
 | 
					                    TextField("Поиск", text: $searchQuery)
 | 
				
			||||||
                        .padding(.horizontal, 10)
 | 
					                        .padding(.horizontal, 10)
 | 
				
			||||||
 | 
				
			|||||||
@ -30,41 +30,57 @@ struct ProfileTab: View {
 | 
				
			|||||||
            if !isContentLoaded {
 | 
					            if !isContentLoaded {
 | 
				
			||||||
                SplashScreenView()
 | 
					                SplashScreenView()
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                VStack(spacing: 0) {
 | 
					                ZStack(alignment: .bottomTrailing) {
 | 
				
			||||||
                    // Скрытые NavigationLink для программного перехода
 | 
					                    VStack(spacing: 0) {
 | 
				
			||||||
                    NavigationLink(destination: FollowersView(followers: followers), isActive: $isShowingFollowers) { EmptyView() }
 | 
					                        // Скрытые NavigationLink для программного перехода
 | 
				
			||||||
                    NavigationLink(destination: FollowingView(following: following), isActive: $isShowingFollowing) { EmptyView() }
 | 
					                        NavigationLink(destination: FollowersView(followers: followers), isActive: $isShowingFollowers) { EmptyView() }
 | 
				
			||||||
                    
 | 
					                        NavigationLink(destination: FollowingView(following: following), isActive: $isShowingFollowing) { EmptyView() }
 | 
				
			||||||
                    if let (post, posts) = selectedPostData {
 | 
					                        
 | 
				
			||||||
                        NavigationLink(
 | 
					                        if let (post, posts) = selectedPostData {
 | 
				
			||||||
                            destination: PostFeedView(posts: posts, selectedPostID: post.id),
 | 
					                            NavigationLink(
 | 
				
			||||||
                            isActive: Binding(
 | 
					                                destination: PostFeedView(posts: posts, selectedPostID: post.id),
 | 
				
			||||||
                                get: { selectedPostData != nil },
 | 
					                                isActive: Binding(
 | 
				
			||||||
                                set: { if !$0 { selectedPostData = nil } }
 | 
					                                    get: { selectedPostData != nil },
 | 
				
			||||||
                            ),
 | 
					                                    set: { if !$0 { selectedPostData = nil } }
 | 
				
			||||||
                            label: { EmptyView() }
 | 
					                                ),
 | 
				
			||||||
                        )
 | 
					                                label: { EmptyView() }
 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    RefreshableScrollView(isRefreshing: $isRefreshing, onRefresh: {
 | 
					 | 
				
			||||||
                        fetchData()
 | 
					 | 
				
			||||||
                    }) {
 | 
					 | 
				
			||||||
                        VStack(spacing: 12) {
 | 
					 | 
				
			||||||
                            header
 | 
					 | 
				
			||||||
//                                .frame(minHeight: 300)
 | 
					 | 
				
			||||||
                                .frame(maxWidth: .infinity)
 | 
					 | 
				
			||||||
                                .background(Color(.systemBackground))
 | 
					 | 
				
			||||||
                            
 | 
					 | 
				
			||||||
                            ProfileContentTabbedGrid(
 | 
					 | 
				
			||||||
                                isContentLoaded: isContentLoaded,
 | 
					 | 
				
			||||||
                                allPosts: $allPosts,
 | 
					 | 
				
			||||||
                                isLoading: $isLoading,
 | 
					 | 
				
			||||||
                                onPostTapped: { post, posts in
 | 
					 | 
				
			||||||
                                    self.selectedPostData = (post, posts)
 | 
					 | 
				
			||||||
                                }
 | 
					 | 
				
			||||||
                            )
 | 
					                            )
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        RefreshableScrollView(isRefreshing: $isRefreshing, onRefresh: {
 | 
				
			||||||
 | 
					                            fetchData()
 | 
				
			||||||
 | 
					                        }) {
 | 
				
			||||||
 | 
					                            VStack(spacing: 12) {
 | 
				
			||||||
 | 
					                                header
 | 
				
			||||||
 | 
					    //                                .frame(minHeight: 300)
 | 
				
			||||||
 | 
					                                    .frame(maxWidth: .infinity)
 | 
				
			||||||
 | 
					                                    .background(Color(.systemBackground))
 | 
				
			||||||
 | 
					                                
 | 
				
			||||||
 | 
					                                ProfileContentTabbedGrid(
 | 
				
			||||||
 | 
					                                    isContentLoaded: isContentLoaded,
 | 
				
			||||||
 | 
					                                    allPosts: $allPosts,
 | 
				
			||||||
 | 
					                                    isLoading: $isLoading,
 | 
				
			||||||
 | 
					                                    onPostTapped: { post, posts in
 | 
				
			||||||
 | 
					                                        self.selectedPostData = (post, posts)
 | 
				
			||||||
 | 
					                                    }
 | 
				
			||||||
 | 
					                                )
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    // FAB
 | 
				
			||||||
 | 
					                    Button(action: {
 | 
				
			||||||
 | 
					                        // TODO: Действие для создания поста
 | 
				
			||||||
 | 
					                    }) {
 | 
				
			||||||
 | 
					                        Image(systemName: "plus")
 | 
				
			||||||
 | 
					                            .font(.system(size: 24, weight: .bold))
 | 
				
			||||||
 | 
					                            .foregroundColor(.white)
 | 
				
			||||||
 | 
					                            .padding()
 | 
				
			||||||
 | 
					                            .background(Color.blue)
 | 
				
			||||||
 | 
					                            .clipShape(Circle())
 | 
				
			||||||
 | 
					                            .shadow(radius: 5)
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    .padding()
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                .navigationBarTitleDisplayMode(.inline)
 | 
					                .navigationBarTitleDisplayMode(.inline)
 | 
				
			||||||
                .toolbar {
 | 
					                .toolbar {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user