sodalive-ios/SodaLive/Sources/MyPage/MyInfoCardView.swift

97 lines
3.4 KiB
Swift

//
// MyInfoCardView.swift
// SodaLive
//
// Created by klaus on 2023/08/10.
//
import SwiftUI
import Kingfisher
struct MyInfoCardView: View {
let data: MyPageResponse
let refresh: () -> Void
var body: some View {
HStack(spacing: 13.3) {
KFImage(URL(string: data.profileUrl))
.resizable()
.scaledToFill()
.frame(width: 90, height: 90, alignment: .top)
.clipShape(Circle())
VStack(alignment: .leading, spacing: 13.3) {
HStack(spacing: 0) {
Text(data.nickname)
.font(.custom(Font.bold.rawValue, size: 20))
.foregroundColor(Color(hex: "eeeeee"))
Spacer()
Button(action: {
if AppState.shared.roomId <= 0 {
AppState.shared.setAppStep(step: .profileUpdate(refresh: refresh))
}
}) {
Image("ic_myinfo_edit")
.resizable()
.frame(width: 20, height: 20)
}
}
HStack(spacing: 10) {
Spacer()
if let websiteUrl = data.websiteUrl, websiteUrl.count > 0, let url = URL(string: websiteUrl), UIApplication.shared.canOpenURL(url) {
Button(action: {UIApplication.shared.open(url)}) {
Image("ic_website_circle")
}
}
if let blogUrl = data.blogUrl, blogUrl.count > 0, let url = URL(string: blogUrl), UIApplication.shared.canOpenURL(url) {
Button(action: {UIApplication.shared.open(url)}) {
Image("ic_blog_circle")
}
}
if let instagramUrl = data.instagramUrl, instagramUrl.count > 0, let url = URL(string: instagramUrl), UIApplication.shared.canOpenURL(url) {
Button(action: {UIApplication.shared.open(url)}) {
Image("ic_instagram_circle")
}
}
if let youtubeUrl = data.youtubeUrl, youtubeUrl.count > 0, let url = URL(string: youtubeUrl), UIApplication.shared.canOpenURL(url) {
Button(action: {UIApplication.shared.open(url)}) {
Image("ic_youtube_circle")
}
}
}
}
}
.padding(20)
.background(Color(hex: "222222"))
.cornerRadius(16.7)
}
}
struct MyInfoCardView_Previews: PreviewProvider {
static var previews: some View {
MyInfoCardView(
data: MyPageResponse(
nickname: "완다 막시모프",
profileUrl: "https://test-cf.sodalive.net/profile/default-profile.png",
chargeCan: 0,
rewardCan: 150,
youtubeUrl: "",
instagramUrl: "",
websiteUrl: "",
blogUrl: "",
liveReservationCount: 0,
isAuth: false
),
refresh: {}
)
}
}