Skip to content

Commit a54b2eb

Browse files
authored
update packages and update event from view and fixed app extension (#11)
1 parent 44831af commit a54b2eb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+2212
-549
lines changed

Addame.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 10 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Addame/Addame/Package.resolved

Lines changed: 0 additions & 160 deletions
This file was deleted.

Addame/Addame/Package.swift

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ let package = Package(
7171
dependencies: [
7272
.package(name: "AWSSDKSwift", url: "https://github.com/swift-aws/aws-sdk-swift.git", from: "4.9.0"),
7373
.package(url: "https://github.com/marmelroy/PhoneNumberKit", .upToNextMajor(from: "3.3.3")),
74-
.package(url: "https://github.com/pointfreeco/swift-composable-architecture.git", from: "0.20.0"),
74+
.package(url: "https://github.com/pointfreeco/swift-composable-architecture.git", from: "0.21.0"),
7575
.package(url: "https://github.com/pointfreeco/composable-core-location", from: "0.1.0"),
7676
.package(url: "https://github.com/pointfreeco/xctest-dynamic-overlay", from: "0.1.0"),
7777
.package(url: "https://github.com/AddaMeSPB/CombineContacts.git", from: "1.0.0"),
@@ -306,10 +306,10 @@ let package = Package(
306306
.product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
307307
.product(name: "ComposableCoreLocation", package: "composable-core-location"),
308308
"SharedModels", "EventClient", "InfoPlist",
309-
"PathMonitorClient", "ConversationClient",
309+
"PathMonitorClient", "ConversationClient", "ComposableArchitectureHelpers",
310310
"SwiftUIExtension", "FoundationExtension", "AsyncImageLoder",
311-
"HttpRequest", "KeychainService", "ChatClient",
312-
"PathMonitorClientLive", "ComposableArchitectureHelpers"
311+
"HttpRequest", "KeychainService", "ChatClient", "EventClient", "EventClientLive",
312+
"PathMonitorClientLive", "ComposableArchitectureHelpers", "MapView", "HttpRequest"
313313
]
314314
),
315315

@@ -345,11 +345,20 @@ let package = Package(
345345
dependencies: [
346346
"UIApplicationClient", "UserDefaultsClient",
347347
.product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
348-
.product(name: "XCTestDynamicOverlay", package: "xctest-dynamic-overlay")
348+
.product(name: "XCTestDynamicOverlay", package: "xctest-dynamic-overlay"),
349+
"UserNotificationClient"
349350
]
350351
),
351352

352-
.target(name: "MapView"),
353+
.target(
354+
name: "MapView",
355+
dependencies: [
356+
.product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
357+
.product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
358+
.product(name: "XCTestDynamicOverlay", package: "xctest-dynamic-overlay"),
359+
"SwiftUIExtension", "SharedModels", "ComposableArchitectureHelpers"
360+
]
361+
),
353362

354363
// Helpers
355364
.target(

Addame/Addame/Sources/AsyncImageLoder/AsyncImage.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,12 @@ public struct AsyncImage<Placeholder: View>: View {
2121
) {
2222
self.placeholder = placeholder()
2323
self.image = image
24-
_loader = StateObject(wrappedValue: ImageLoader(url: url, cache: Environment(\.imageCache).wrappedValue))
24+
_loader = StateObject(
25+
wrappedValue: ImageLoader(
26+
url: url,
27+
cache: Environment(\.imageCache).wrappedValue
28+
)
29+
)
2530
}
2631

2732
public init(

Addame/Addame/Sources/ChatView/ChatAction.swift

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@ public enum ChatAction: Equatable {
1717
case alertDismissed
1818
case conversation(ConversationResponse.Item?)
1919
case messages(Result<ChatMessageResponse, HTTPError>)
20-
case fetchMoreMessagIfNeeded(currentItem: ChatMessageResponse.Item?)
21-
case message(index: String?, action: MessageAction)
20+
case fetchMoreMessageIfNeeded(currentItem: ChatMessageResponse.Item?)
21+
case fetchMoreMessage(currentItem: ChatMessageResponse.Item)
22+
case message(index: ChatMessageResponse.Item.ID, action: MessageAction)
2223
case sendResponse(NSError?)
2324
case webSocket(WebSocketClient.Action)
2425
case pingResponse(NSError?)
@@ -39,8 +40,10 @@ public extension ChatAction {
3940
return .conversation(conversation)
4041
case .messages(let messages):
4142
return .messages(messages)
42-
case .fetchMoreMessagIfNeeded(currentItem: let currentItem):
43-
return .fetchMoreMessagIfNeeded(currentItem: currentItem)
43+
case let .fetchMoreMessageIfNeeded(currentItem: currentItem):
44+
return .fetchMoreMessageIfNeeded(currentItem: currentItem)
45+
case let .fetchMoreMessage(currentItem: item):
46+
return .fetchMoreMessage(currentItem: item)
4447
case let .message(index, action):
4548
return .message(index: index, action: action)
4649
case .sendResponse(let error):

Addame/Addame/Sources/ChatView/ChatListView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ struct ChatListView: View {
2525
WithViewStore(chatStore) { messageViewStore in
2626
ChatRowView(store: chatStore)
2727
.onAppear {
28-
viewStore.send(.fetchMoreMessagIfNeeded(currentItem: messageViewStore.state) )
28+
viewStore.send(.fetchMoreMessageIfNeeded(currentItem: messageViewStore.state) )
2929
}
3030
.scaleEffect(x: 1, y: -1, anchor: .center)
3131
}

Addame/Addame/Sources/ChatView/ChatReducer.swift

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ public let chatReducer = Reducer<ChatState, ChatAction, ChatEnvironment> { state
2424

2525
return environment.chatClient
2626
.messages(query, conversationsID, "/by/conversations/\(conversationsID)")
27-
.subscribe(on: environment.backgroundQueue)
2827
.retry(3)
29-
.receive(on: environment.mainQueue.animation(.default))
28+
.subscribe(on: environment.backgroundQueue)
29+
.receive(on: environment.mainQueue)
3030
.catchToEffect()
3131
.map(ChatAction.messages)
3232
}
@@ -71,28 +71,37 @@ public let chatReducer = Reducer<ChatState, ChatAction, ChatEnvironment> { state
7171
state.isLoadingPage = false
7272
state.currentPage += 1
7373

74-
print(#line, "currentPage: \(state.currentPage) response: \(response.items.map { $0.messageBody })")
7574
let combineMessageResults = (response.items + state.messages).uniqElemets().sorted()
76-
state.messages = .init(combineMessageResults)
77-
// self.messageSubject.send(combineMessageResults)
75+
state.messages = .init(uniqueElements: combineMessageResults)
76+
77+
// wrong not working here
78+
// if !state.messages.elementsEqual(response.items) {
79+
// state.messages = .init(uniqueElements: response.items)
80+
// }
7881

7982
return .none
8083

8184
case .messages(.failure(let error)):
8285
state.alert = .init(title: TextState("\(error.description)") )
8386
return .none
8487

85-
case let .fetchMoreMessagIfNeeded(currentItem: currentItem):
88+
case let .fetchMoreMessageIfNeeded(currentItem: currentItem):
89+
guard let item = currentItem, state.messages.count > 5 else {
90+
return fetchMoreMessages
91+
}
8692

87-
guard let item = currentItem, state.messages.count > 7 else {
93+
let threshouldIndex = state.messages.index(state.messages.endIndex, offsetBy: -5) - 3
94+
if state.messages.firstIndex(where: { $0.id == item.id }) == threshouldIndex {
8895
return fetchMoreMessages
8996
}
97+
return .none
98+
99+
case let .fetchMoreMessage(currentItem: item):
90100

91101
let threshouldIndex = state.messages.index(state.messages.endIndex, offsetBy: -7)
92102
if state.messages.firstIndex(where: { $0.id == item.id }) == threshouldIndex {
93103
return fetchMoreMessages
94104
}
95-
96105
return .none
97106

98107
case let .sendResponse(error):

0 commit comments

Comments
 (0)