Skip to content

Commit 9659d8b

Browse files
authored
Ship the Media Library Storage view (#24982)
* Add analytics events * Remove feature flag
1 parent 8604ce3 commit 9659d8b

File tree

4 files changed

+25
-18
lines changed

4 files changed

+25
-18
lines changed

WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ import WordPressShared
2121

2222
// Media
2323
case siteMediaShareTapped
24+
case mediaStorageDetailsViewed
25+
case mediaStorageDetailsActionTapped
26+
case mediaStorageDetailsPurchaseCompleted
2427

2528
// Settings and Prepublishing Nudges
2629
case editorPostPublishTap
@@ -720,6 +723,12 @@ import WordPressShared
720723
// Media
721724
case .siteMediaShareTapped:
722725
return "site_media_shared_tapped"
726+
case .mediaStorageDetailsViewed:
727+
return "media_storage_details_viewed"
728+
case .mediaStorageDetailsActionTapped:
729+
return "media_storage_details_action_tapped"
730+
case .mediaStorageDetailsPurchaseCompleted:
731+
return "media_storage_details_purchase_completed"
723732
// Editor
724733
case .editorPostPublishTap:
725734
return "editor_post_publish_tapped"

WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ public enum FeatureFlag: Int, CaseIterable {
2424
case readerGutenbergCommentComposer
2525
case pluginManagementOverhaul
2626
case newStats
27-
case mediaQuotaView
2827
case intelligence
2928
case newSupport
3029
case nativeBlockInserter
@@ -80,8 +79,6 @@ public enum FeatureFlag: Int, CaseIterable {
8079
return false
8180
case .newStats:
8281
return false
83-
case .mediaQuotaView:
84-
return false
8582
case .intelligence:
8683
let languageCode = Locale.current.language.languageCode?.identifier
8784
return (languageCode ?? "en").hasPrefix("en")
@@ -130,7 +127,6 @@ extension FeatureFlag {
130127
case .pluginManagementOverhaul: "Plugin Management Overhaul"
131128
case .readerGutenbergCommentComposer: "Gutenberg Comment Composer"
132129
case .newStats: "New Stats"
133-
case .mediaQuotaView: "Media Quota"
134130
case .intelligence: "Intelligence"
135131
case .newSupport: "New Support"
136132
case .nativeBlockInserter: "Native Block Inserter"

WordPress/Classes/ViewRelated/Media/SiteMedia/Controllers/SiteMediaAddMediaMenuController.swift

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,18 +35,12 @@ final class SiteMediaAddMediaMenuController: NSObject, PHPickerViewControllerDel
3535
UIMenu(options: [.displayInline], children: freeMediaActions)
3636
]
3737
}
38-
if let quotaUsageDescription = blog.quotaUsageDescription {
39-
if FeatureFlag.mediaQuotaView.enabled {
40-
children += [
41-
UIAction(title: Strings.viewUsage, subtitle: blog.quotaUsageShortDescription, image: UIImage(systemName: "opticaldiscdrive"), handler: { _ in
42-
self.showQuotaView(from: viewController)
43-
})
44-
]
45-
} else {
46-
children += [
47-
UIAction(subtitle: quotaUsageDescription, handler: { _ in })
48-
]
49-
}
38+
if blog.isHostedAtWPcom, blog.isQuotaAvailable {
39+
children += [
40+
UIAction(title: Strings.viewUsage, subtitle: blog.quotaUsageShortDescription, image: UIImage(systemName: "opticaldiscdrive"), handler: { _ in
41+
self.showQuotaView(from: viewController)
42+
})
43+
]
5044
}
5145
return UIMenu(options: [.displayInline], children: children)
5246
}

WordPress/Classes/ViewRelated/Media/SiteMedia/Views/MediaStorageDetailsView.swift

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import SVProgressHUD
44
import WordPressAPI
55
import WordPressCore
66
import WordPressData
7+
import WordPressShared
78

89
struct MediaStorageDetailsView: View {
910
@State private var purchase: WebPurchase?
@@ -54,6 +55,7 @@ struct MediaStorageDetailsView: View {
5455
}
5556
.sheet(item: $purchase) { purchase in
5657
WebPurchaseView(url: purchase.url, customTitle: purchase.title) { _ in
58+
WPAnalytics.track(.mediaStorageDetailsPurchaseCompleted, properties: ["type": purchase.purchaseType])
5759
SVProgressHUD.showSuccess(withStatus: purchase.successMessage)
5860

5961
self.purchase = nil
@@ -67,6 +69,7 @@ struct MediaStorageDetailsView: View {
6769
}
6870
}
6971
.task {
72+
WPAnalytics.track(.mediaStorageDetailsViewed)
7073
await viewModel.refresh()
7174
}
7275
}
@@ -77,10 +80,12 @@ struct MediaStorageDetailsView: View {
7780
switch action.kind {
7881
case .buyStorage:
7982
ActionSection(action: action) {
83+
WPAnalytics.track(.mediaStorageDetailsActionTapped, properties: ["action": "storage"])
8084
self.purchase = .storage(blog: viewModel.blog)
8185
}
8286
case .upgradePlan:
8387
ActionSection(action: action) {
88+
WPAnalytics.track(.mediaStorageDetailsActionTapped, properties: ["action": "upgrade-plan"])
8489
self.purchase = .upgradePlan(blog: viewModel.blog)
8590
}
8691
}
@@ -158,6 +163,7 @@ private struct WebPurchase: Identifiable {
158163
var url: URL
159164
var title: String
160165
var successMessage: String
166+
var purchaseType: String
161167

162168
var id: URL {
163169
url
@@ -169,15 +175,17 @@ private struct WebPurchase: Identifiable {
169175
.appending(path: blog.primaryDomainAddress)
170176
.appending(queryItems: [.init(name: "product", value: "storage")]),
171177
title: Strings.buyStorageTitle,
172-
successMessage: Strings.storageUpgradeSuccessMessage
178+
successMessage: Strings.storageUpgradeSuccessMessage,
179+
purchaseType: "storage"
173180
)
174181
}
175182

176183
static func upgradePlan(blog: Blog) -> Self {
177184
WebPurchase(
178185
url: URL(string: "https://wordpress.com/plans/yearly/")!.appending(path: blog.primaryDomainAddress),
179186
title: Strings.upgradePlanTitle,
180-
successMessage: Strings.planUpgradeSuccessMessage
187+
successMessage: Strings.planUpgradeSuccessMessage,
188+
purchaseType: "upgrade-plan"
181189
)
182190
}
183191
}

0 commit comments

Comments
 (0)