diff --git a/EhPanda/App/Tools/Extensions/Reducer_Extension.swift b/EhPanda/App/Tools/Extensions/Reducer_Extension.swift index f54a9894..fb6e445c 100644 --- a/EhPanda/App/Tools/Extensions/Reducer_Extension.swift +++ b/EhPanda/App/Tools/Extensions/Reducer_Extension.swift @@ -16,9 +16,7 @@ extension Reducer { style: UIImpactFeedbackGenerator.FeedbackStyle = .light ) -> some Reducer { onBecomeNonNil(unwrapping: `enum`, case: casePath) { _, _ in - .run { _ in - hapticsClient.generateFeedback(style) - } + .run(operation: { _ in hapticsClient.generateFeedback(style) }) } } diff --git a/EhPanda/DataFlow/AppDelegateReducer.swift b/EhPanda/DataFlow/AppDelegateReducer.swift index 5146d278..02b2f607 100644 --- a/EhPanda/DataFlow/AppDelegateReducer.swift +++ b/EhPanda/DataFlow/AppDelegateReducer.swift @@ -30,31 +30,17 @@ struct AppDelegateReducer: Reducer { switch action { case .onLaunchFinish: return .merge( - .run { _ in - libraryClient.initializeLogger() - }, - .run { _ in - libraryClient.initializeWebImage() - }, - .run { _ in - cookieClient.removeYay() - }, - .run { _ in - cookieClient.syncExCookies() - }, - .run { _ in - cookieClient.ignoreOffensive() - }, - .run { _ in - cookieClient.fulfillAnotherHostField() - }, + .run(operation: { _ in libraryClient.initializeLogger() }), + .run(operation: { _ in libraryClient.initializeWebImage() }), + .run(operation: { _ in cookieClient.removeYay() }), + .run(operation: { _ in cookieClient.syncExCookies() }), + .run(operation: { _ in cookieClient.ignoreOffensive() }), + .run(operation: { _ in cookieClient.fulfillAnotherHostField() }), .send(.migration(.prepareDatabase)) ) case .removeExpiredImageURLs: - return .run { _ in - await databaseClient.removeExpiredImageURLs() - } + return .run(operation: { _ in await databaseClient.removeExpiredImageURLs() }) case .migration: return .none diff --git a/EhPanda/DataFlow/AppReducer.swift b/EhPanda/DataFlow/AppReducer.swift index eb005ef8..2cea5826 100644 --- a/EhPanda/DataFlow/AppReducer.swift +++ b/EhPanda/DataFlow/AppReducer.swift @@ -110,9 +110,7 @@ struct AppReducer: Reducer { case .tabBar(.setTabBarItemType(let type)): var effects = [Effect]() - let hapticEffect: Effect = .run { _ in - hapticsClient.generateFeedback(.soft) - } + let hapticEffect: Effect = .run(operation: { _ in hapticsClient.generateFeedback(.soft) }) if type == state.tabBarState.tabBarItemType { switch type { case .home: @@ -155,9 +153,7 @@ struct AppReducer: Reducer { case .home(.watched(.onNotLoginViewButtonTapped)), .favorites(.onNotLoginViewButtonTapped): var effects: [Effect] = [ - .run { _ in - hapticsClient.generateFeedback(.soft) - }, + .run(operation: { _ in hapticsClient.generateFeedback(.soft) }), .send(.tabBar(.setTabBarItemType(.setting))) ] effects.append(.send(.setting(.setNavigation(.account)))) diff --git a/EhPanda/DataFlow/AppRouteReducer.swift b/EhPanda/DataFlow/AppRouteReducer.swift index e657beee..0639fce4 100644 --- a/EhPanda/DataFlow/AppRouteReducer.swift +++ b/EhPanda/DataFlow/AppRouteReducer.swift @@ -81,9 +81,7 @@ struct AppRouteReducer: Reducer { guard currentChangeCount != userDefaultsClient .getValue(.clipboardChangeCount) else { return .none } var effects: [Effect] = [ - .run { _ in - userDefaultsClient.setValue(currentChangeCount, .clipboardChangeCount) - } + .run(operation: { _ in userDefaultsClient.setValue(currentChangeCount, .clipboardChangeCount) }) ] if let url = clipboardClient.url() { effects.append(.send(.handleDeepLink(url))) @@ -159,9 +157,7 @@ struct AppRouteReducer: Reducer { switch result { case .success(let gallery): return .merge( - .run { _ in - await databaseClient.cacheGalleries([gallery]) - }, + .run(operation: { _ in await databaseClient.cacheGalleries([gallery]) }), .send(.handleGalleryLink(url)) ) case .failure: diff --git a/EhPanda/View/Detail/Comments/CommentsReducer.swift b/EhPanda/View/Detail/Comments/CommentsReducer.swift index a0a2068c..ac45611a 100644 --- a/EhPanda/View/Detail/Comments/CommentsReducer.swift +++ b/EhPanda/View/Detail/Comments/CommentsReducer.swift @@ -129,9 +129,7 @@ struct CommentsReducer: Reducer { case .handleCommentLink(let url): guard urlClient.checkIfHandleable(url) else { - return .run { _ in - await uiApplicationClient.openURL(url) - } + return .run(operation: { _ in await uiApplicationClient.openURL(url) }) } let (isGalleryImageURL, _, _) = urlClient.analyzeURL(url) let gid = urlClient.parseGalleryID(url) @@ -246,9 +244,7 @@ struct CommentsReducer: Reducer { switch result { case .success(let gallery): return .merge( - .run { _ in - await databaseClient.cacheGalleries([gallery]) - }, + .run(operation: { _ in await databaseClient.cacheGalleries([gallery]) }), .send(.handleGalleryLink(url)) ) case .failure: diff --git a/EhPanda/View/Detail/DetailReducer.swift b/EhPanda/View/Detail/DetailReducer.swift index 233a22d0..55bfe3ae 100644 --- a/EhPanda/View/Detail/DetailReducer.swift +++ b/EhPanda/View/Detail/DetailReducer.swift @@ -168,15 +168,11 @@ struct DetailReducer: Reducer { case .toggleShowFullTitle: state.showsFullTitle.toggle() - return .run { _ in - hapticsClient.generateFeedback(.soft) - } + return .run(operation: { _ in hapticsClient.generateFeedback(.soft) }) case .toggleShowUserRating: state.showsUserRating.toggle() - return .run { _ in - hapticsClient.generateFeedback(.soft) - } + return .run(operation: { _ in hapticsClient.generateFeedback(.soft) }) case .setCommentContent(let content): state.commentContent = content @@ -194,9 +190,7 @@ struct DetailReducer: Reducer { state.updateRating(value: value) return .merge( .send(.rateGallery), - .run { _ in - hapticsClient.generateFeedback(.soft) - }, + .run(operation: { _ in hapticsClient.generateFeedback(.soft) }), .run { send in try await Task.sleep(for: .seconds(1)) await send(.confirmRatingDone) @@ -214,9 +208,7 @@ struct DetailReducer: Reducer { case .syncGalleryDetail: guard let detail = state.galleryDetail else { return .none } - return .run { _ in - await databaseClient.cacheGalleryDetail(detail) - } + return .run(operation: { _ in await databaseClient.cacheGalleryDetail(detail) }) case .syncGalleryPreviewURLs: return .run { [state] _ in @@ -230,9 +222,7 @@ struct DetailReducer: Reducer { } case .syncGreeting(let greeting): - return .run { _ in - await databaseClient.updateGreeting(greeting) - } + return .run(operation: { _ in await databaseClient.updateGreeting(greeting) }) case .syncPreviewConfig(let config): return .run { [state] _ in @@ -381,14 +371,10 @@ struct DetailReducer: Reducer { if case .success = result { return .merge( .send(.fetchGalleryDetail), - .run { _ in - hapticsClient.generateNotificationFeedback(.success) - } + .run(operation: { _ in hapticsClient.generateNotificationFeedback(.success) }) ) } - return .run { _ in - hapticsClient.generateNotificationFeedback(.error) - } + return .run(operation: { _ in hapticsClient.generateNotificationFeedback(.error) }) case .reading(.onPerformDismiss): return .send(.setNavigation(nil)) diff --git a/EhPanda/View/Detail/DetailSearch/DetailSearchReducer.swift b/EhPanda/View/Detail/DetailSearch/DetailSearchReducer.swift index 08d4a819..87ccc722 100644 --- a/EhPanda/View/Detail/DetailSearch/DetailSearchReducer.swift +++ b/EhPanda/View/Detail/DetailSearch/DetailSearchReducer.swift @@ -123,9 +123,7 @@ struct DetailSearchReducer: Reducer { } state.pageNumber = pageNumber state.galleries = galleries - return .run { _ in - await databaseClient.cacheGalleries(galleries) - } + return .run(operation: { _ in await databaseClient.cacheGalleries(galleries) }) case .failure(let error): state.loadingState = .failed(error) } @@ -156,9 +154,7 @@ struct DetailSearchReducer: Reducer { state.insertGalleries(galleries) var effects: [Effect] = [ - .run { _ in - await databaseClient.cacheGalleries(galleries) - } + .run(operation: { _ in await databaseClient.cacheGalleries(galleries) }) ] if galleries.isEmpty, pageNumber.hasNextPage() { effects.append(.send(.fetchMoreGalleries)) diff --git a/EhPanda/View/Detail/GalleryInfos/GalleryInfosReducer.swift b/EhPanda/View/Detail/GalleryInfos/GalleryInfosReducer.swift index 81452b55..ed296218 100644 --- a/EhPanda/View/Detail/GalleryInfos/GalleryInfosReducer.swift +++ b/EhPanda/View/Detail/GalleryInfos/GalleryInfosReducer.swift @@ -37,12 +37,8 @@ struct GalleryInfosReducer: Reducer { case .copyText(let text): state.route = .hud return .merge( - .run { _ in - clipboardClient.saveText(text) - }, - .run { _ in - hapticsClient.generateNotificationFeedback(.success) - } + .run(operation: { _ in clipboardClient.saveText(text) }), + .run(operation: { _ in hapticsClient.generateNotificationFeedback(.success) }) ) } } diff --git a/EhPanda/View/Detail/Torrents/TorrentsReducer.swift b/EhPanda/View/Detail/Torrents/TorrentsReducer.swift index cf10db19..7818e5cf 100644 --- a/EhPanda/View/Detail/Torrents/TorrentsReducer.swift +++ b/EhPanda/View/Detail/Torrents/TorrentsReducer.swift @@ -59,12 +59,8 @@ struct TorrentsReducer: Reducer { case .copyText(let magnetURL): state.route = .hud return .merge( - .run { _ in - clipboardClient.saveText(magnetURL) - }, - .run { _ in - hapticsClient.generateNotificationFeedback(.success) - } + .run(operation: { _ in clipboardClient.saveText(magnetURL) }), + .run(operation: { _ in hapticsClient.generateNotificationFeedback(.success) }) ) case .presentTorrentActivity(let hash, let data): diff --git a/EhPanda/View/Favorites/FavoritesReducer.swift b/EhPanda/View/Favorites/FavoritesReducer.swift index b0b5676b..1f2e4269 100644 --- a/EhPanda/View/Favorites/FavoritesReducer.swift +++ b/EhPanda/View/Favorites/FavoritesReducer.swift @@ -133,9 +133,7 @@ struct FavoritesReducer: Reducer { state.rawPageNumber[targetFavIndex] = pageNumber state.rawGalleries[targetFavIndex] = galleries state.sortOrder = sortOrder - return .run { _ in - await databaseClient.cacheGalleries(galleries) - } + return .run(operation: { _ in await databaseClient.cacheGalleries(galleries) }) case .failure(let error): state.rawLoadingState[targetFavIndex] = .failed(error) } @@ -169,9 +167,7 @@ struct FavoritesReducer: Reducer { state.sortOrder = sortOrder var effects: [Effect] = [ - .run { _ in - await databaseClient.cacheGalleries(galleries) - } + .run(operation: { _ in await databaseClient.cacheGalleries(galleries) }) ] if galleries.isEmpty, pageNumber.hasNextPage() { effects.append(.send(.fetchMoreGalleries)) diff --git a/EhPanda/View/Home/Frontpage/FrontpageReducer.swift b/EhPanda/View/Home/Frontpage/FrontpageReducer.swift index 65e1367a..9a80d42a 100644 --- a/EhPanda/View/Home/Frontpage/FrontpageReducer.swift +++ b/EhPanda/View/Home/Frontpage/FrontpageReducer.swift @@ -109,9 +109,7 @@ struct FrontpageReducer: Reducer { } state.pageNumber = pageNumber state.galleries = galleries - return .run { _ in - await databaseClient.cacheGalleries(galleries) - } + return .run(operation: { _ in await databaseClient.cacheGalleries(galleries) }) case .failure(let error): state.loadingState = .failed(error) } @@ -139,9 +137,7 @@ struct FrontpageReducer: Reducer { state.insertGalleries(galleries) var effects: [Effect] = [ - .run { _ in - await databaseClient.cacheGalleries(galleries) - } + .run(operation: { _ in await databaseClient.cacheGalleries(galleries) }) ] if galleries.isEmpty, pageNumber.hasNextPage() { effects.append(.send(.fetchMoreGalleries)) diff --git a/EhPanda/View/Home/History/HistoryReducer.swift b/EhPanda/View/Home/History/HistoryReducer.swift index 342714bf..4fc76884 100644 --- a/EhPanda/View/Home/History/HistoryReducer.swift +++ b/EhPanda/View/Home/History/HistoryReducer.swift @@ -69,9 +69,7 @@ struct HistoryReducer: Reducer { case .clearHistoryGalleries: return .merge( - .run { _ in - await databaseClient.clearHistoryGalleries() - }, + .run(operation: { _ in await databaseClient.clearHistoryGalleries() }), .run { send in try await Task.sleep(for: .milliseconds(200)) await send(.fetchGalleries) diff --git a/EhPanda/View/Home/HomeReducer.swift b/EhPanda/View/Home/HomeReducer.swift index 318af824..8c5bf2b1 100644 --- a/EhPanda/View/Home/HomeReducer.swift +++ b/EhPanda/View/Home/HomeReducer.swift @@ -169,9 +169,7 @@ struct HomeReducer: Reducer { return .none } state.setPopularGalleries(galleries) - return .run { _ in - await databaseClient.cacheGalleries(galleries) - } + return .run(operation: { _ in await databaseClient.cacheGalleries(galleries) }) case .failure(let error): state.popularLoadingState = .failed(error) } @@ -195,9 +193,7 @@ struct HomeReducer: Reducer { return .none } state.setFrontpageGalleries(galleries) - return .run { _ in - await databaseClient.cacheGalleries(galleries) - } + return .run(operation: { _ in await databaseClient.cacheGalleries(galleries) }) case .failure(let error): state.frontpageLoadingState = .failed(error) } @@ -220,9 +216,7 @@ struct HomeReducer: Reducer { return .none } state.toplistsGalleries[index] = galleries - return .run { _ in - await databaseClient.cacheGalleries(galleries) - } + return .run(operation: { _ in await databaseClient.cacheGalleries(galleries) }) case .failure(let error): state.toplistsLoadingState[index] = .failed(error) } diff --git a/EhPanda/View/Home/Popular/PopularReducer.swift b/EhPanda/View/Home/Popular/PopularReducer.swift index 405d9690..619aaa4e 100644 --- a/EhPanda/View/Home/Popular/PopularReducer.swift +++ b/EhPanda/View/Home/Popular/PopularReducer.swift @@ -94,9 +94,7 @@ struct PopularReducer: Reducer { return .none } state.galleries = galleries - return .run { _ in - await databaseClient.cacheGalleries(galleries) - } + return .run(operation: { _ in await databaseClient.cacheGalleries(galleries) }) case .failure(let error): state.loadingState = .failed(error) } diff --git a/EhPanda/View/Home/Toplists/ToplistsReducer.swift b/EhPanda/View/Home/Toplists/ToplistsReducer.swift index aa22b506..f6d56777 100644 --- a/EhPanda/View/Home/Toplists/ToplistsReducer.swift +++ b/EhPanda/View/Home/Toplists/ToplistsReducer.swift @@ -119,17 +119,13 @@ struct ToplistsReducer: Reducer { guard let index = Int(state.jumpPageIndex), let pageNumber = state.pageNumber, index > 0, index <= pageNumber.maximum + 1 else { - return .run { _ in - hapticsClient.generateNotificationFeedback(.error) - } + return .run(operation: { _ in hapticsClient.generateNotificationFeedback(.error) }) } return .send(.fetchGalleries(index - 1)) case .presentJumpPageAlert: state.jumpPageAlertPresented = true - return .run { _ in - hapticsClient.generateFeedback(.light) - } + return .run(operation: { _ in hapticsClient.generateFeedback(.light) }) case .setJumpPageAlertFocused(let isFocused): state.jumpPageAlertFocused = isFocused @@ -166,9 +162,7 @@ struct ToplistsReducer: Reducer { } state.rawPageNumber[type] = pageNumber state.rawGalleries[type] = galleries - return .run { _ in - await databaseClient.cacheGalleries(galleries) - } + return .run(operation: { _ in await databaseClient.cacheGalleries(galleries) }) case .failure(let error): state.rawLoadingState[type] = .failed(error) } @@ -198,9 +192,7 @@ struct ToplistsReducer: Reducer { state.insertGalleries(type: type, galleries: galleries) var effects: [Effect] = [ - .run { _ in - await databaseClient.cacheGalleries(galleries) - } + .run(operation: { _ in await databaseClient.cacheGalleries(galleries) }) ] if galleries.isEmpty, pageNumber.hasNextPage() { effects.append(.send(.fetchMoreGalleries)) diff --git a/EhPanda/View/Home/Watched/WatchedReducer.swift b/EhPanda/View/Home/Watched/WatchedReducer.swift index d14f6939..50eb9865 100644 --- a/EhPanda/View/Home/Watched/WatchedReducer.swift +++ b/EhPanda/View/Home/Watched/WatchedReducer.swift @@ -119,9 +119,7 @@ struct WatchedReducer: Reducer { } state.pageNumber = pageNumber state.galleries = galleries - return .run { _ in - await databaseClient.cacheGalleries(galleries) - } + return .run(operation: { _ in await databaseClient.cacheGalleries(galleries) }) case .failure(let error): state.loadingState = .failed(error) } @@ -152,9 +150,7 @@ struct WatchedReducer: Reducer { state.insertGalleries(galleries) var effects: [Effect] = [ - .run { _ in - await databaseClient.cacheGalleries(galleries) - } + .run(operation: { _ in await databaseClient.cacheGalleries(galleries) }) ] if galleries.isEmpty, pageNumber.hasNextPage() { effects.append(.send(.fetchMoreGalleries)) diff --git a/EhPanda/View/Reading/ReadingReducer.swift b/EhPanda/View/Reading/ReadingReducer.swift index 87279252..1197a095 100644 --- a/EhPanda/View/Reading/ReadingReducer.swift +++ b/EhPanda/View/Reading/ReadingReducer.swift @@ -190,9 +190,7 @@ struct ReadingReducer: Reducer { Reduce { state, action in switch action { case .binding(\.$showsSliderPreview): - return .run { _ in - hapticsClient.generateFeedback(.soft) - } + return .run(operation: { _ in hapticsClient.generateFeedback(.soft) }) case .binding: return .none @@ -208,23 +206,15 @@ struct ReadingReducer: Reducer { case .setOrientationPortrait(let isPortrait): var effects = [Effect]() if isPortrait { - effects.append(.run { _ in - appDelegateClient.setPortraitOrientationMask() - }) - effects.append(.run { _ in - await appDelegateClient.setPortraitOrientation() - }) + effects.append(.run(operation: { _ in appDelegateClient.setPortraitOrientationMask() })) + effects.append(.run(operation: { _ in await appDelegateClient.setPortraitOrientation() })) } else { - effects.append(.run { _ in - appDelegateClient.setAllOrientationMask() - }) + effects.append(.run(operation: { _ in appDelegateClient.setAllOrientationMask() })) } return .merge(effects) case .onPerformDismiss: - return .run { _ in - hapticsClient.generateFeedback(.light) - } + return .run(operation: { _ in hapticsClient.generateFeedback(.light) }) case .onAppear(let gid, let enablesLandscape): var effects: [Effect] = [ @@ -301,9 +291,7 @@ struct ReadingReducer: Reducer { state.hudConfig = .copiedToClipboardSucceeded return .merge( .send(.setNavigation(.hud)), - .run { _ in - clipboardClient.saveImage(image, isAnimated) - } + .run(operation: { _ in clipboardClient.saveImage(image, isAnimated) }) ) case .save(let isAnimated): return .run { send in @@ -453,9 +441,11 @@ struct ReadingReducer: Reducer { fetchImageURLIndices.forEach { effects.append(.send(.fetchImageURLs($0))) } - effects.append(.run { [prefetchImageURLs] _ in - imageClient.prefetchImages(prefetchImageURLs) - }) + effects.append( + .run { [prefetchImageURLs] _ in + imageClient.prefetchImages(prefetchImageURLs) + } + ) return .merge(effects) case .fetchThumbnailURLs(let index): @@ -552,9 +542,7 @@ struct ReadingReducer: Reducer { case .success(let (imageURLs, response)): var effects = [Effect]() if let response = response { - effects.append(.run { _ in - cookieClient.setSkipServer(response: response) - }) + effects.append(.run(operation: { _ in cookieClient.setSkipServer(response: response) })) } guard !imageURLs.isEmpty else { state.imageURLLoadingStates[index] = .failed(.notFound) diff --git a/EhPanda/View/Search/SearchReducer.swift b/EhPanda/View/Search/SearchReducer.swift index 9c0ff6fb..8ff7e274 100644 --- a/EhPanda/View/Search/SearchReducer.swift +++ b/EhPanda/View/Search/SearchReducer.swift @@ -123,9 +123,7 @@ struct SearchReducer: Reducer { } state.pageNumber = pageNumber state.galleries = galleries - return .run { _ in - await databaseClient.cacheGalleries(galleries) - } + return .run(operation: { _ in await databaseClient.cacheGalleries(galleries) }) case .failure(let error): state.loadingState = .failed(error) } @@ -156,9 +154,7 @@ struct SearchReducer: Reducer { state.insertGalleries(galleries) var effects: [Effect] = [ - .run { _ in - await databaseClient.cacheGalleries(galleries) - } + .run(operation: { _ in await databaseClient.cacheGalleries(galleries) }) ] if galleries.isEmpty, pageNumber.hasNextPage() { effects.append(.send(.fetchMoreGalleries)) diff --git a/EhPanda/View/Setting/AccountSetting/AccountSettingReducer.swift b/EhPanda/View/Setting/AccountSetting/AccountSettingReducer.swift index 15a4ce77..9346f064 100644 --- a/EhPanda/View/Setting/AccountSetting/AccountSettingReducer.swift +++ b/EhPanda/View/Setting/AccountSetting/AccountSettingReducer.swift @@ -88,12 +88,8 @@ struct AccountSettingReducer: Reducer { let cookiesDescription = cookieClient.getCookiesDescription(host: host) return .merge( .send(.setNavigation(.hud)), - .run { _ in - clipboardClient.saveText(cookiesDescription) - }, - .run { _ in - hapticsClient.generateNotificationFeedback(.success) - } + .run(operation: { _ in clipboardClient.saveText(cookiesDescription) }), + .run(operation: { _ in hapticsClient.generateNotificationFeedback(.success) }) ) case .login(.loginDone): diff --git a/EhPanda/View/Setting/EhSetting/EhSettingReducer.swift b/EhPanda/View/Setting/EhSetting/EhSettingReducer.swift index b2af2f6b..059d109f 100644 --- a/EhPanda/View/Setting/EhSetting/EhSettingReducer.swift +++ b/EhPanda/View/Setting/EhSetting/EhSettingReducer.swift @@ -67,9 +67,7 @@ struct EhSettingReducer: Reducer { return .none case .setKeyboardHidden: - return .run { _ in - uiApplicationClient.hideKeyboard() - } + return .run(operation: { _ in uiApplicationClient.hideKeyboard() }) case .setDefaultProfile(let profileSet): return .run { _ in diff --git a/EhPanda/View/Setting/GeneralSetting/GeneralSettingReducer.swift b/EhPanda/View/Setting/GeneralSetting/GeneralSettingReducer.swift index 2064637f..a6f244c7 100644 --- a/EhPanda/View/Setting/GeneralSetting/GeneralSettingReducer.swift +++ b/EhPanda/View/Setting/GeneralSetting/GeneralSettingReducer.swift @@ -74,12 +74,8 @@ struct GeneralSettingReducer: Reducer { case .clearWebImageCache: return .merge( - .run { _ in - libraryClient.clearWebImageDiskCache() - }, - .run { _ in - await databaseClient.removeImageURLs() - }, + .run(operation: { _ in libraryClient.clearWebImageDiskCache() }), + .run(operation: { _ in await databaseClient.removeImageURLs() }), .send(.calculateWebImageDiskCache) ) @@ -88,9 +84,7 @@ struct GeneralSettingReducer: Reducer { return .none case .navigateToSystemSetting: - return .run { _ in - await uiApplicationClient.openSettings() - } + return .run(operation: { _ in await uiApplicationClient.openSettings() }) case .calculateWebImageDiskCache: return .run { send in diff --git a/EhPanda/View/Setting/Login/LoginReducer.swift b/EhPanda/View/Setting/Login/LoginReducer.swift index b66dd23b..9bd9cbe9 100644 --- a/EhPanda/View/Setting/Login/LoginReducer.swift +++ b/EhPanda/View/Setting/Login/LoginReducer.swift @@ -70,9 +70,7 @@ struct LoginReducer: Reducer { state.focusedField = nil state.loginState = .loading return .merge( - .run { _ in - hapticsClient.generateFeedback(.soft) - }, + .run(operation: { _ in hapticsClient.generateFeedback(.soft) }), .run { [state] send in let response = await LoginRequest(username: state.username, password: state.password).response() await send(.loginDone(response)) @@ -85,19 +83,13 @@ struct LoginReducer: Reducer { var effects = [Effect]() if cookieClient.didLogin { state.loginState = .idle - effects.append(.run { _ in - hapticsClient.generateNotificationFeedback(.success) - }) + effects.append(.run(operation: { _ in hapticsClient.generateNotificationFeedback(.success) })) } else { state.loginState = .failed(.unknown) - effects.append(.run { _ in - hapticsClient.generateNotificationFeedback(.error) - }) + effects.append(.run(operation: { _ in hapticsClient.generateNotificationFeedback(.error) })) } if case .success(let response) = result, let response = response { - effects.append(.run { _ in - cookieClient.setCredentials(response: response) - }) + effects.append(.run(operation: { _ in cookieClient.setCredentials(response: response) })) } return .merge(effects) } diff --git a/EhPanda/View/Setting/Logs/LogsReducer.swift b/EhPanda/View/Setting/Logs/LogsReducer.swift index 4f79c78a..cc095860 100644 --- a/EhPanda/View/Setting/Logs/LogsReducer.swift +++ b/EhPanda/View/Setting/Logs/LogsReducer.swift @@ -50,9 +50,7 @@ struct LogsReducer: Reducer { return .none case .navigateToFileApp: - return .run { _ in - await uiApplicationClient.openFileApp() - } + return .run(operation: { _ in await uiApplicationClient.openFileApp() }) case .teardown: return .cancel(id: CancelID.fetchLogs) diff --git a/EhPanda/View/Setting/SettingReducer.swift b/EhPanda/View/Setting/SettingReducer.swift index 969f0968..76419b2f 100644 --- a/EhPanda/View/Setting/SettingReducer.swift +++ b/EhPanda/View/Setting/SettingReducer.swift @@ -115,9 +115,7 @@ struct SettingReducer: Reducer { Reduce { _, _ in .merge( .send(.syncSetting), - .run { _ in - userDefaultsClient.setValue(newValue.rawValue, .galleryHost) - } + .run(operation: { _ in userDefaultsClient.setValue(newValue.rawValue, .galleryHost) }) ) } } @@ -173,9 +171,7 @@ struct SettingReducer: Reducer { .send(.syncSetting) ] if !newValue && !deviceClient.isPad() { - effects.append(.run { _ in - appDelegateClient.setPortraitOrientationMask() - }) + effects.append(.run(operation: { _ in appDelegateClient.setPortraitOrientationMask() })) } return .merge(effects) } @@ -200,12 +196,8 @@ struct SettingReducer: Reducer { Reduce { _, _ in .merge( .send(.syncSetting), - .run { _ in - hapticsClient.generateFeedback(.soft) - }, - .run { _ in - dfClient.setActive(newValue) - } + .run(operation: { _ in hapticsClient.generateFeedback(.soft) }), + .run(operation: { _ in dfClient.setActive(newValue) }) ) } } @@ -245,9 +237,7 @@ struct SettingReducer: Reducer { case .syncUserInterfaceStyle: let style = state.setting.preferredColorScheme.userInterfaceStyle - return .run { _ in - await uiApplicationClient.setUserInterfaceStyle(style) - } + return .run(operation: { _ in await uiApplicationClient.setUserInterfaceStyle(style) }) case .syncSetting: return .run { [state] _ in @@ -306,9 +296,7 @@ struct SettingReducer: Reducer { return .none case .createDefaultEhProfile: - return .run { _ in - _ = await EhProfileRequest(action: .create, name: "EhPanda").response() - } + return .run(operation: { _ in _ = await EhProfileRequest(action: .create, name: "EhPanda").response() }) case .fetchIgneous: guard cookieClient.didLogin else { return .none } @@ -320,9 +308,7 @@ struct SettingReducer: Reducer { case .fetchIgneousDone(let result): var effects = [Effect]() if case .success(let response) = result { - effects.append(.run { _ in - cookieClient.setCredentials(response: response) - }) + effects.append(.run(operation: { _ in cookieClient.setCredentials(response: response) })) } effects.append(.send(.account(.loadCookies))) return .merge(effects) @@ -447,19 +433,19 @@ struct SettingReducer: Reducer { let cookieValue = cookieClient.getCookie(hostURL, selectedProfileKey) if cookieValue.rawValue != profileValueString { - effects.append(.run { _ in - cookieClient.setOrEditCookie( - for: hostURL, key: selectedProfileKey, value: profileValueString - ) - }) + effects.append( + .run { _ in + cookieClient.setOrEditCookie( + for: hostURL, key: selectedProfileKey, value: profileValueString + ) + } + ) } } else if response.isProfileNotFound { effects.append(.send(.createDefaultEhProfile)) } else { let message = "Found profile but failed in parsing value." - effects.append(.run { _ in - loggerClient.error(message, nil) - }) + effects.append(.run(operation: { _ in loggerClient.error(message, nil) })) } } return effects.isEmpty ? .none : .merge(effects) @@ -479,15 +465,9 @@ struct SettingReducer: Reducer { case .account(.login(.loginDone)): return .merge( - .run { _ in - cookieClient.removeYay() - }, - .run { _ in - cookieClient.syncExCookies() - }, - .run { _ in - cookieClient.fulfillAnotherHostField() - }, + .run(operation: { _ in cookieClient.removeYay() }), + .run(operation: { _ in cookieClient.syncExCookies() }), + .run(operation: { _ in cookieClient.fulfillAnotherHostField() }), .send(.fetchIgneous), .send(.fetchUserInfo), .send(.fetchFavoriteCategories), @@ -498,15 +478,9 @@ struct SettingReducer: Reducer { state.user = User() return .merge( .send(.syncUser), - .run { _ in - cookieClient.clearAll() - }, - .run { _ in - await databaseClient.removeImageURLs() - }, - .run { _ in - libraryClient.clearWebImageDiskCache() - } + .run(operation: { _ in cookieClient.clearAll() }), + .run(operation: { _ in await databaseClient.removeImageURLs() }), + .run(operation: { _ in libraryClient.clearWebImageDiskCache() }) ) case .account: diff --git a/EhPanda/View/Support/FiltersReducer.swift b/EhPanda/View/Support/FiltersReducer.swift index 6002ef6d..ba25fc34 100644 --- a/EhPanda/View/Support/FiltersReducer.swift +++ b/EhPanda/View/Support/FiltersReducer.swift @@ -85,9 +85,7 @@ struct FiltersReducer: Reducer { case .watched: filter = state.watchedFilter } - return .run { _ in - await databaseClient.updateFilter(filter, range: range) - } + return .run(operation: { _ in await databaseClient.updateFilter(filter, range: range) }) case .resetFilters: switch state.filterRange {