Files
SodaLive
Preview Content
Resources
Sources
Agora
App
Common
Content
Debug
Dialog
Explorer
Extensions
Follow
Font
IAP
ImagePicker
Keyboard
Live
Main
Message
MyPage
Auth
Can
OrderList
Profile
ReservationStatus
ServiceCenter
Faq.swift
FaqApi.swift
FaqRepository.swift
FaqView.swift
ServiceCenterButtonView.swift
ServiceCenterCategoryItemView.swift
ServiceCenterCategoryView.swift
ServiceCenterView.swift
ServiceCenterViewModel.swift
CanCardView.swift
MyInfoCardView.swift
MyPageResponse.swift
MyPageView.swift
MyPageViewModel.swift
ReservationStatusView.swift
NavigationBar
Onboarding
Report
Settings
Shape
Splash
User
Utils
ContentView.swift
SodaLive.entitlements
SodaLive.xcworkspace
generated
.gitignore
Podfile
Podfile.lock
SodaLive-dev.entitlements
model-SodaLive-dev.json
model-SodaLive.json
sodalive-ios/SodaLive/Sources/MyPage/ServiceCenter/FaqView.swift
2023-08-11 07:33:38 +09:00

86 lines
2.9 KiB
Swift

//
// FaqView.swift
// SodaLive
//
// Created by klaus on 2023/08/11.
//
import SwiftUI
import RichText
struct FaqView: View {
let faqs: [Faq]
@State private var openIndex = -1
var body: some View {
VStack(spacing: 0) {
ForEach(0..<faqs.count, id: \.self) { index in
let faq = faqs[index]
VStack(spacing: 0) {
HStack(alignment: .top, spacing: 6.7) {
Text("Q")
.font(.custom(Font.bold.rawValue, size: 13.3))
.foregroundColor(Color(hex: "9970ff"))
Text(faq.question)
.font(.custom(Font.medium.rawValue, size: 14.7))
.foregroundColor(Color(hex: "eeeeee"))
.fixedSize(horizontal: false, vertical: true)
Spacer()
Image(openIndex == index ? "btn_dropdown_up" : "btn_dropdown_down")
.resizable()
.frame(width: 20, height: 20)
}
.padding(.vertical, 20)
.padding(.horizontal, 6.7)
if openIndex == index {
HStack(alignment: .top, spacing: 6.7) {
Text("A")
.font(.custom(Font.bold.rawValue, size: 13.3))
.foregroundColor(Color(hex: "9970ff"))
.padding(.top, 13.3)
RichText(html: faq.answer)
.font(.custom(Font.medium.rawValue, size: 13.3))
.foregroundColor(Color(hex: "bbbbbb"))
}
.padding(.vertical, 20)
.padding(.horizontal, 6.7)
.background(Color(hex: "222222"))
}
}
.padding(.horizontal, 13.3)
.contentShape(Rectangle())
.onTapGesture {
if openIndex != index {
openIndex = index
} else {
openIndex = -1
}
}
}
}
.padding(.bottom, 40)
}
}
struct FaqView_Previews: PreviewProvider {
static var previews: some View {
FaqView(
faqs: [
Faq(question: "질문1", answer: "답변1"),
Faq(question: "질문2", answer: "답변2"),
Faq(question: "질문3", answer: "답변3"),
Faq(question: "질문4", answer: "답변4"),
Faq(question: "질문5", answer: "답변5")
]
)
}
}