96 lines
3.3 KiB
Swift
96 lines
3.3 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 {
|
|
}
|
|
}) {
|
|
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: {}
|
|
)
|
|
}
|
|
}
|