Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New fundraising banner and in-app webview donation page #4649

Merged
merged 32 commits into from
Oct 9, 2023
Merged
Show file tree
Hide file tree
Changes from 14 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
f5e606b
Add bottom view and button to SinglePageWebViewController when in tha…
mazevedofs Sep 25, 2023
b206a57
Open webview in app
mazevedofs Sep 25, 2023
c28973d
Web view bottom view adjustments
mazevedofs Sep 25, 2023
a0a6d13
Setup bottom view on web view
mazevedofs Sep 25, 2023
074a43a
Pop view controller instead of dismiss
mazevedofs Sep 26, 2023
aa0edeb
WMF Framework/URL+Extensions.swift
mazevedofs Sep 27, 2023
98a1725
Fix thank you button on thank you page
tonisevener Sep 27, 2023
2dc1efb
Add new fundraising panel class
mazevedofs Sep 29, 2023
d3ec0ee
Add new fundraisu=ing panel
mazevedofs Oct 3, 2023
7650181
Determine if maybe later should be displayed
mazevedofs Oct 3, 2023
0784004
Revert test code
mazevedofs Oct 3, 2023
c644dc3
Merge branch 'apple-pay-4' of https://github.com/wikimedia/wikipedia-…
mazevedofs Oct 3, 2023
f54834c
Adjust close button layout
mazevedofs Oct 3, 2023
c65ce72
Add modals after reminder or donation
mazevedofs Oct 3, 2023
556bfc5
Remove unused prop
mazevedofs Oct 3, 2023
9c3bf88
Change method so Xcode cloud doesn't break my build
mazevedofs Oct 3, 2023
2ce755c
Add toast for already donated option
mazevedofs Oct 3, 2023
87e714d
Merge branch 'apple-pay-4' into new-fundraising-banner
tonisevener Oct 4, 2023
4aab463
Do not mark maybe later as permanently hidden
tonisevener Oct 4, 2023
6308848
Merge branch 'main' of https://github.com/wikimedia/wikipedia-ios int…
mazevedofs Oct 5, 2023
d4f3fd8
PR Feedback
mazevedofs Oct 5, 2023
140f3ea
Merge branch 'new-fundraising-banner' of https://github.com/wikimedia…
mazevedofs Oct 5, 2023
7ad800b
Fix string
mazevedofs Oct 5, 2023
5942bdd
Design review UI adjustments
mazevedofs Oct 5, 2023
04f4dbb
Add separator to ScrollableEducationPanelView
mazevedofs Oct 5, 2023
61436c8
Fix bug with payment method alert presentation and dismissal
tonisevener Oct 5, 2023
4f71526
Fix settings Wikipedia spelling
tonisevener Oct 5, 2023
0d0bfdb
Fix maybe later date bug
tonisevener Oct 5, 2023
9443f0e
Fix a couple of campaign modal bugs
tonisevener Oct 5, 2023
68ca57e
Push footer link to Safari so that we don't automatically dismiss the…
tonisevener Oct 6, 2023
a4b1861
Theme button properly
mazevedofs Oct 6, 2023
60b2939
Merge branch 'main' into new-fundraising-banner
tonisevener Oct 9, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,25 @@ import Foundation
let promptState = WKFundraisingCampaignPromptState(campaignID: asset.id, isHidden: false, maybeLaterDate: maybeLaterDate)
try? sharedCacheStore?.save(key: cacheDirectoryName, cachePromptStateFileName, value: promptState)
}



/// Determine if "maybe later option"should be displayed
/// - Parameters:
/// - asset: WKAsset displayed
/// - currentDate: Current date, sent in as a parameter for stable unit testing.
/// - Returns: Bool
public func showShowMaybeLaterOption(asset: WKFundraisingCampaignConfig.WKAsset, currentDate: Date) -> Bool {
guard let endDateTimestamp = DateFormatter.mediaWikiAPIDateFormatter.date(from: asset.endDate) else {
return false
}

let calendar = Calendar.current
let endDateComponents = calendar.dateComponents([.year, .month, .day], from: endDateTimestamp)
let currentDateComponents = calendar.dateComponents([.year, .month, .day], from: currentDate)

return !(endDateComponents == currentDateComponents)
}

