feat(series-all-by-genre): 시리즈 전체보기 장르별 탭 - 장르, 시리즈 UI 추가
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
//
|
||||
// SeriesMainGenreView.swift
|
||||
// SodaLive
|
||||
//
|
||||
// Created by klaus on 11/15/25.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct SeriesMainGenreView: View {
|
||||
let genreList: [GetSeriesGenreListResponse]
|
||||
let selectGenre: () -> Void
|
||||
|
||||
@Binding var selectedGenre: GetSeriesGenreListResponse
|
||||
|
||||
var body: some View {
|
||||
ScrollView(.horizontal, showsIndicators: false) {
|
||||
HStack(alignment: .top, spacing: 16) {
|
||||
ForEach(0..<genreList.count, id: \.self) { index in
|
||||
let genre = genreList[index]
|
||||
Text(genre.genre)
|
||||
.font(
|
||||
.custom(
|
||||
selectedGenre.genre == genre.genre ? Font.preBold.rawValue : Font.preRegular.rawValue,
|
||||
size: 16
|
||||
)
|
||||
)
|
||||
.foregroundColor(.white)
|
||||
.padding(.horizontal, 24)
|
||||
.padding(.vertical, 12)
|
||||
.background(
|
||||
selectedGenre.genre == genre.genre ? Color.button : Color(hex: "263238")
|
||||
)
|
||||
.cornerRadius(999)
|
||||
.onTapGesture {
|
||||
if selectedGenre.genre != genre.genre {
|
||||
selectedGenre = genre
|
||||
selectGenre()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.padding(.horizontal, 24)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Preview {
|
||||
SeriesMainGenreView(
|
||||
genreList: [
|
||||
GetSeriesGenreListResponse(id: 1, genre: "test"),
|
||||
GetSeriesGenreListResponse(id: 2, genre: "test2"),
|
||||
GetSeriesGenreListResponse(id: 3, genre: "test3")
|
||||
],
|
||||
selectGenre: { },
|
||||
selectedGenre: .constant(GetSeriesGenreListResponse(id: 1, genre: "test"))
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user