Text statement is correct - doesn't compile even with static string. Code is below:
import SwiftUI
import Foundation
struct OneTimeRow: View {
@Environment(\.openURL) var openURL
var oneTimeName: String
var oneTimeLink: String?
var oneTimeDate: Date
var oneTimeNotes: String?
var body: some View {
HStack {
VStack(alignment: .leading){
Text("\(oneTimeName)")
.font(.title3)
.fontWeight(.semibold)
.padding(.top, 5.0)
.padding(.bottom, 0)
if isDateInToday(oneTimeDate) {
Text("Today at \(oneTimeDate, formatter: itemFormatter)")
} else if isDateinYesterday(oneTimeDate){
Text("Yesterday at \(oneTimeDate, formatter: itemFormatter)")
} else if isDateInTomorrow(oneTimeDate) {
Text("Tomorrow at \(oneTimeDate, formatter: itemFormatter)")
} else {
Text("\(oneTimeDate, formatter: showDayFormatter) at \(oneTimeDate, formatter: itemFormatter)")
.foregroundColor(Color.gray)
.padding(.bottom, 3.0)
.padding(.top, -3)
}
}
Spacer()
Button {
print("Sending to computer")
guard let data = URL(string: "\(oneTimeLink ?? "undefined")") else { return }
let av = UIActivityViewController(activityItems: [data], applicationActivities: nil)
UIApplication.shared.windows.first?.rootViewController?.present(av, animated: true, completion: nil)
} label: {
Image(systemName: "wave.3.right.circle.fill")
.font(.title)
.padding(.trailing, 1)
}
.buttonStyle(BorderlessButtonStyle())
Button {
print("Joining on iPhone")
openURL(URL(string: "\(oneTimeLink ?? "untitled")")!)
} label: {
Text("JOIN")
.fontWeight(.semibold)
.foregroundColor(Color.white)
.frame(width: 60.0, height: 30.0)
.padding(.trailing, 1.0)
.background(/*@START_MENU_TOKEN@*//*@PLACEHOLDER=View@*/Color.blue/*@END_MENU_TOKEN@*/)
.cornerRadius(20.0)
}
.buttonStyle(BorderlessButtonStyle())
NavigationLink(destination: MeetingsDetailView(detailMeetingName: "\(oneTimeName)", detailMeetingLink: "\(oneTimeLink ?? "Undefined")", detailMeetingTime: oneTimeDate, detailMeetingNotes: "\(oneTimeNotes ?? "No notes")")) {
}
.frame(width: 10)
}
}
}
private let itemFormatter: DateFormatter = {
let formatter = DateFormatter()
formatter.timeStyle = .short
return formatter
}()
private let showDayFormatter: DateFormatter = {
let formatter = DateFormatter()
formatter.dateStyle = .short
return formatter
}()