WidgetPreviewCard.swift 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import SwiftUI
  2. struct WidgetPreviewCard: View {
  3. let app: LauncherApp
  4. let variant: WidgetVariant
  5. var body: some View {
  6. DesktopWidgetView(app: app, variant: variant, isPreview: true)
  7. .frame(width: previewSize.width, height: previewSize.height)
  8. .allowsHitTesting(false)
  9. .clipShape(RoundedRectangle(cornerRadius: 18, style: .continuous))
  10. .overlay(
  11. RoundedRectangle(cornerRadius: 18, style: .continuous)
  12. .stroke(Color.white.opacity(0.10), lineWidth: 1)
  13. )
  14. }
  15. private var previewSize: CGSize {
  16. switch variant.size {
  17. case .small:
  18. return CGSize(width: 190, height: 190)
  19. case .medium:
  20. return CGSize(width: 340, height: 190)
  21. case .large:
  22. return CGSize(width: 340, height: 260)
  23. }
  24. }
  25. }
  26. #Preview {
  27. ZStack {
  28. Color.black
  29. WidgetPreviewCard(
  30. app: LauncherApp.sampleApps[1],
  31. variant: WidgetTemplates.variants(for: LauncherApp.sampleApps[1])[0]
  32. )
  33. .frame(width: 520, height: 360)
  34. .padding()
  35. }
  36. }