Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
9c88408
Pass ID of post's featured image over the bridge when editor first loads
SiobhyB Apr 19, 2021
4933e76
Declare new "FeaturedImageDelegate" protocol
SiobhyB Apr 22, 2021
da1a801
Call didSetFeaturedImage when a featured image is set
SiobhyB Apr 22, 2021
869aa3d
Call didSetFeaturedImage in GutenbergViewController.swift
SiobhyB Apr 22, 2021
19d7afd
Establish connection between PostSettings and GutenbergViewController
SiobhyB Apr 28, 2021
8847ad6
Place didSetFeaturedImage() amongst other functions that send/receive…
SiobhyB Apr 29, 2021
01145b8
Set didSetFeaturedImage() to nil when featured image is removed
SiobhyB Apr 29, 2021
6275afc
Remove trailing whitespace
SiobhyB Apr 29, 2021
da208ce
Rename didSetFeaturedImage() to sendToJSFeaturedImageId()
SiobhyB Apr 29, 2021
6d67735
Renamed "sendToJSFeaturedImageId" to "gutenbergDidRequestFeaturedImag…
SiobhyB Apr 29, 2021
4f5d3a1
Merge branch 'gutenberg/add/featured-functionality-to-image-block' in…
SiobhyB Apr 30, 2021
9799b3e
Add gutenbergDidRequestToSetFeaturedImage() function
SiobhyB May 3, 2021
fb56f82
Build out "setFeaturedImage" function
SiobhyB May 3, 2021
6960847
Build out notices to send when a new featured image is set
SiobhyB May 3, 2021
ef85b39
Add showAlertForReplacingFeaturedImage() function
SiobhyB May 3, 2021
aa0b7fc
Build out logic in gutenbergDidRequestToSetFeaturedImage() method
SiobhyB May 3, 2021
72955ee
Build out alertController for showAlertForReplacingFeaturedImage()
SiobhyB May 3, 2021
26faf71
Gutenberg Mobile bump
SiobhyB May 3, 2021
8933851
Remove trailing whitespace
SiobhyB May 3, 2021
e333fdb
Tidy up if/else logic in gutenbergDidRequestToSetFeaturedImage()
SiobhyB May 3, 2021
75fce42
[RNMobile] Add Featured Banner to Image Block (#16332)
SiobhyB May 6, 2021
f15421c
Merge branch 'gutenberg/add/featured-functionality-to-image-block' in…
SiobhyB May 6, 2021
da40285
Remove ! force-wrapping surrounding featuredImage value, to account f…
SiobhyB May 7, 2021
81d6d8e
Merge branch 'develop' into gutenberg/add/featured-functionality-to-i…
SiobhyB May 13, 2021
6c50d04
Merge branch 'gutenberg/add/featured-functionality-to-image-block' in…
SiobhyB May 13, 2021
7a2dd7e
Merge branch 'develop' into gutenberg/add/featured-functionality-to-i…
SiobhyB May 27, 2021
29dfc12
Merge branch 'gutenberg/add/featured-functionality-to-image-block' in…
SiobhyB May 27, 2021
6b3dfaa
New 'GutenbergFeaturedImageHelper' class
SiobhyB May 30, 2021
e4ba370
Refactor if/else statement for readability
SiobhyB May 30, 2021
535bab1
Introduce 'mediaIdNoFeaturedImageSet' constant
SiobhyB May 30, 2021
763920d
Address styling errors reported by Hound
SiobhyB May 30, 2021
e6d27de
Fire tracks event when image is removed/added
SiobhyB May 30, 2021
1bf4147
Unwrap 'featuredImageId' to prevent crash when nil
SiobhyB May 30, 2021
80a5bda
Reposition 'mediaIdNoFeaturedImageSet' constant
SiobhyB May 30, 2021
24e1260
Edit descriptions of strings for clarity
SiobhyB May 30, 2021
cc58487
Tweaked wording of comment for clarity
SiobhyB May 30, 2021
25c624b
Reference latest Gutenberg Mobile commit
SiobhyB May 30, 2021
b1085c6
Hash and pod changes
SiobhyB May 30, 2021
1a8758a
Add GutenbergFeaturedImageHelper to project.pbxproj
SiobhyB May 30, 2021
51c8c13
Fix typo in string's description
SiobhyB Jun 2, 2021
02db104
Fix typo in string
SiobhyB Jun 2, 2021
9d1aaf5
Convert variable into static constant
SiobhyB Jun 2, 2021
f97af28
Remove trailing white space
SiobhyB Jun 2, 2021
25da33e
Convert if statements to guard statements
SiobhyB Jun 2, 2021
881d799
Remove trailing whitespace
SiobhyB Jun 2, 2021
8063237
Reword action sheet's title for clarity
SiobhyB Jun 2, 2021
7e7a291
Undo title case from notices for consistency
SiobhyB Jun 2, 2021
d7c11a1
Update Gutenberg Mobile reference
SiobhyB Jun 2, 2021
f265b0a
Podfile changes
SiobhyB Jun 2, 2021
62ee3d9
Merge branch 'develop' into gutenberg/add/featured-functionality-to-i…
SiobhyB Jun 3, 2021
aa5b398
Merge branch 'gutenberg/add/featured-functionality-to-image-block' in…
SiobhyB Jun 3, 2021
b800356
Podfile changes
SiobhyB Jun 3, 2021
5b886aa
Podfile changes
SiobhyB Jun 3, 2021
21e9b4a
Merge branch 'develop' into gutenberg/add/featured-functionality-to-i…
SiobhyB Jun 3, 2021
ca5347c
Merge branch 'develop' into gutenberg/add/featured-functionality-to-i…
SiobhyB Jun 3, 2021
d606737
Merge branch 'gutenberg/add/featured-functionality-to-image-block' in…
SiobhyB Jun 3, 2021
89494c3
Refactor logic around dismissing controller
SiobhyB Jun 3, 2021
287307b
Remove trailing whitespace
SiobhyB Jun 3, 2021
41308dd
Podfile and Podfile.lock changes
SiobhyB Jun 4, 2021
74393ca
Make 'replace' dialog work with iPad's popovers
SiobhyB Jun 4, 2021
674bcc7
Merge branch 'develop' into gutenberg/add/featured-functionality-to-i…
SiobhyB Jun 21, 2021
3086263
Merge branch 'gutenberg/add/featured-functionality-to-image-block' in…
SiobhyB Jun 21, 2021
998e411
Refactor code for iPad-specific popoverController
SiobhyB Jun 21, 2021
68187f3
Remove trailing whitespace
SiobhyB Jun 21, 2021
cb9e202
Podfile changes
SiobhyB Jun 21, 2021
791ebd7
Podfile changes
SiobhyB Jun 21, 2021
2283a4e
retrigger checks
SiobhyB Jun 24, 2021
8f47364
Center and re-style popoverController
SiobhyB Jun 24, 2021
e1c668b
Merge pull request #16426 from wordpress-mobile/gutenberg/add/set-as-…
SiobhyB Jun 25, 2021
a4369dd
Update Gutenberg Mobile ref
SiobhyB Jun 29, 2021
76d4e2d
Podfile updates
SiobhyB Jun 29, 2021
7d6b8c7
Merge branch 'develop' into gutenberg/add/featured-functionality-to-i…
SiobhyB Jun 29, 2021
9c7baf1
Podfile updates
SiobhyB Jun 29, 2021
2971453
Podfile updates
SiobhyB Jun 29, 2021
6b2e27b
Podfile updates
SiobhyB Jun 29, 2021
d552f4a
Podfile updates
SiobhyB Jun 29, 2021
070dbca
Merge branch 'develop' into gutenberg/add/featured-functionality-to-i…
SiobhyB Jul 1, 2021
be699d7
Podfile updates
SiobhyB Jul 1, 2021
f09b8d9
Merge branch 'develop' into gutenberg/add/featured-functionality-to-i…
SiobhyB Jul 29, 2021
c941f93
Pod updates
SiobhyB Jul 30, 2021
5e08930
Merge branch 'develop' into gutenberg/add/featured-functionality-to-i…
SiobhyB Aug 2, 2021
10e87f5
Podfile updates
SiobhyB Aug 2, 2021
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
2 changes: 1 addition & 1 deletion Podfile
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ abstract_target 'Apps' do
## Gutenberg (React Native)
## =====================
##
gutenberg :tag => 'v1.58.0'
gutenberg :tag => 'v1.59.0-alpha1'

## Third party libraries
## =====================
Expand Down
182 changes: 91 additions & 91 deletions Podfile.lock

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import Foundation
import Gutenberg

class GutenbergFeaturedImageHelper: NSObject {
fileprivate let post: AbstractPost
fileprivate let gutenberg: Gutenberg

static let mediaIdNoFeaturedImageSet = 0

let event: WPAnalyticsEvent = .editorPostFeaturedImageChanged

init(post: AbstractPost, gutenberg: Gutenberg) {
self.post = post
self.gutenberg = gutenberg
super.init()
}

func setFeaturedImage(mediaID: Int32) {
let media = Media.existingMediaWith(mediaID: NSNumber(value: mediaID), inBlog: post.blog)
post.featuredImage = media

if mediaID == GutenbergFeaturedImageHelper.mediaIdNoFeaturedImageSet {
gutenberg.showNotice(NSLocalizedString("Removed as featured image", comment: "Notice confirming that an image has been removed as the post's featured image."))
WPAnalytics.track(event, properties: [
"via": "gutenberg",
"action": "removed"
])
} else {
gutenberg.showNotice(NSLocalizedString("Set as featured image", comment: "Notice confirming that an image has been set as the post's featured image."))
WPAnalytics.track(event, properties: [
"via": "gutenberg",
"action": "added"
])
}

gutenberg.featuredImageIdNativeUpdated(mediaId: mediaID)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import Aztec
import WordPressFlux
import Kanvas

class GutenbergViewController: UIViewController, PostEditor {
class GutenbergViewController: UIViewController, PostEditor, FeaturedImageDelegate {

let errorDomain: String = "GutenbergViewController.errorDomain"

Expand Down Expand Up @@ -210,6 +210,7 @@ class GutenbergViewController: UIViewController, PostEditor {
attachmentDelegate = AztecAttachmentDelegate(post: post)
mediaPickerHelper = GutenbergMediaPickerHelper(context: self, post: post)
mediaInserterHelper = GutenbergMediaInserterHelper(post: post, gutenberg: gutenberg)
featuredImageHelper = GutenbergFeaturedImageHelper(post: post, gutenberg: gutenberg)
stockPhotos = GutenbergStockPhotos(gutenberg: gutenberg, mediaInserter: mediaInserterHelper)
filesAppMediaPicker = GutenbergFilesAppMediaSource(gutenberg: gutenberg, mediaInserter: mediaInserterHelper)
tenorMediaPicker = GutenbergTenorMediaPicker(gutenberg: gutenberg, mediaInserter: mediaInserterHelper)
Expand All @@ -234,6 +235,10 @@ class GutenbergViewController: UIViewController, PostEditor {
return GutenbergMediaInserterHelper(post: post, gutenberg: gutenberg)
}()

lazy var featuredImageHelper: GutenbergFeaturedImageHelper = {
return GutenbergFeaturedImageHelper(post: post, gutenberg: gutenberg)
}()

/// For autosaving - The debouncer will execute local saving every defined number of seconds.
/// In this case every 0.5 second
///
Expand Down Expand Up @@ -508,6 +513,10 @@ class GutenbergViewController: UIViewController, PostEditor {
}
}

func gutenbergDidRequestFeaturedImageId(_ mediaID: NSNumber) {
gutenberg.featuredImageIdNativeUpdated(mediaId: Int32(truncating: mediaID))
}

// MARK: - Event handlers

@objc func presentationController(forPresented presented: UIViewController, presenting: UIViewController?, source: UIViewController) -> UIPresentationController? {
Expand Down Expand Up @@ -653,6 +662,59 @@ extension GutenbergViewController: GutenbergBridgeDelegate {
mediaInserterHelper.cancelUploadOf(media: media)
}

func gutenbergDidRequestToSetFeaturedImage(for mediaID: Int32) {
let featuredImageId = post.featuredImage?.mediaID

let presentAlert = { [weak self] in
guard let `self` = self else { return }

guard featuredImageId as? Int32 != mediaID else {
// nothing special to do, trying to set the image that's already set as featured
return
}

guard mediaID != GutenbergFeaturedImageHelper.mediaIdNoFeaturedImageSet else {
// user tries to clear the featured image setting
self.featuredImageHelper.setFeaturedImage(mediaID: mediaID)
return
}

guard featuredImageId != nil else {
// current featured image is not set so, go ahead and set it to the provided one
self.featuredImageHelper.setFeaturedImage(mediaID: mediaID)
return
}

// ask the user to confirm changing the featured image since there's already one set
self.showAlertForReplacingFeaturedImage(mediaID: mediaID)
}

if presentedViewController != nil {
dismiss(animated: false, completion: presentAlert)
} else {
presentAlert()
}
}

func showAlertForReplacingFeaturedImage(mediaID: Int32) {
let alertController = UIAlertController(title: NSLocalizedString("Featured Image Already Set", comment: "Title message on dialog that prompts user to confirm or cancel the replacement of a featured image."),
message: NSLocalizedString("You already have a featured image set. Do you want to replace it?", comment: "Main message on dialog that prompts user to confirm or cancel the replacement of a featured image."),
preferredStyle: .actionSheet)

let replaceAction = UIAlertAction(title: NSLocalizedString("Replace", comment: "Button to confirm the replacement of a featured image."), style: .default) { (action) in
self.featuredImageHelper.setFeaturedImage(mediaID: mediaID)
}

alertController.addAction(replaceAction)
alertController.addCancelActionWithTitle(NSLocalizedString("Cancel", comment: "Button to cancel the replacement of a featured image."))

alertController.popoverPresentationController?.sourceView = view
alertController.popoverPresentationController?.sourceRect = view.bounds
alertController.popoverPresentationController?.permittedArrowDirections = []

present(alertController, animated: true, completion: nil)
}

struct AnyEncodable: Encodable {

let value: Encodable
Expand Down Expand Up @@ -1032,6 +1094,10 @@ extension GutenbergViewController: GutenbergBridgeDataSource {
return post.postTitle ?? ""
}

func gutenbergFeaturedImageId() -> NSNumber? {
return post.featuredImage?.mediaID
}

func gutenbergPostType() -> String {
return post is Page ? "page" : "post"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ extension PostEditor where Self: UIViewController {
} else {
settingsViewController = PostSettingsViewController(post: post)
}
settingsViewController.featuredImageDelegate = self as? FeaturedImageDelegate
settingsViewController.hidesBottomBarWhenPushed = true
self.navigationController?.pushViewController(settingsViewController, animated: true)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ extension PostSettingsViewController {
MediaCoordinator.shared.retryMedia(media)
setupObservingOf(media: media)
}

if let mediaIdentifier = apost.featuredImage?.mediaID {
featuredImageDelegate?.gutenbergDidRequestFeaturedImageId(mediaIdentifier)
}
}

@objc func removeMediaObserver() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,19 @@
#import <UIKit/UIKit.h>
#import "AbstractPost.h"

@protocol FeaturedImageDelegate

- (void)gutenbergDidRequestFeaturedImageId:(nonnull NSNumber *)mediaID;

@end

@interface PostSettingsViewController : UITableViewController

- (nonnull instancetype)initWithPost:(nonnull AbstractPost *)aPost;
- (void)endEditingAction:(nullable id)sender;

@property (nonnull, nonatomic, strong, readonly) AbstractPost *apost;

@property (nonatomic, weak, nullable) id<FeaturedImageDelegate> featuredImageDelegate;

@end
Original file line number Diff line number Diff line change
Expand Up @@ -1514,6 +1514,7 @@ - (void)FeaturedImageViewControllerOnRemoveImageButtonPressed:(FeaturedImageView
[self.apost setFeaturedImage:nil];
[self dismissViewControllerAnimated:YES completion:nil];
[self.tableView reloadData];
[self.featuredImageDelegate gutenbergDidRequestFeaturedImageId:nil];
}

@end
26 changes: 16 additions & 10 deletions WordPress/WordPress.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@
02BF30532271D7F000616558 /* DomainCreditRedemptionSuccessViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02BF30522271D7F000616558 /* DomainCreditRedemptionSuccessViewController.swift */; };
02D75D9922793EA2003FF09A /* BlogDetailsSectionFooterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02D75D9822793EA2003FF09A /* BlogDetailsSectionFooterView.swift */; };
04936A8B3D936CD1FC4AB1EF /* Pods_WordPressNotificationContentExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6CC2CF274BA2F245C464D562 /* Pods_WordPressNotificationContentExtension.framework */; };
069A4AA62664448F00413FA9 /* GutenbergFeaturedImageHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 069A4AA52664448F00413FA9 /* GutenbergFeaturedImageHelper.swift */; };
069A4AA72664448F00413FA9 /* GutenbergFeaturedImageHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 069A4AA52664448F00413FA9 /* GutenbergFeaturedImageHelper.swift */; };
0807CB721CE670A800CDBDAC /* WPContentSearchHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0807CB711CE670A800CDBDAC /* WPContentSearchHelper.swift */; };
080C44A91CE14A9F00B3A02F /* MenuDetailsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 080C449E1CE14A9F00B3A02F /* MenuDetailsViewController.m */; };
0815CF461E96F22600069916 /* MediaImportService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0815CF451E96F22600069916 /* MediaImportService.swift */; };
Expand Down Expand Up @@ -358,7 +360,7 @@
24B1AE3124FEC79900B9F334 /* RemoteFeatureFlagTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24B1AE3024FEC79900B9F334 /* RemoteFeatureFlagTests.swift */; };
24C69A8B2612421900312D9A /* UserSettingsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24C69A8A2612421900312D9A /* UserSettingsTests.swift */; };
24C69AC22612467C00312D9A /* UserSettingsTestsObjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 24C69AC12612467C00312D9A /* UserSettingsTestsObjc.m */; };
24CE2EB1258D687A0000C297 /* WordPressFlux in Frameworks */ = {isa = PBXBuildFile; productRef = 24CE2EB0258D687A0000C297 /* WordPressFlux */; };
24CE2EB1258D687A0000C297 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; productRef = 24CE2EB0258D687A0000C297 /* SwiftPackageProductDependency */; };
24F3789825E6E62100A27BB7 /* NSManagedObject+Lookup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24F3789725E6E62100A27BB7 /* NSManagedObject+Lookup.swift */; };
2611CC62A62F9E6BC25350FE /* Pods_WordPressScreenshotGeneration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB390AA9C94F16E78184E9D1 /* Pods_WordPressScreenshotGeneration.framework */; };
26D66DEC36ACF7442186B07D /* Pods_WordPressThisWeekWidget.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 979B445A45E13F3289F2E99E /* Pods_WordPressThisWeekWidget.framework */; };
Expand Down Expand Up @@ -4221,7 +4223,7 @@
FABB26322602FC2C00C8785C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 296890770FE971DC00770264 /* Security.framework */; };
FABB26332602FC2C00C8785C /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83F3E25F11275E07004CD686 /* MapKit.framework */; };
FABB26342602FC2C00C8785C /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83F3E2D211276371004CD686 /* CoreLocation.framework */; };
FABB26352602FC2C00C8785C /* WordPressFlux in Frameworks */ = {isa = PBXBuildFile; productRef = FABB1FA62602FC2C00C8785C /* WordPressFlux */; };
FABB26352602FC2C00C8785C /* BuildFile in Frameworks */ = {isa = PBXBuildFile; productRef = FABB1FA62602FC2C00C8785C /* SwiftPackageProductDependency */; };
FABB26362602FC2C00C8785C /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8355D7D811D260AA00A61362 /* CoreData.framework */; };
FABB26372602FC2C00C8785C /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 834CE7331256D0DE0046A4A3 /* CFNetwork.framework */; };
FABB26382602FC2C00C8785C /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83043E54126FA31400EC9953 /* MessageUI.framework */; };
Expand Down Expand Up @@ -4545,6 +4547,7 @@
02BF30522271D7F000616558 /* DomainCreditRedemptionSuccessViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DomainCreditRedemptionSuccessViewController.swift; sourceTree = "<group>"; };
02BF978AFC1EFE50CFD558C2 /* Pods-WordPressStatsWidgets.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressStatsWidgets.release.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressStatsWidgets/Pods-WordPressStatsWidgets.release.xcconfig"; sourceTree = "<group>"; };
02D75D9822793EA2003FF09A /* BlogDetailsSectionFooterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlogDetailsSectionFooterView.swift; sourceTree = "<group>"; };
069A4AA52664448F00413FA9 /* GutenbergFeaturedImageHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GutenbergFeaturedImageHelper.swift; sourceTree = "<group>"; };
0807CB711CE670A800CDBDAC /* WPContentSearchHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WPContentSearchHelper.swift; sourceTree = "<group>"; };
080C449D1CE14A9F00B3A02F /* MenuDetailsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MenuDetailsViewController.h; sourceTree = "<group>"; };
080C449E1CE14A9F00B3A02F /* MenuDetailsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MenuDetailsViewController.m; sourceTree = "<group>"; };
Expand Down Expand Up @@ -7593,7 +7596,7 @@
296890780FE971DC00770264 /* Security.framework in Frameworks */,
83F3E26011275E07004CD686 /* MapKit.framework in Frameworks */,
83F3E2D311276371004CD686 /* CoreLocation.framework in Frameworks */,
24CE2EB1258D687A0000C297 /* WordPressFlux in Frameworks */,
24CE2EB1258D687A0000C297 /* BuildFile in Frameworks */,
8355D7D911D260AA00A61362 /* CoreData.framework in Frameworks */,
834CE7341256D0DE0046A4A3 /* CFNetwork.framework in Frameworks */,
83043E55126FA31400EC9953 /* MessageUI.framework in Frameworks */,
Expand Down Expand Up @@ -7737,7 +7740,7 @@
FABB26322602FC2C00C8785C /* Security.framework in Frameworks */,
FABB26332602FC2C00C8785C /* MapKit.framework in Frameworks */,
FABB26342602FC2C00C8785C /* CoreLocation.framework in Frameworks */,
FABB26352602FC2C00C8785C /* WordPressFlux in Frameworks */,
FABB26352602FC2C00C8785C /* BuildFile in Frameworks */,
FABB26362602FC2C00C8785C /* CoreData.framework in Frameworks */,
FABB26372602FC2C00C8785C /* CFNetwork.framework in Frameworks */,
FABB26382602FC2C00C8785C /* MessageUI.framework in Frameworks */,
Expand Down Expand Up @@ -8390,7 +8393,7 @@
path = Classes;
sourceTree = "<group>";
};
29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
29B97314FDCFA39411CA2CEA = {
isa = PBXGroup;
children = (
F14B5F6F208E648200439554 /* config */,
Expand Down Expand Up @@ -10512,6 +10515,7 @@
4631359224AD057E0017E65C /* Layout Picker */,
1E5D00152493FC3A0004B708 /* Views */,
7E407122237163C3003627FA /* Utils */,
069A4AA52664448F00413FA9 /* GutenbergFeaturedImageHelper.swift */,
7E3E9B6F2177C9DC00FD5797 /* GutenbergViewController.swift */,
7E40716123741375003627FA /* GutenbergNetworking.swift */,
F10E654F21B06139007AB2EE /* GutenbergViewController+MoreActions.swift */,
Expand Down Expand Up @@ -14466,7 +14470,7 @@
);
name = WordPress;
packageProductDependencies = (
24CE2EB0258D687A0000C297 /* WordPressFlux */,
24CE2EB0258D687A0000C297 /* SwiftPackageProductDependency */,
);
productName = WordPress;
productReference = 1D6058910D05DD3D006BFB54 /* WordPress.app */;
Expand Down Expand Up @@ -14722,7 +14726,7 @@
);
name = Jetpack;
packageProductDependencies = (
FABB1FA62602FC2C00C8785C /* WordPressFlux */,
FABB1FA62602FC2C00C8785C /* SwiftPackageProductDependency */,
);
productName = WordPress;
productReference = FABB26522602FC2C00C8785C /* Jetpack.app */;
Expand Down Expand Up @@ -14957,7 +14961,7 @@
bg,
sk,
);
mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
mainGroup = 29B97314FDCFA39411CA2CEA;
productRefGroup = 19C28FACFE9D520D11CA2CBB /* Products */;
projectDirPath = "";
projectRoot = "";
Expand Down Expand Up @@ -17808,6 +17812,7 @@
9881296E219CF1310075FF33 /* StatsCellHeader.swift in Sources */,
E1823E6C1E42231C00C19F53 /* UIEdgeInsets.swift in Sources */,
5D18FE9F1AFBB17400EFEED0 /* RestorePageTableViewCell.m in Sources */,
069A4AA62664448F00413FA9 /* GutenbergFeaturedImageHelper.swift in Sources */,
B54C02241F38F50100574572 /* String+RegEx.swift in Sources */,
FFB1FA9E1BF0EB840090C761 /* UIImage+Exporters.swift in Sources */,
98FCFC232231DF43006ECDD4 /* PostStatsTitleCell.swift in Sources */,
Expand Down Expand Up @@ -19904,6 +19909,7 @@
FABB24DE2602FC2C00C8785C /* UIViewController+NoResults.swift in Sources */,
FABB24DF2602FC2C00C8785C /* TimeZoneStore.swift in Sources */,
FABB24E02602FC2C00C8785C /* UserSuggestion+CoreDataClass.swift in Sources */,
069A4AA72664448F00413FA9 /* GutenbergFeaturedImageHelper.swift in Sources */,
982DA9A8263B1E2F00E5743B /* CommentService+Likes.swift in Sources */,
FABB24E12602FC2C00C8785C /* MediaLibraryPicker.swift in Sources */,
46F583D52624D0BC0010A723 /* Blog+BlockEditorSettings.swift in Sources */,
Expand Down Expand Up @@ -24714,11 +24720,11 @@
/* End XCConfigurationList section */

/* Begin XCSwiftPackageProductDependency section */
24CE2EB0258D687A0000C297 /* WordPressFlux */ = {
24CE2EB0258D687A0000C297 /* SwiftPackageProductDependency */ = {
isa = XCSwiftPackageProductDependency;
productName = WordPressFlux;
};
FABB1FA62602FC2C00C8785C /* WordPressFlux */ = {
FABB1FA62602FC2C00C8785C /* SwiftPackageProductDependency */ = {
isa = XCSwiftPackageProductDependency;
productName = WordPressFlux;
};
Expand Down