Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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 @@ -230,7 +230,7 @@ extension DependencyValues {
set { self[UpsertTodoUseCaseKey.self] = newValue }
}

var trackAnalyticsEventUseCase: TrackAnalyticsEventUseCase? {
var trackAnalyticsEventUseCase: TrackAnalyticsEventUseCase {
get { self[TrackAnalyticsEventUseCaseKey.self] }
set { self[TrackAnalyticsEventUseCaseKey.self] = newValue }
}
Expand All @@ -257,7 +257,17 @@ private enum UpsertTodoUseCaseKey: DependencyKey {
}

private enum TrackAnalyticsEventUseCaseKey: DependencyKey {
static let liveValue: TrackAnalyticsEventUseCase? = nil
static var liveValue: TrackAnalyticsEventUseCase {
preconditionFailure("TrackAnalyticsEventUseCase must be provided.")
}

static var testValue: TrackAnalyticsEventUseCase {
NoOpTrackAnalyticsEventUseCase()
}
}

private struct NoOpTrackAnalyticsEventUseCase: TrackAnalyticsEventUseCase {
func execute(_ event: AnalyticsEvent) { }
}

private extension TodoEditorFeature {
Expand Down Expand Up @@ -294,7 +304,7 @@ private extension TodoEditorFeature {
await send(.loading(.begin(target: .default, mode: .immediate)))
do {
try await upsertTodoUseCase.execute(draft)
trackAnalyticsEventUseCase?.execute(.todoCreate)
trackAnalyticsEventUseCase.execute(.todoCreate)
await send(.createSucceeded)
} catch {
await send(.saveFailed)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ extension HomeFeature {
func observeNetworkConnectivityEffect() -> Effect<Action> {
.publisher { [networkConnectivityUseCase] in
networkConnectivityUseCase.observe()
.receive(on: DispatchQueue.main)
.map { .store(.networkStatusChanged($0)) }
}
.cancellable(id: CancelID.networkConnectivity, cancelInFlight: true)
Expand Down Expand Up @@ -74,7 +73,7 @@ extension HomeFeature {
await send(.loading(.begin(target: LoadingTarget.overlay.target, mode: .delayed)))
do {
try await addWebPageUseCase.execute(urlString)
trackAnalyticsEventUseCase?.execute(.webPageCreate)
trackAnalyticsEventUseCase.execute(.webPageCreate)
let pages = try await fetchWebPagesUseCase.execute("")
await send(.store(.updateWebPages(pages.map(WebPageItem.init(from:)))))
} catch {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ extension TodoListFeature {
todo.updatedAt = now
try await upsertTodoUseCase.execute(todo)
if todo.isCompleted {
trackAnalyticsEventUseCase?.execute(.todoComplete)
trackAnalyticsEventUseCase.execute(.todoComplete)
}
guard let todoListItem = TodoListItem(from: todo) else {
await send(.store(.setAlert(true)))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ private extension MainFeature {

func trackScreenViewEffect(_ screenName: String) -> Effect<Action> {
.run { [trackAnalyticsEventUseCase] _ in
trackAnalyticsEventUseCase?.execute(.screenView(screenName))
trackAnalyticsEventUseCase.execute(.screenView(screenName))
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,6 @@ private extension ProfileFeature {
func observeNetworkConnectivityEffect() -> Effect<Action> {
.publisher { [networkConnectivityUseCase] in
networkConnectivityUseCase.observe()
.receive(on: DispatchQueue.main)
.map(Action.networkStatusChanged)
}
.cancellable(id: CancelID.networkConnectivity, cancelInFlight: true)
Expand Down
Loading
Loading