Skip to content

Instantly share code, notes, and snippets.

@sturdysturge
Last active July 19, 2020 21:21
Show Gist options
  • Save sturdysturge/4b017abb08a19d6d5c6bab07437dfc41 to your computer and use it in GitHub Desktop.
Save sturdysturge/4b017abb08a19d6d5c6bab07437dfc41 to your computer and use it in GitHub Desktop.
RevDoc PreviewContext
import SwiftUI
import WidgetKit
extension Date {
var timeString: String {
let hour = Calendar.current.component(.hour, from: self)
let minutes = Calendar.current.component(.minute, from: self)
return "\(hour):\(minutes < 10 ? "0\(minutes)" : "\(minutes)")"
}
}
struct ContentView: View {
@Environment(\.widgetFamily) var family
var text: String {
switch family {
case .systemSmall: return "Small size"
case .systemMedium: return "Medium size"
case .systemLarge: return "Large size"
default: return "Default size"
}
}
var backgroundColor: Color {
switch family {
case .systemSmall: return .red
case .systemMedium: return .green
case .systemLarge: return .blue
default: return .orange
}
}
var body: some View {
Text("\(Date().timeString)\n\(text)")
.font(.largeTitle)
.fontWeight(.bold)
.frame(maxWidth: .infinity, maxHeight: .infinity)
.background(backgroundColor)
.multilineTextAlignment(.center)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
.previewContext(WidgetPreviewContext(family: .systemSmall))
ContentView()
.previewContext(WidgetPreviewContext(family: .systemMedium))
ContentView()
.previewContext(WidgetPreviewContext(family: .systemLarge))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment