Skip to content

Commit

Permalink
Merge pull request #750 from planetary-social/paginate-profile-feed
Browse files Browse the repository at this point in the history
Paginate profile feed
  • Loading branch information
mplorentz authored Dec 22, 2023
2 parents 11108e9 + 0d910f5 commit 8903743
Show file tree
Hide file tree
Showing 33 changed files with 1,005 additions and 361 deletions.
5 changes: 3 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]

- Discover screen can now search notes by id.
-
- Added pagination to Profile screens.

## [0.1 (128)] - 2023-12-21Z

- Fixed a crash when opening the note composer.
- Fix localization of warning message when a ntoe has been reported. (thanks @L!)
- Fix localization of warning message when a note has been reported. (thanks @L!)
- Fixed contact list hydration bug where unfollows are not removed when follow counts do not change.

## [0.1 (101)] - 2023-12-15Z
Expand Down
50 changes: 47 additions & 3 deletions Nos.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,8 @@
C942566929B66A2800C4202C /* Date+Elapsed.swift in Sources */ = {isa = PBXBuildFile; fileRef = C942566829B66A2800C4202C /* Date+Elapsed.swift */; };
C942566A29B66A2800C4202C /* Date+Elapsed.swift in Sources */ = {isa = PBXBuildFile; fileRef = C942566829B66A2800C4202C /* Date+Elapsed.swift */; };
C94437E629B0DB83004D8C86 /* NotificationsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C94437E529B0DB83004D8C86 /* NotificationsView.swift */; };
C94824482B32364100005B36 /* WalletConnectModal in Frameworks */ = {isa = PBXBuildFile; productRef = C94824472B32364100005B36 /* WalletConnectModal */; };
C948244A2B32364900005B36 /* Web3 in Frameworks */ = {isa = PBXBuildFile; productRef = C94824492B32364900005B36 /* Web3 */; };
C94A5E152A716A6D00B6EC5D /* EditableNoteText.swift in Sources */ = {isa = PBXBuildFile; fileRef = C94A5E142A716A6D00B6EC5D /* EditableNoteText.swift */; };
C94A5E162A716A6D00B6EC5D /* EditableNoteText.swift in Sources */ = {isa = PBXBuildFile; fileRef = C94A5E142A716A6D00B6EC5D /* EditableNoteText.swift */; };
C94A5E182A72C84200B6EC5D /* ReportCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = C94A5E172A72C84200B6EC5D /* ReportCategory.swift */; };
Expand Down Expand Up @@ -182,6 +184,7 @@
C981E2DD2AC610D600FBF4F6 /* UNSStepImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = C981E2DC2AC610D600FBF4F6 /* UNSStepImage.swift */; };
C98298332ADD7F9A0096C5B5 /* DeepLinkService.swift in Sources */ = {isa = PBXBuildFile; fileRef = C98298322ADD7F9A0096C5B5 /* DeepLinkService.swift */; };
C98298342ADD7F9A0096C5B5 /* DeepLinkService.swift in Sources */ = {isa = PBXBuildFile; fileRef = C98298322ADD7F9A0096C5B5 /* DeepLinkService.swift */; };
C98651102B0BD49200597B68 /* PagedNoteListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C986510F2B0BD49200597B68 /* PagedNoteListView.swift */; };
C987F81729BA4C6A00B44E7A /* BigActionButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = C987F81629BA4C6900B44E7A /* BigActionButton.swift */; };
C987F81A29BA4D0E00B44E7A /* ActionButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = C987F81929BA4D0E00B44E7A /* ActionButton.swift */; };
C987F81D29BA6D9A00B44E7A /* ProfileTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = C987F81C29BA6D9A00B44E7A /* ProfileTab.swift */; };
Expand Down Expand Up @@ -227,7 +230,12 @@
C98A32272A05795E00E3FA13 /* Task+Timeout.swift in Sources */ = {isa = PBXBuildFile; fileRef = C98A32262A05795E00E3FA13 /* Task+Timeout.swift */; };
C98A32282A05795E00E3FA13 /* Task+Timeout.swift in Sources */ = {isa = PBXBuildFile; fileRef = C98A32262A05795E00E3FA13 /* Task+Timeout.swift */; };
C98B8B4029FBF83B009789C8 /* NotificationCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = C98B8B3F29FBF83B009789C8 /* NotificationCard.swift */; };
C98CA9042B14FA3D00929141 /* PagedRelaySubscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = C98CA9032B14FA3D00929141 /* PagedRelaySubscription.swift */; };
C98CA9072B14FBBF00929141 /* PagedNoteDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = C98CA9062B14FBBF00929141 /* PagedNoteDataSource.swift */; };
C98CA9082B14FD8600929141 /* PagedRelaySubscription.swift in Sources */ = {isa = PBXBuildFile; fileRef = C98CA9032B14FA3D00929141 /* PagedRelaySubscription.swift */; };
C98DC9BB2A795CAD004E5F0F /* ActionBanner.swift in Sources */ = {isa = PBXBuildFile; fileRef = C98DC9BA2A795CAD004E5F0F /* ActionBanner.swift */; };
C992B32A2B3613CC00704A9C /* SubscriptionCancellable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C992B3292B3613CC00704A9C /* SubscriptionCancellable.swift */; };
C992B32B2B3613CC00704A9C /* SubscriptionCancellable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C992B3292B3613CC00704A9C /* SubscriptionCancellable.swift */; };
C99721CB2AEBED26004EBEAB /* String+Empty.swift in Sources */ = {isa = PBXBuildFile; fileRef = C99721CA2AEBED26004EBEAB /* String+Empty.swift */; };
C99721CC2AEBED26004EBEAB /* String+Empty.swift in Sources */ = {isa = PBXBuildFile; fileRef = C99721CA2AEBED26004EBEAB /* String+Empty.swift */; };
C99D053C2AE6E5F50053D472 /* WalletConnectSendView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C99D053B2AE6E5F50053D472 /* WalletConnectSendView.swift */; };
Expand Down Expand Up @@ -584,6 +592,7 @@
C981E2DC2AC610D600FBF4F6 /* UNSStepImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UNSStepImage.swift; sourceTree = "<group>"; };
C98298312ADD7EDB0096C5B5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
C98298322ADD7F9A0096C5B5 /* DeepLinkService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeepLinkService.swift; sourceTree = "<group>"; };
C986510F2B0BD49200597B68 /* PagedNoteListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PagedNoteListView.swift; sourceTree = "<group>"; };
C987F81629BA4C6900B44E7A /* BigActionButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BigActionButton.swift; sourceTree = "<group>"; };
C987F81929BA4D0E00B44E7A /* ActionButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActionButton.swift; sourceTree = "<group>"; };
C987F81C29BA6D9A00B44E7A /* ProfileTab.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileTab.swift; sourceTree = "<group>"; };
Expand All @@ -610,7 +619,10 @@
C987F86029BABAF800B44E7A /* String+Markdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Markdown.swift"; sourceTree = "<group>"; };
C98A32262A05795E00E3FA13 /* Task+Timeout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Task+Timeout.swift"; sourceTree = "<group>"; };
C98B8B3F29FBF83B009789C8 /* NotificationCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationCard.swift; sourceTree = "<group>"; };
C98CA9032B14FA3D00929141 /* PagedRelaySubscription.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PagedRelaySubscription.swift; sourceTree = "<group>"; };
C98CA9062B14FBBF00929141 /* PagedNoteDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PagedNoteDataSource.swift; sourceTree = "<group>"; };
C98DC9BA2A795CAD004E5F0F /* ActionBanner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionBanner.swift; sourceTree = "<group>"; };
C992B3292B3613CC00704A9C /* SubscriptionCancellable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionCancellable.swift; sourceTree = "<group>"; };
C99507332AB9EE40005B1096 /* Nos 12.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "Nos 12.xcdatamodel"; sourceTree = "<group>"; };
C99721CA2AEBED26004EBEAB /* String+Empty.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Empty.swift"; sourceTree = "<group>"; };
C99D053B2AE6E5F50053D472 /* WalletConnectSendView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WalletConnectSendView.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -781,7 +793,9 @@
C905B0752A619367009B8A78 /* DequeModule in Frameworks */,
C91565C12B2368FA0068EECA /* ViewInspector in Frameworks */,
C9646E9C29B79E4D007239A4 /* Logger in Frameworks */,
C948244A2B32364900005B36 /* Web3 in Frameworks */,
CDDA1F7D29A527650047ACD8 /* SwiftUINavigation in Frameworks */,
C94824482B32364100005B36 /* WalletConnectModal in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -882,19 +896,17 @@
C98298322ADD7F9A0096C5B5 /* DeepLinkService.swift */,
C9B678DA29EEBF3B00303F33 /* DependencyInjection.swift */,
C9BAB09A2996FBA10003A84E /* EventProcessor.swift */,
A336DD3B299FD78000A0CBA0 /* Filter.swift */,
A3B943CE299AE00100A15A08 /* KeyChain.swift */,
C9F64D8B29ED840700563F2B /* LogHelper.swift */,
C936B4612A4CB01C00DF1EB9 /* PushNotificationService.swift */,
C97797B8298AA19A0046BD25 /* RelayService.swift */,
C9C2B78129E0735400548B4A /* RelaySubscriptionManager.swift */,
5B8805192A21027C00E21F06 /* SHA256Key.swift */,
C9B678E029EEC41000303F33 /* SocialGraphCache.swift */,
5B8B77182A1FDA3C004FC675 /* TLV.swift */,
C9A0DAF729C92F4500466635 /* UNSAPI.swift */,
C9AA1BB02ABA383F00E8BD6D /* USBCWalletConnectService.swift */,
C9F204682ADEDC4E0029A858 /* WalletConnectCryptoProvider.swift */,
C9F2045E2ADED8F70029A858 /* WalletConnectSessionManager.swift */,
C98CA9052B14FA8500929141 /* Relay */,
);
path = Service;
sourceTree = "<group>";
Expand Down Expand Up @@ -931,6 +943,17 @@
path = Font;
sourceTree = "<group>";
};
C98CA9052B14FA8500929141 /* Relay */ = {
isa = PBXGroup;
children = (
A336DD3B299FD78000A0CBA0 /* Filter.swift */,
C98CA9032B14FA3D00929141 /* PagedRelaySubscription.swift */,
C97797B8298AA19A0046BD25 /* RelayService.swift */,
C9C2B78129E0735400548B4A /* RelaySubscriptionManager.swift */,
);
path = Relay;
sourceTree = "<group>";
};
C9C9443A29F6E420002F2C7A /* Test Helpers */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -1120,6 +1143,7 @@
C9C2B78429E073E300548B4A /* RelaySubscription.swift */,
C9E37E142A1E8143003D4B0A /* Report.swift */,
C94A5E172A72C84200B6EC5D /* ReportCategory.swift */,
C992B3292B3613CC00704A9C /* SubscriptionCancellable.swift */,
C97141ED2AE95F07001A5DD0 /* USBCAddress.swift */,
C9F204772ADEDE120029A858 /* WalletConnectChain.swift */,
C9F204602ADEDB720029A858 /* Wei.swift */,
Expand Down Expand Up @@ -1165,6 +1189,7 @@
C9A6C7402AD837AD001F9500 /* UNSWizardController.swift */,
C9A2FCA32AE701510020A5C6 /* SendUSBCController.swift */,
C913DA092AEAF52B003BDD6D /* NoteWarningController.swift */,
C98CA9062B14FBBF00929141 /* PagedNoteDataSource.swift */,
);
path = Controller;
sourceTree = "<group>";
Expand Down Expand Up @@ -1250,6 +1275,7 @@
5B834F682A83FC7F000C1432 /* ProfileSocialStatsView.swift */,
C987F81C29BA6D9A00B44E7A /* ProfileTab.swift */,
C95D68AC299E721700429F86 /* ProfileView.swift */,
C986510F2B0BD49200597B68 /* PagedNoteListView.swift */,
5BFF66B32A58853D00AA79DD /* PublishedEventsView.swift */,
C97A1C8729E45B3C009D9E8D /* RawEventView.swift */,
C9A25B3C29F174D200B39534 /* ReadabilityPadding.swift */,
Expand Down Expand Up @@ -1380,6 +1406,8 @@
C9B71DC42A9008300031ED9F /* Sentry */,
C99DBF7F2A9E8BCF00F7068F /* SDWebImageSwiftUI */,
C91565C02B2368FA0068EECA /* ViewInspector */,
C94824472B32364100005B36 /* WalletConnectModal */,
C94824492B32364900005B36 /* Web3 */,
);
productName = NosTests;
productReference = C9DEBFE4298941020078B43A /* NosTests.xctest */;
Expand Down Expand Up @@ -1634,6 +1662,7 @@
CD09A74429A50F1D0063464F /* SideMenu.swift in Sources */,
C9F2046B2ADEDCB80029A858 /* WalletConnectPairingView.swift in Sources */,
C9C547512A4F1CC3006B0741 /* SearchController.swift in Sources */,
C992B32A2B3613CC00704A9C /* SubscriptionCancellable.swift in Sources */,
C9DEC06E2989668E0078B43A /* Relay+CoreDataClass.swift in Sources */,
C9F64D8C29ED840700563F2B /* LogHelper.swift in Sources */,
C9C2B78529E073E300548B4A /* RelaySubscription.swift in Sources */,
Expand Down Expand Up @@ -1743,6 +1772,7 @@
C9680AD42ACDF57D006C8C93 /* UNSWizardNeedsPaymentView.swift in Sources */,
C94C4CF32AD993CA00F801CA /* UNSErrorView.swift in Sources */,
C9A2FCA42AE701510020A5C6 /* SendUSBCController.swift in Sources */,
C98CA9042B14FA3D00929141 /* PagedRelaySubscription.swift in Sources */,
5B0D99032A94090A0039F0C5 /* DoubleTapToPopModifier.swift in Sources */,
5BFF66B42A58853D00AA79DD /* PublishedEventsView.swift in Sources */,
C987F85B29BA9ED800B44E7A /* Font.swift in Sources */,
Expand Down Expand Up @@ -1813,6 +1843,7 @@
5BE281C72AE2CCD800880466 /* ReplyButton.swift in Sources */,
C936B45C2A4C7D6B00DF1EB9 /* UNSWizard.swift in Sources */,
C9DFA966299BEB96006929C1 /* NoteCard.swift in Sources */,
C98651102B0BD49200597B68 /* PagedNoteListView.swift in Sources */,
C9E37E152A1E8143003D4B0A /* Report.swift in Sources */,
C9DEBFD4298941000078B43A /* Persistence.swift in Sources */,
CD76864C29B12F7E00085358 /* ExpandingTextFieldAndSubmitButton.swift in Sources */,
Expand Down Expand Up @@ -1842,6 +1873,7 @@
CD2CF38E299E67F900332116 /* CardButtonStyle.swift in Sources */,
A336DD3C299FD78000A0CBA0 /* Filter.swift in Sources */,
DC2E54C82A700F1400C2CAAB /* UIDevice+Simulator.swift in Sources */,
C98CA9072B14FBBF00929141 /* PagedNoteDataSource.swift in Sources */,
C9A0DAEA29C6A34200466635 /* ActivityView.swift in Sources */,
CD2CF390299E68BE00332116 /* NoteButton.swift in Sources */,
C93F48932AC5C9CE00900CEC /* UNSWizardIntroView.swift in Sources */,
Expand Down Expand Up @@ -1887,6 +1919,7 @@
C94A5E162A716A6D00B6EC5D /* EditableNoteText.swift in Sources */,
5BD08BB22A38E96F00BB926C /* JSONRelayMetadata.swift in Sources */,
C936B45A2A4C7B7C00DF1EB9 /* Nos.xcdatamodeld in Sources */,
C98CA9082B14FD8600929141 /* PagedRelaySubscription.swift in Sources */,
C9F204812AE02D8C0029A858 /* AppDestination.swift in Sources */,
C9E37E162A1E8143003D4B0A /* Report.swift in Sources */,
C987F86229BABAF800B44E7A /* String+Markdown.swift in Sources */,
Expand Down Expand Up @@ -1945,6 +1978,7 @@
C9ADB14229951CB10075E7F8 /* NSManagedObject+Nos.swift in Sources */,
C92DF80629C25DE900400561 /* URL+Extensions.swift in Sources */,
C9BAB09C2996FBA10003A84E /* EventProcessor.swift in Sources */,
C992B32B2B3613CC00704A9C /* SubscriptionCancellable.swift in Sources */,
C9DFA97B299C31EE006929C1 /* Localized.swift in Sources */,
C973AB5C2A323167002AED16 /* Follow+CoreDataProperties.swift in Sources */,
C93005602A6AF8320098CA9E /* LoadingContent.swift in Sources */,
Expand Down Expand Up @@ -2579,6 +2613,16 @@
isa = XCSwiftPackageProductDependency;
productName = StarscreamOld;
};
C94824472B32364100005B36 /* WalletConnectModal */ = {
isa = XCSwiftPackageProductDependency;
package = C95F0AC82ABA379700A0D9CE /* XCRemoteSwiftPackageReference "WalletConnectSwiftV2" */;
productName = WalletConnectModal;
};
C94824492B32364900005B36 /* Web3 */ = {
isa = XCSwiftPackageProductDependency;
package = C9AA1BB82ABB62EB00E8BD6D /* XCRemoteSwiftPackageReference "Web3" */;
productName = Web3;
};
C94D855E29914D2300749478 /* SwiftUINavigation */ = {
isa = XCSwiftPackageProductDependency;
package = C94D855D29914D2300749478 /* XCRemoteSwiftPackageReference "swiftui-navigation" */;
Expand Down
Loading

0 comments on commit 8903743

Please sign in to comment.