/// Set asset as permanently hidden in persistence, so that it cannot be loaded and displayed on subsequent attempts.
/// - Parameter asset: WKAsset to mark as hidden
public func markAssetAsPermanentlyHidden(asset: WKFundraisingCampaignConfig.WKAsset) {
Expand Down Expand Up @@ -92,6 +109,7 @@ import Foundation

if let cachedResult {
activeCountryConfigs = activeCountryConfigs(from: cachedResult, countryCode: countryCode, currentDate: currentDate)

return queuedActiveLanguageSpecificAsset(languageCode: wkProject.languageCode, languageVariantCode: wkProject.languageVariantCode, currentDate: currentDate)
}

Expand Down Expand Up @@ -134,7 +152,7 @@ import Foundation
switch result {
case .success(let response):
activeCountryConfigs = self.activeCountryConfigs(from: response, countryCode: countryCode, currentDate: currentDate)

try? sharedCacheStore?.save(key: cacheDirectoryName, cacheConfigFileName, value: response)

completion(.success(()))
Expand Down Expand Up @@ -228,8 +246,8 @@ import Foundation

return WKFundraisingCampaignConfig.WKAsset.WKAction(title: action.title, url: url)
}
let asset = WKFundraisingCampaignConfig.WKAsset(id: config.id, textHtml: value.text, footerHtml: value.footer, actions: actions, countryCode: countryCode, currencyCode: value.currencyCode, languageCode: key)

let asset = WKFundraisingCampaignConfig.WKAsset(id: config.id, textHtml: value.text, footerHtml: value.footer, actions: actions, countryCode: countryCode, currencyCode: value.currencyCode, endDate: config.endTimeString, languageCode: key)
tonisevener marked this conversation as resolved.
Show resolved Hide resolved
assets[key] = asset
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ public struct WKFundraisingCampaignConfig {
public let actions: [WKAction]
public let countryCode: String
public let currencyCode: String
public let endDate: String
public let languageCode: String
}

Expand Down
5 changes: 5 additions & 0 deletions WMF Framework/CommonStrings.swift
Original file line number Diff line number Diff line change
Expand Up @@ -419,6 +419,9 @@ public class CommonStrings: NSObject {

public static let continueButton = WMFLocalizedString("continue-button-title", value: "Continue", comment: "Continue button title")

public static let donateThankTitle = WMFLocalizedString("donate-success-title", value: "Thank you!", comment: "Thank you toast title displayed after a user successfully donates.")
public static let donateThankSubtitle = WMFLocalizedString("donate-success-subtitle", value: "Your generosity to Wikipedia means so much to us.", comment: "Thank you toast subtitle displayed after a user successfully donates.")

// Article As A Living Doucment Strings - for some reason build script doesn't auto generate these when used directly in SignificantEventsViewModels.swift

public static let viewFullHistoryText = WMFLocalizedString("aaald-view-full-history-button", value: "View full article history", comment: "Text displayed in a button for pushing to the full article history view on the article as a living document screen.")
Expand Down Expand Up @@ -587,4 +590,6 @@ public extension CommonStrings {

static let tachelhitVariantsAlertBody = WMFLocalizedString("tachelhit-variants-alert-body", value: "The Wikipedia app now supports the following Tachelhit variants as primary or secondary languages within the app, making it easier to read, search and edit in your preferred variants:\n\nⵜⴰⵛⵍⵃⵉⵜ Tachelhit, Tifinagh (shi-tfng)\nTaclḥit Tachelhit, Latin (shi-latn)", comment: "Body text of alert used to inform users about Tachelhit variant support. Please do not translate the newlines (\n) or Tachelhit characters (ⵜⴰⵛⵍⵃⵉⵜ, etc.).")

static let returnToArticle = WMFLocalizedString("return-to-article", value: "Return to article", comment: "Title for button indicating that is possible to go back to article")

}
11 changes: 11 additions & 0 deletions WMF Framework/URL+Extensions.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import Foundation

public extension URL {
var isThankYouDonationURL: Bool {
tonisevener marked this conversation as resolved.
Show resolved Hide resolved
return self.host == "thankyou.wikipedia.org" || self.host == "thankyou.wikimedia.org"
}

var isDonationURL: Bool {
return self.host == "donate.wikimedia.org"
}
}
22 changes: 22 additions & 0 deletions Wikipedia.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1805,6 +1805,10 @@
836BF5702869F9C200B98321 /* TalkPageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836BF56D2869F9C200B98321 /* TalkPageViewController.swift */; };
836BF5712869F9C200B98321 /* TalkPageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836BF56D2869F9C200B98321 /* TalkPageViewController.swift */; };
836CB7A229DF45F10058A454 /* UserSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836CB7A129DF45F10058A454 /* UserSession.swift */; };
8373EDFA2AC47C5C0036FA6E /* FundraisingAnnouncementPanel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8373EDF92AC47C5C0036FA6E /* FundraisingAnnouncementPanel.swift */; };
8373EDFB2AC47C5C0036FA6E /* FundraisingAnnouncementPanel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8373EDF92AC47C5C0036FA6E /* FundraisingAnnouncementPanel.swift */; };
8373EDFC2AC47C5C0036FA6E /* FundraisingAnnouncementPanel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8373EDF92AC47C5C0036FA6E /* FundraisingAnnouncementPanel.swift */; };
8373EDFD2AC47C5C0036FA6E /* FundraisingAnnouncementPanel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8373EDF92AC47C5C0036FA6E /* FundraisingAnnouncementPanel.swift */; };
837A15F328DA591E00AAC3FC /* TalkPageCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 837A15F228DA591E00AAC3FC /* TalkPageCache.swift */; };
837A15F428DA591E00AAC3FC /* TalkPageCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 837A15F228DA591E00AAC3FC /* TalkPageCache.swift */; };
837A15F528DA591E00AAC3FC /* TalkPageCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 837A15F228DA591E00AAC3FC /* TalkPageCache.swift */; };
Expand Down Expand Up @@ -1947,6 +1951,11 @@
83B01F9B23DB62CD001185F4 /* ArticleViewController+ArticleInformation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83B01F9923DB62CD001185F4 /* ArticleViewController+ArticleInformation.swift */; };
83B01F9C23DB62CD001185F4 /* ArticleViewController+ArticleInformation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83B01F9923DB62CD001185F4 /* ArticleViewController+ArticleInformation.swift */; };
83B01F9D23DB62CD001185F4 /* ArticleViewController+ArticleInformation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83B01F9923DB62CD001185F4 /* ArticleViewController+ArticleInformation.swift */; };
83B02D542AC200BC00DAD749 /* URL+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83B02D532AC200BC00DAD749 /* URL+Extensions.swift */; };
83B02D552AC200BC00DAD749 /* URL+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83B02D532AC200BC00DAD749 /* URL+Extensions.swift */; };
83B02D562AC200BC00DAD749 /* URL+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83B02D532AC200BC00DAD749 /* URL+Extensions.swift */; };
83B02D572AC200BC00DAD749 /* URL+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83B02D532AC200BC00DAD749 /* URL+Extensions.swift */; };
83B02D582AC200BC00DAD749 /* URL+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83B02D532AC200BC00DAD749 /* URL+Extensions.swift */; };
83B1218427FC8750006B8CCC /* RemoteNotificationsFunnel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83B1218327FC8750006B8CCC /* RemoteNotificationsFunnel.swift */; };
83B4CDBF20E3DCD6007D5A6E /* SearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83B4CDBE20E3DCD6007D5A6E /* SearchViewController.swift */; };
83B4CDC020E3DCD6007D5A6E /* SearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83B4CDBE20E3DCD6007D5A6E /* SearchViewController.swift */; };
Expand Down Expand Up @@ -4524,6 +4533,7 @@
836BF56D2869F9C200B98321 /* TalkPageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TalkPageViewController.swift; sourceTree = "<group>"; };
836CB7A129DF45F10058A454 /* UserSession.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserSession.swift; sourceTree = "<group>"; };
83703A7724DC44C600EE98EA /* RemoteNotifications 2.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "RemoteNotifications 2.xcdatamodel"; sourceTree = "<group>"; };
8373EDF92AC47C5C0036FA6E /* FundraisingAnnouncementPanel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FundraisingAnnouncementPanel.swift; sourceTree = "<group>"; };
837A15F228DA591E00AAC3FC /* TalkPageCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TalkPageCache.swift; sourceTree = "<group>"; };
8380753620DC7481000D222C /* ColumnarCollectionViewLayoutInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColumnarCollectionViewLayoutInfo.swift; sourceTree = "<group>"; };
8380753820DC7684000D222C /* ColumarCollectionViewLayoutSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColumarCollectionViewLayoutSection.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -4581,6 +4591,7 @@
83B01F8F23DB41BE001185F4 /* ArticleViewController+Sharing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ArticleViewController+Sharing.swift"; sourceTree = "<group>"; };
83B01F9423DB41D7001185F4 /* ArticleViewController+FindInPage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ArticleViewController+FindInPage.swift"; sourceTree = "<group>"; };
83B01F9923DB62CD001185F4 /* ArticleViewController+ArticleInformation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ArticleViewController+ArticleInformation.swift"; sourceTree = "<group>"; };
83B02D532AC200BC00DAD749 /* URL+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "URL+Extensions.swift"; path = "WMF Framework/URL+Extensions.swift"; sourceTree = SOURCE_ROOT; };
83B1218327FC8750006B8CCC /* RemoteNotificationsFunnel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteNotificationsFunnel.swift; sourceTree = "<group>"; };
83B4CDBE20E3DCD6007D5A6E /* SearchViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchViewController.swift; sourceTree = "<group>"; };
83B5DF9829F6C7E300F8329D /* EditAttemptFunnel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditAttemptFunnel.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -8016,6 +8027,7 @@
B01EA07D2022856200813726 /* ScrollableEducationPanelView.xib */,
B0BCF0B8202537D800986F72 /* Panels.swift */,
B0016CB821354D9D00FA1096 /* AutoLayoutSafeMultiLineButton.swift */,
8373EDF92AC47C5C0036FA6E /* FundraisingAnnouncementPanel.swift */,
);
name = Popover;
sourceTree = "<group>";
Expand Down Expand Up @@ -9381,6 +9393,7 @@
D85F56A1219C45C900AF3E13 /* URLComponents+Extensions.swift */,
835A042C223AD63000D4D758 /* ArticleSummaryController.swift */,
670AF19A26C1CA38005F76D0 /* EchoSubscriptionFetcher.swift */,
83B02D532AC200BC00DAD749 /* URL+Extensions.swift */,
);
name = Controllers;
path = ../Wikipedia/Code;
Expand Down Expand Up @@ -11611,6 +11624,7 @@
67E5DA5C2761B0AB00CE827D /* NotificationsCenterFilterView.swift in Sources */,
7A6ED51720ADBF950001849F /* UserHistoryFunnel.swift in Sources */,
7A1C4995227265CD00230ED2 /* InsertMediaSelectedImageViewController.swift in Sources */,
83B02D542AC200BC00DAD749 /* URL+Extensions.swift in Sources */,
7A71566E22697AAF0066FEC4 /* InsertMediaCustomImageSizeSettingTableViewCell.swift in Sources */,
D858C7B6210B91CD0039E0C9 /* PassthroughView.swift in Sources */,
83FBE9751F6181E00026C7EB /* ShareAFactActivityImageItemProvider.swift in Sources */,
Expand Down Expand Up @@ -11642,6 +11656,7 @@
7AB7DEC8227203A600DD61A2 /* InsertMediaViewController.swift in Sources */,
67FBE33A29705FC200A2E4AD /* TalkPageArchivesItem.swift in Sources */,
7A16C4E6212D941C00F0D5EC /* SubSettingsViewController.swift in Sources */,
8373EDFA2AC47C5C0036FA6E /* FundraisingAnnouncementPanel.swift in Sources */,
7A2FE55C20517BAE00F92F8F /* EraseSavedArticlesView.swift in Sources */,
B0E804C81C0CE0B40065EBC0 /* NSAttributedString+WMFModify.m in Sources */,
83F1096423D0D4F6003F3E9E /* ArticlePreviewingDelegate.swift in Sources */,
Expand Down Expand Up @@ -11998,6 +12013,7 @@
6739A182273061220063E0E0 /* RemoteNotificationsMarkAllAsReadOperation.swift in Sources */,
7A0F2589217221D10028871B /* RepeatingTimer.swift in Sources */,
D844D9B51D6CB77D0042D692 /* MWKSavedPageList.m in Sources */,
83B02D582AC200BC00DAD749 /* URL+Extensions.swift in Sources */,
D84C35F31F323CD100895FA1 /* ArticleFullWidthImageCollectionViewCell.swift in Sources */,
83222DB41F8E554800338BE5 /* WMFContent+CoreDataProperties.m in Sources */,
006694FE265D9F3A00E23AE4 /* WidgetCache.swift in Sources */,
Expand Down Expand Up @@ -12414,6 +12430,7 @@
83B01F8423DB1235001185F4 /* SectionFetcher.swift in Sources */,
6782DBDC2344EC86003FA21B /* DiffHeaderViewModels.swift in Sources */,
D8B3D7691EC34F5B00930C21 /* SaveButtonsController.swift in Sources */,
83B02D572AC200BC00DAD749 /* URL+Extensions.swift in Sources */,
7AFA21BE20110D7900E957E7 /* ReadingListHintViewController.swift in Sources */,
D8A42AE51E815A9C00D8E281 /* WMFWelcomeContainerViewController.swift in Sources */,
D87676A221E7B73C00491039 /* ToolbarSeparatorView.swift in Sources */,
Expand Down Expand Up @@ -12546,6 +12563,7 @@
7AFEB3F81FE8511700D7BC57 /* SavedArticlesCollectionViewCell.swift in Sources */,
7A9524CE22665E6400C55CDC /* InsertMediaSettingsImageView.swift in Sources */,
8320331E22B90529004A9EDA /* NavigationStateController.swift in Sources */,
8373EDFD2AC47C5C0036FA6E /* FundraisingAnnouncementPanel.swift in Sources */,
0042812825E6E841004945B3 /* NYTPhotoTransitionController.m in Sources */,
D8A42B471E815A9C00D8E281 /* UIView+IBExtras.swift in Sources */,
67033E1C2A61DC3700896852 /* ArticleViewController+Watchlist.swift in Sources */,
Expand Down Expand Up @@ -13151,6 +13169,7 @@
8382F8DA20D9371E00AE5250 /* WMFContentGroup+DetailViewControllers.swift in Sources */,
67E466FB241BED800014149B /* EditHistoryCompareFunnel.swift in Sources */,
8386BDF52386D735007EE89D /* ViewController+URLHandling.swift in Sources */,
8373EDFC2AC47C5C0036FA6E /* FundraisingAnnouncementPanel.swift in Sources */,
D8CE25CF1E698E2400DAE2E0 /* UIViewController+WMFWelcomeStoryboard.swift in Sources */,
67FBE337297056EB00A2E4AD /* TalkPageArchivesFetcher.swift in Sources */,
678D29B02729F0580036C5D9 /* NotificationsCenterCellViewModel+LinkExtensions.swift in Sources */,
Expand All @@ -13173,6 +13192,7 @@
41FCAA3721C844CB001D8411 /* ReadingListEntryCollectionViewController.swift in Sources */,
7A1C4990227254EC00230ED2 /* InsertMediaSearchViewController.swift in Sources */,
672285722540B56D0038E332 /* ReferenceBackLinksViewControllerDelegate.swift in Sources */,
83B02D562AC200BC00DAD749 /* URL+Extensions.swift in Sources */,
D8CE25D81E698E2400DAE2E0 /* WMFRandomDiceButton.m in Sources */,
678D79EB235E5959006161FF /* DiffListChangeItemViewModel.swift in Sources */,
6734EE7722976AED00F00B05 /* ActionButton.swift in Sources */,
Expand Down Expand Up @@ -13735,6 +13755,7 @@
67E466FC241BED800014149B /* EditHistoryCompareFunnel.swift in Sources */,
D8EC3ECD1E9BDA35006712EB /* UIViewController+WMFWelcomeStoryboard.swift in Sources */,
8386BDF72386D735007EE89D /* ViewController+URLHandling.swift in Sources */,
8373EDFB2AC47C5C0036FA6E /* FundraisingAnnouncementPanel.swift in Sources */,
D8E27BA81F82B38600F9D2B3 /* RMessage.m in Sources */,
67FBE336297056EB00A2E4AD /* TalkPageArchivesFetcher.swift in Sources */,
678D29AF2729F0580036C5D9 /* NotificationsCenterCellViewModel+LinkExtensions.swift in Sources */,
Expand All @@ -13757,6 +13778,7 @@
7A1C4991227254EC00230ED2 /* InsertMediaSearchViewController.swift in Sources */,
B031032F1F677BED00E2FCF6 /* WMFWelcomeExplorationViewController.swift in Sources */,
678D79EC235E595A006161FF /* DiffListChangeItemViewModel.swift in Sources */,
83B02D552AC200BC00DAD749 /* URL+Extensions.swift in Sources */,
D858C7B8210B91CE0039E0C9 /* PassthroughView.swift in Sources */,
6734EE7822976AED00F00B05 /* ActionButton.swift in Sources */,
D8A47C8C23D728A4002AA823 /* ArticleTableOfContentsDisplayController.swift in Sources */,
Expand Down
Loading