Skip to content

Commit

Permalink
Merge pull request #11420 from artsy/jonallured/fix-modernize-ios-wid…
Browse files Browse the repository at this point in the history
…get-config

fix: Modernize iOS widget config
  • Loading branch information
jonallured authored Jan 22, 2025
2 parents 7f89119 + e9ca7c4 commit da05ef2
Show file tree
Hide file tree
Showing 11 changed files with 116 additions and 34 deletions.
42 changes: 21 additions & 21 deletions ios/Artsy.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1676,25 +1676,25 @@
children = (
CB4326B927E8FAD900B29DD6 /* ArtsyWidgets.swift */,
CB4326AD27E8FAD900B29DD6 /* Assets.xcassets */,
CB43268B27E8FA6B00B29DD6 /* Assets.xcassets */,
CB43269D27E8FAD900B29DD6 /* FeaturedArtworks */,
CB4326AE27E8FAD900B29DD6 /* Fixtures.swift */,
CB43269627E8FAD800B29DD6 /* FullBleed */,
CB43268D27E8FA6B00B29DD6 /* Info.plist */,
CB4326AF27E8FAD900B29DD6 /* LatestArticles */,
CB4326BA27E8FAD900B29DD6 /* Models */,
CB4326A727E8FAD900B29DD6 /* Shared */,
CB43268B27E8FA6B00B29DD6 /* Assets.xcassets */,
CB43268D27E8FA6B00B29DD6 /* Info.plist */,
);
path = ArtsyWidget;
sourceTree = "<group>";
};
CB43269627E8FAD800B29DD6 /* FullBleed */ = {
isa = PBXGroup;
children = (
CB43269A27E8FAD900B29DD6 /* FullBleed.swift */,
CB43269727E8FAD900B29DD6 /* FullBleed+Entry.swift */,
CB43269827E8FAD900B29DD6 /* FullBleed+Provider.swift */,
CB43269927E8FAD900B29DD6 /* FullBleed+Timeline.swift */,
CB43269A27E8FAD900B29DD6 /* FullBleed.swift */,
CB43269B27E8FAD900B29DD6 /* FullBleed+View.swift */,
CB43269C27E8FAD900B29DD6 /* FullBleed+Widget.swift */,
);
Expand All @@ -1704,60 +1704,60 @@
CB43269D27E8FAD900B29DD6 /* FeaturedArtworks */ = {
isa = PBXGroup;
children = (
CB4326A427E8FAD900B29DD6 /* FeaturedArtworks.swift */,
CB43269E27E8FAD900B29DD6 /* FeaturedArtworks+Entry.swift */,
CB4326A527E8FAD900B29DD6 /* FeaturedArtworks+LargeView.swift */,
CB4326A627E8FAD900B29DD6 /* FeaturedArtworks+MediumView.swift */,
CB4326A227E8FAD900B29DD6 /* FeaturedArtworks+Provider.swift */,
CB43269F27E8FAD900B29DD6 /* FeaturedArtworks+SmallView.swift */,
CB4326A027E8FAD900B29DD6 /* FeaturedArtworks+Timeline.swift */,
CB4326A127E8FAD900B29DD6 /* FeaturedArtworks+Widget.swift */,
CB4326A227E8FAD900B29DD6 /* FeaturedArtworks+Provider.swift */,
CB4326A327E8FAD900B29DD6 /* FeaturedArtworks+View.swift */,
CB4326A427E8FAD900B29DD6 /* FeaturedArtworks.swift */,
CB4326A527E8FAD900B29DD6 /* FeaturedArtworks+LargeView.swift */,
CB4326A627E8FAD900B29DD6 /* FeaturedArtworks+MediumView.swift */,
CB4326A127E8FAD900B29DD6 /* FeaturedArtworks+Widget.swift */,
);
path = FeaturedArtworks;
sourceTree = "<group>";
};
CB4326A727E8FAD900B29DD6 /* Shared */ = {
isa = PBXGroup;
children = (
CB4326A827E8FAD900B29DD6 /* PrimaryText.swift */,
CB4326A927E8FAD900B29DD6 /* ImageUrl.swift */,
CB4326A827E8FAD900B29DD6 /* PrimaryText.swift */,
CB4326AA27E8FAD900B29DD6 /* Schedule.swift */,
CB4326AB27E8FAD900B29DD6 /* WidgetUrl.swift */,
CB4326AC27E8FAD900B29DD6 /* SecondaryText.swift */,
CB4326AB27E8FAD900B29DD6 /* WidgetUrl.swift */,
);
path = Shared;
sourceTree = "<group>";
};
CB4326AF27E8FAD900B29DD6 /* LatestArticles */ = {
isa = PBXGroup;
children = (
CB4326B027E8FAD900B29DD6 /* LatestArticles+View.swift */,
CB4326B827E8FAD900B29DD6 /* LatestArticles.swift */,
CB4326B127E8FAD900B29DD6 /* LatestArticles+Entry.swift */,
CB4326B227E8FAD900B29DD6 /* LatestArticles+Widget.swift */,
CB4326B327E8FAD900B29DD6 /* LatestArticles+MediumView.swift */,
CB4326B427E8FAD900B29DD6 /* LatestArticles+Timeline.swift */,
CB4326B527E8FAD900B29DD6 /* LatestArticles+LargeView.swift */,
CB4326B327E8FAD900B29DD6 /* LatestArticles+MediumView.swift */,
CB4326B627E8FAD900B29DD6 /* LatestArticles+Provider.swift */,
CB4326B727E8FAD900B29DD6 /* LatestArticles+SmallView.swift */,
CB4326B827E8FAD900B29DD6 /* LatestArticles.swift */,
CB4326B427E8FAD900B29DD6 /* LatestArticles+Timeline.swift */,
CB4326B027E8FAD900B29DD6 /* LatestArticles+View.swift */,
CB4326B227E8FAD900B29DD6 /* LatestArticles+Widget.swift */,
);
path = LatestArticles;
sourceTree = "<group>";
};
CB4326BA27E8FAD900B29DD6 /* Models */ = {
isa = PBXGroup;
children = (
CB4326C327E8FAD900B29DD6 /* Article.swift */,
CB4326C427E8FAD900B29DD6 /* ArticleParser.swift */,
CB4326BB27E8FAD900B29DD6 /* ArticleStore.swift */,
CB4326BC27E8FAD900B29DD6 /* VolleyClient.swift */,
CB4326BD27E8FAD900B29DD6 /* VolleyPayload.swift */,
CB4326BE27E8FAD900B29DD6 /* ArtworkImage.swift */,
CB4326BF27E8FAD900B29DD6 /* Artist.swift */,
CB4326C227E8FAD900B29DD6 /* Artwork.swift */,
CB4326BE27E8FAD900B29DD6 /* ArtworkImage.swift */,
CB4326C027E8FAD900B29DD6 /* ArtworkStore.swift */,
CB4326BC27E8FAD900B29DD6 /* VolleyClient.swift */,
CB4326C127E8FAD900B29DD6 /* VolleyMetric.swift */,
CB4326C227E8FAD900B29DD6 /* Artwork.swift */,
CB4326C327E8FAD900B29DD6 /* Article.swift */,
CB4326C427E8FAD900B29DD6 /* ArticleParser.swift */,
CB4326BD27E8FAD900B29DD6 /* VolleyPayload.swift */,
);
path = Models;
sourceTree = "<group>";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,23 @@ private struct TopArtwork: SwiftUI.View {
let artwork: Artwork

var body: some SwiftUI.View {
if #available(iOSApplicationExtension 17.0, *) {
actualBody().containerBackground(for: .widget) {
Color.white
}
} else {
actualBody()
}
}

func actualBody() -> some SwiftUI.View {
let artsyLogo = UIImage(named: "BlackArtsyLogo")!
let artworkImage = artwork.image!
let artistName = artwork.artist.name
let artworkTitle = artwork.title
let artworkUrl = artwork.url

HStack(alignment: .bottom) {
return HStack(alignment: .bottom) {
Image(uiImage: artworkImage)
.resizable()
.scaledToFit()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,23 @@ private struct TopArtwork: SwiftUI.View {
let artwork: Artwork

var body: some SwiftUI.View {
if #available(iOSApplicationExtension 17.0, *) {
actualBody().containerBackground(for: .widget) {
Color.white
}
} else {
actualBody()
}
}

func actualBody() -> some SwiftUI.View {
let artsyLogo = UIImage(named: "BlackArtsyLogo")!
let artworkImage = artwork.image!
let artistName = artwork.artist.name
let artworkTitle = artwork.title
let artworkUrl = artwork.url

HStack(alignment: .bottom) {
return HStack(alignment: .bottom) {
Image(uiImage: artworkImage)
.resizable()
.scaledToFit()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,22 @@ extension FeaturedArtworks {
}

var body: some SwiftUI.View {
if #available(iOSApplicationExtension 17.0, *) {
actualBody().containerBackground(for: .widget) {
Color.white
}
} else {
actualBody()
}
}

func actualBody() -> some SwiftUI.View {
let artsyLogo = UIImage(named: "BlackArtsyLogo")!
let artworkImage = artwork.image!
let artistName = artwork.artist.name
let artworkUrl = artwork.url

VStack() {
return VStack() {
HStack(alignment: .top) {
Image(uiImage: artworkImage)
.resizable()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,18 @@ import WidgetKit

extension FeaturedArtworks {
struct Widget: SwiftUI.Widget {
static let description: String = "A curated selection of newly uploaded works from galleries, fairs, and auctions."
static let displayName: String = "New This Week"
static let kind: String = "FeaturedArtworksWidget"

var body: some WidgetConfiguration {
StaticConfiguration(kind: Widget.kind, provider: Provider()) { entry in
View(entry: entry)
}
.configurationDisplayName("New This Week")
.description("A curated selection of newly uploaded works from galleries, fairs, and auctions.")
.configurationDisplayName(Widget.displayName)
.containerBackgroundRemovable(false)
.contentMarginsDisabled()
.description(Widget.description)
.supportedFamilies(View.supportedFamilies)
}
}
Expand Down
12 changes: 11 additions & 1 deletion ios/ArtsyWidget/FullBleed/FullBleed+View.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,23 @@ extension FullBleed {
}

var body: some SwiftUI.View {
if #available(iOSApplicationExtension 17.0, *) {
actualBody().containerBackground(for: .widget) {
Color.white
}
} else {
actualBody()
}
}

func actualBody() -> some SwiftUI.View {
let artsyLogo = UIImage(named: "WhiteArtsyLogo")!
let artworkImage = artwork.image!
let artistName = artwork.artist.name
let artworkTitle = artwork.title
let artworkUrl = artwork.url

GeometryReader { geo in
return GeometryReader { geo in
ZStack() {
Image(uiImage: artworkImage)
.resizable()
Expand Down
8 changes: 6 additions & 2 deletions ios/ArtsyWidget/FullBleed/FullBleed+Widget.swift
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,18 @@ import WidgetKit

extension FullBleed {
struct Widget: SwiftUI.Widget {
static let description: String = "A curated selection of newly uploaded works from galleries, fairs, and auctions."
static let displayName: String = "New This Week"
static let kind: String = "FullBleedWidget"

var body: some WidgetConfiguration {
StaticConfiguration(kind: Widget.kind, provider: Provider()) { entry in
View(entry: entry)
}
.configurationDisplayName("New This Week")
.description("A curated selection of newly uploaded works from galleries, fairs, and auctions.")
.configurationDisplayName(Widget.displayName)
.containerBackgroundRemovable(false)
.contentMarginsDisabled()
.description(Widget.description)
.supportedFamilies(View.supportedFamilies)
}
}
Expand Down
12 changes: 11 additions & 1 deletion ios/ArtsyWidget/LatestArticles/LatestArticles+LargeView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,21 @@ extension LatestArticles {
let entry: Entry

var body: some SwiftUI.View {
if #available(iOSApplicationExtension 17.0, *) {
actualBody().containerBackground(for: .widget) {
Color.white
}
} else {
actualBody()
}
}

func actualBody() -> some SwiftUI.View {
let artsyLogo = UIImage(named: "BlackArtsyLogo")!
let articles = entry.articles
let artsyUrl = WidgetUrl.from(link: "https://www.artsy.net")!

VStack() {
return VStack() {
HStack(alignment: .center) {
Link(destination: artsyUrl) {
Text("LATEST ARTICLES")
Expand Down
12 changes: 11 additions & 1 deletion ios/ArtsyWidget/LatestArticles/LatestArticles+MediumView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,21 @@ extension LatestArticles {
let entry: Entry

var body: some SwiftUI.View {
if #available(iOSApplicationExtension 17.0, *) {
actualBody().containerBackground(for: .widget) {
Color.white
}
} else {
actualBody()
}
}

func actualBody() -> some SwiftUI.View {
let artsyLogo = UIImage(named: "BlackArtsyLogo")!
let articles = entry.articles[0...1]
let artsyUrl = WidgetUrl.from(link: "https://www.artsy.net")!

VStack() {
return VStack() {
HStack(alignment: .center) {
Link(destination: artsyUrl) {
Text("LATEST ARTICLES")
Expand Down
12 changes: 11 additions & 1 deletion ios/ArtsyWidget/LatestArticles/LatestArticles+SmallView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,22 @@ extension LatestArticles {
}

var body: some SwiftUI.View {
if #available(iOSApplicationExtension 17.0, *) {
actualBody().containerBackground(for: .widget) {
Color.white
}
} else {
actualBody()
}
}

func actualBody() -> some SwiftUI.View {
let artsyLogo = UIImage(named: "WhiteArtsyLogo")!
let articleImage = article.image!
let articleTitle = article.title
let articleUrl = article.url!

GeometryReader { geo in
return GeometryReader { geo in
ZStack() {
Image(uiImage: articleImage)
.resizable()
Expand Down
8 changes: 6 additions & 2 deletions ios/ArtsyWidget/LatestArticles/LatestArticles+Widget.swift
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,18 @@ import WidgetKit

extension LatestArticles {
struct Widget: SwiftUI.Widget {
static let description: String = "The latest articles from Artsy Editorial."
static let displayName: String = "Editorial"
static let kind: String = "LatestArticlesWidget"

var body: some WidgetConfiguration {
StaticConfiguration(kind: Widget.kind, provider: Provider()) { entry in
View(entry: entry)
}
.configurationDisplayName("Editorial")
.description("The latest articles from Artsy Editorial.")
.configurationDisplayName(Widget.displayName)
.containerBackgroundRemovable(false)
.contentMarginsDisabled()
.description(Widget.description)
.supportedFamilies(View.supportedFamilies)
}
}
Expand Down

0 comments on commit da05ef2

Please sign in to comment.