homeview patch

This commit is contained in:
cheykrym 2025-08-14 19:33:13 +03:00
parent f7c8c1c0a0
commit efc7773c04

View File

@ -11,6 +11,10 @@ struct NewHomeTab: View {
viewModel.posts.enumerated().filter { $0.offset % 2 != 0 }.map { $0.element } viewModel.posts.enumerated().filter { $0.offset % 2 != 0 }.map { $0.element }
} }
// Рассчитываем ширину колонки на основе ширины экрана.
// Отступы: 4 слева + 4 справа + 6 между колонками = 14.
private let columnWidth = (UIScreen.main.bounds.width - 14) / 2
var body: some View { var body: some View {
VStack { VStack {
if viewModel.isLoading { if viewModel.isLoading {
@ -22,12 +26,12 @@ struct NewHomeTab: View {
HStack(alignment: .top, spacing: 6) { HStack(alignment: .top, spacing: 6) {
LazyVStack(spacing: 6) { LazyVStack(spacing: 6) {
ForEach(column1Posts) { post in ForEach(column1Posts) { post in
PostGridItem(post: post) PostGridItem(post: post, width: columnWidth)
} }
} }
LazyVStack(spacing: 6) { LazyVStack(spacing: 6) {
ForEach(column2Posts) { post in ForEach(column2Posts) { post in
PostGridItem(post: post) PostGridItem(post: post, width: columnWidth)
} }
} }
} }
@ -44,10 +48,7 @@ struct NewHomeTab: View {
struct PostGridItem: View { struct PostGridItem: View {
let post: Post let post: Post
let width: CGFloat // Ширина элемента
private var randomHeight: CGFloat {
CGFloat.random(in: 150...300)
}
var body: some View { var body: some View {
VStack(alignment: .leading, spacing: 0) { // Убираем отступ между картинкой и текстом VStack(alignment: .leading, spacing: 0) { // Убираем отступ между картинкой и текстом
@ -55,8 +56,9 @@ struct PostGridItem: View {
if let _ = post.media.first { if let _ = post.media.first {
Image("placeholderPhoto") Image("placeholderPhoto")
.resizable() .resizable()
.aspectRatio(contentMode: .fill) .scaledToFill() // Заполняем кадр, сохраняя пропорции
.frame(height: randomHeight) .frame(width: width, height: width) // Устанавливаем жесткий размер
.clipped() // Обрезаем лишнее
} }
// Контейнер для текста, который создает эффект "расширения" // Контейнер для текста, который создает эффект "расширения"