Skip to content

Commit

Permalink
rename XXXReducer to XXXFeature
Browse files Browse the repository at this point in the history
  • Loading branch information
vykut committed Dec 10, 2023
1 parent 0b71f82 commit d6603d1
Show file tree
Hide file tree
Showing 15 changed files with 92 additions and 92 deletions.
24 changes: 12 additions & 12 deletions FoodSpec.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
EC2799862B19ECE900D9E4B0 /* ComposableArchitecture in Frameworks */ = {isa = PBXBuildFile; productRef = EC2799852B19ECE900D9E4B0 /* ComposableArchitecture */; };
EC2799882B1B2BBA00D9E4B0 /* APIKeys.json in Resources */ = {isa = PBXBuildFile; fileRef = EC2799872B1B2BBA00D9E4B0 /* APIKeys.json */; settings = {ASSET_TAGS = (APIKeys, ); }; };
EC27998A2B1B304900D9E4B0 /* ApiKeysClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC2799892B1B304900D9E4B0 /* ApiKeysClient.swift */; };
EC27998D2B1B385200D9E4B0 /* FoodListReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC27998C2B1B385200D9E4B0 /* FoodListReducer.swift */; };
EC2799902B1B390E00D9E4B0 /* FoodDetailsReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC27998F2B1B390E00D9E4B0 /* FoodDetailsReducer.swift */; };
EC27998D2B1B385200D9E4B0 /* FoodListFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC27998C2B1B385200D9E4B0 /* FoodListFeature.swift */; };
EC2799902B1B390E00D9E4B0 /* FoodDetailsFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC27998F2B1B390E00D9E4B0 /* FoodDetailsFeature.swift */; };
EC43E55A2B175A140007CD40 /* FoodSpecApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC43E5592B175A140007CD40 /* FoodSpecApp.swift */; };
EC43E55C2B175A140007CD40 /* FoodList.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC43E55B2B175A140007CD40 /* FoodList.swift */; };
EC43E5602B175A160007CD40 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EC43E55F2B175A160007CD40 /* Assets.xcassets */; };
Expand All @@ -36,7 +36,7 @@
EC7F56862B2466F6005C372B /* BillboardReducerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC7F56852B2466F6005C372B /* BillboardReducerTests.swift */; };
EC7F568A2B24E983005C372B /* FoodComparison.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC7F56892B24E983005C372B /* FoodComparison.swift */; };
EC7F568C2B24E997005C372B /* FoodSelection.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC7F568B2B24E997005C372B /* FoodSelection.swift */; };
EC7F568E2B24F14B005C372B /* FoodComparisonReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC7F568D2B24F14B005C372B /* FoodComparisonReducer.swift */; };
EC7F568E2B24F14B005C372B /* FoodComparisonFeature.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC7F568D2B24F14B005C372B /* FoodComparisonFeature.swift */; };
EC7F56922B25A529005C372B /* QuantityComparisonChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC7F56912B25A529005C372B /* QuantityComparisonChart.swift */; };
EC7F56952B25B44F005C372B /* MacronutrientsComparisonChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC7F56942B25B44F005C372B /* MacronutrientsComparisonChart.swift */; };
EC7F56972B25BEBB005C372B /* EnergyBreakdownComparisonChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC7F56962B25BEBB005C372B /* EnergyBreakdownComparisonChart.swift */; };
Expand All @@ -62,8 +62,8 @@
/* Begin PBXFileReference section */
EC2799872B1B2BBA00D9E4B0 /* APIKeys.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = APIKeys.json; sourceTree = "<group>"; };
EC2799892B1B304900D9E4B0 /* ApiKeysClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApiKeysClient.swift; sourceTree = "<group>"; };
EC27998C2B1B385200D9E4B0 /* FoodListReducer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FoodListReducer.swift; sourceTree = "<group>"; };
EC27998F2B1B390E00D9E4B0 /* FoodDetailsReducer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FoodDetailsReducer.swift; sourceTree = "<group>"; };
EC27998C2B1B385200D9E4B0 /* FoodListFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FoodListFeature.swift; sourceTree = "<group>"; };
EC27998F2B1B390E00D9E4B0 /* FoodDetailsFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FoodDetailsFeature.swift; sourceTree = "<group>"; };
EC43E5562B175A140007CD40 /* FoodSpec.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FoodSpec.app; sourceTree = BUILT_PRODUCTS_DIR; };
EC43E5592B175A140007CD40 /* FoodSpecApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FoodSpecApp.swift; sourceTree = "<group>"; };
EC43E55B2B175A140007CD40 /* FoodList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FoodList.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -91,7 +91,7 @@
EC7F56852B2466F6005C372B /* BillboardReducerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BillboardReducerTests.swift; sourceTree = "<group>"; };
EC7F56892B24E983005C372B /* FoodComparison.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FoodComparison.swift; sourceTree = "<group>"; };
EC7F568B2B24E997005C372B /* FoodSelection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FoodSelection.swift; sourceTree = "<group>"; };
EC7F568D2B24F14B005C372B /* FoodComparisonReducer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FoodComparisonReducer.swift; sourceTree = "<group>"; };
EC7F568D2B24F14B005C372B /* FoodComparisonFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FoodComparisonFeature.swift; sourceTree = "<group>"; };
EC7F56912B25A529005C372B /* QuantityComparisonChart.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuantityComparisonChart.swift; sourceTree = "<group>"; };
EC7F56942B25B44F005C372B /* MacronutrientsComparisonChart.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MacronutrientsComparisonChart.swift; sourceTree = "<group>"; };
EC7F56962B25BEBB005C372B /* EnergyBreakdownComparisonChart.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnergyBreakdownComparisonChart.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -130,7 +130,7 @@
children = (
EC7F56832B24638B005C372B /* BillboardReducer.swift */,
EC43E55B2B175A140007CD40 /* FoodList.swift */,
EC27998C2B1B385200D9E4B0 /* FoodListReducer.swift */,
EC27998C2B1B385200D9E4B0 /* FoodListFeature.swift */,
EC4717A52B1C4DD5007B491C /* FoodListRow.swift */,
EC7F56712B221519005C372B /* SpotlightReducer.swift */,
);
Expand All @@ -142,7 +142,7 @@
children = (
EC7F567A2B23136D005C372B /* EnergyBreakdownChart.swift */,
EC9577AF2B1869760082A0D1 /* FoodDetails.swift */,
EC27998F2B1B390E00D9E4B0 /* FoodDetailsReducer.swift */,
EC27998F2B1B390E00D9E4B0 /* FoodDetailsFeature.swift */,
EC9577B12B1872E60082A0D1 /* NutritionalValueCard.swift */,
);
path = "Food Details";
Expand Down Expand Up @@ -229,7 +229,7 @@
children = (
ECA2EC412B2615F2000BD06F /* Comparison.swift */,
EC7F56892B24E983005C372B /* FoodComparison.swift */,
EC7F568D2B24F14B005C372B /* FoodComparisonReducer.swift */,
EC7F568D2B24F14B005C372B /* FoodComparisonFeature.swift */,
EC7F568B2B24E997005C372B /* FoodSelection.swift */,
EC7F56932B25B34D005C372B /* Charts */,
);
Expand Down Expand Up @@ -390,14 +390,14 @@
EC7F56822B2397B3005C372B /* BillboardClient.swift in Sources */,
EC9577B02B1869760082A0D1 /* FoodDetails.swift in Sources */,
EC7DC2872B1DC38100BC8FD5 /* UserDefaultsClient.swift in Sources */,
EC2799902B1B390E00D9E4B0 /* FoodDetailsReducer.swift in Sources */,
EC2799902B1B390E00D9E4B0 /* FoodDetailsFeature.swift in Sources */,
EC7F56782B230D9E005C372B /* EnergyCalculator.swift in Sources */,
ECCA83F82B177A1400C9EF4D /* FoodClient.swift in Sources */,
EC43E55A2B175A140007CD40 /* FoodSpecApp.swift in Sources */,
EC9577B22B1872E60082A0D1 /* NutritionalValueCard.swift in Sources */,
EC7F56922B25A529005C372B /* QuantityComparisonChart.swift in Sources */,
EC7F568A2B24E983005C372B /* FoodComparison.swift in Sources */,
EC7F568E2B24F14B005C372B /* FoodComparisonReducer.swift in Sources */,
EC7F568E2B24F14B005C372B /* FoodComparisonFeature.swift in Sources */,
EC7DC2922B1F375100BC8FD5 /* Food.swift in Sources */,
EC7F56722B221519005C372B /* SpotlightReducer.swift in Sources */,
EC7F56842B24638B005C372B /* BillboardReducer.swift in Sources */,
Expand All @@ -407,7 +407,7 @@
EC7F56742B221572005C372B /* SpotlightClient.swift in Sources */,
ECA64C232B1DB18E0036EE4F /* Energy.swift in Sources */,
EC7F568C2B24E997005C372B /* FoodSelection.swift in Sources */,
EC27998D2B1B385200D9E4B0 /* FoodListReducer.swift in Sources */,
EC27998D2B1B385200D9E4B0 /* FoodListFeature.swift in Sources */,
EC7F56972B25BEBB005C372B /* EnergyBreakdownComparisonChart.swift in Sources */,
EC7F56952B25B44F005C372B /* MacronutrientsComparisonChart.swift in Sources */,
EC27998A2B1B304900D9E4B0 /* ApiKeysClient.swift in Sources */,
Expand Down
8 changes: 4 additions & 4 deletions FoodSpec/Food Comparison/FoodComparison.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ import SwiftUI
import ComposableArchitecture

struct FoodComparison: View {
typealias SortingStrategy = FoodComparisonReducer.State.SortingStrategy
typealias SortingStrategy = FoodComparisonFeature.State.SortingStrategy

@Bindable var store: StoreOf<FoodComparisonReducer>
@Bindable var store: StoreOf<FoodComparisonFeature>

var body: some View {
Section {
Expand Down Expand Up @@ -160,9 +160,9 @@ struct FoodComparison: View {
#Preview {
FoodComparison(
store: Store(
initialState: FoodComparisonReducer.State(),
initialState: FoodComparisonFeature.State(),
reducer: {
FoodComparisonReducer()
FoodComparisonFeature()
}
)
)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// FoodComparisonReducer.swift
// FoodComparisonFeature.swift
// FoodSpec
//
// Created by Victor Socaciu on 09/12/2023.
Expand All @@ -9,7 +9,7 @@ import Foundation
import ComposableArchitecture

@Reducer
struct FoodComparisonReducer {
struct FoodComparisonFeature {
@ObservableState
struct State: Hashable {
var foods: [Food] = []
Expand Down Expand Up @@ -135,7 +135,7 @@ struct FoodComparisonReducer {

extension Array<Food> {
mutating func sort(
by strategy: FoodComparisonReducer.State.SortingStrategy,
by strategy: FoodComparisonFeature.State.SortingStrategy,
comparison: Comparison,
order: SortOrder
) {
Expand All @@ -154,7 +154,7 @@ extension Array<Food> {
}

func sorted(
by strategy: FoodComparisonReducer.State.SortingStrategy,
by strategy: FoodComparisonFeature.State.SortingStrategy,
comparison: Comparison,
order: SortOrder
) -> [Food] {
Expand Down
6 changes: 3 additions & 3 deletions FoodSpec/Food Comparison/FoodSelection.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import SwiftUI
import ComposableArchitecture

struct FoodSelection: View {
@Bindable var store: StoreOf<FoodComparisonReducer>
@Bindable var store: StoreOf<FoodComparisonFeature>

var body: some View {
List(selection: $store.selectedFoodIds.sending(\.didChangeSelection)) {
Expand Down Expand Up @@ -80,7 +80,7 @@ struct FoodSelection: View {
NavigationStack {
FoodSelection(
store: .init(
initialState: FoodComparisonReducer.State(
initialState: FoodComparisonFeature.State(
foods: [
.init(id: 1, name: "eggplant"),
.init(id: 2, name: "ribeye"),
Expand All @@ -89,7 +89,7 @@ struct FoodSelection: View {
selectedFoodIds: [1]
),
reducer: {
FoodComparisonReducer()
FoodComparisonFeature()
._printChanges()
}
)
Expand Down
4 changes: 2 additions & 2 deletions FoodSpec/Food Details/FoodDetails.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import SwiftUI
import ComposableArchitecture

struct FoodDetails: View {
@Bindable var store: StoreOf<FoodDetailsReducer>
@Bindable var store: StoreOf<FoodDetailsFeature>

var body: some View {
ScrollView {
Expand Down Expand Up @@ -145,7 +145,7 @@ struct FoodDetails: View {
food: .preview
),
reducer: {
FoodDetailsReducer()
FoodDetailsFeature()
}
)
)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// FoodDetailsReducer.swift
// FoodDetailsFeature.swift
// FoodSpec
//
// Created by Victor Socaciu on 02/12/2023.
Expand All @@ -9,7 +9,7 @@ import Foundation
import ComposableArchitecture

@Reducer
struct FoodDetailsReducer {
struct FoodDetailsFeature {
@ObservableState
struct State: Hashable {
let food: Food
Expand Down
12 changes: 6 additions & 6 deletions FoodSpec/Food List/BillboardReducer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ import Billboard

@Reducer
struct BillboardReducer {
typealias State = FoodListReducer.State
typealias Action = FoodListReducer.Action
typealias State = FoodListFeature.State
typealias Action = FoodListFeature.Action

@Dependency(\.billboardClient) private var billboardClient

func reduce(into state: inout FoodListReducer.State, action: FoodListReducer.Action) -> Effect<FoodListReducer.Action> {
func reduce(into state: inout FoodListFeature.State, action: FoodListFeature.Action) -> Effect<FoodListFeature.Action> {
switch action {
case .onAppear:
return .run { send in
Expand All @@ -38,7 +38,7 @@ struct BillboardReducer {
}
}

private func reduce(into state: inout FoodListReducer.State, action: FoodListReducer.Action.Billboard) -> Effect<FoodListReducer.Action> {
private func reduce(into state: inout FoodListFeature.State, action: FoodListFeature.Action.Billboard) -> Effect<FoodListFeature.Action> {
switch action {
case .showBanner(let banner):
state.billboard.banner = banner
Expand All @@ -47,13 +47,13 @@ struct BillboardReducer {
}
}

extension FoodListReducer.State {
extension FoodListFeature.State {
struct Billboard: Equatable {
var banner: BillboardAd?
}
}

extension FoodListReducer.Action {
extension FoodListFeature.Action {
@CasePathable
enum Billboard {
case showBanner(BillboardAd?)
Expand Down
6 changes: 3 additions & 3 deletions FoodSpec/Food List/FoodList.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import CoreSpotlight
import Billboard

struct FoodList: View {
@Bindable var store: StoreOf<FoodListReducer>
@Bindable var store: StoreOf<FoodListFeature>

var body: some View {
NavigationStack {
Expand Down Expand Up @@ -168,9 +168,9 @@ struct FoodList: View {
#Preview {
FoodList(
store: .init(
initialState: FoodListReducer.State(),
initialState: FoodListFeature.State(),
reducer: {
FoodListReducer()
FoodListFeature()
.transformDependency(\.databaseClient) {
$0.observeFoods = { _, _ in
.init {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// FoodListReducer.swift
// FoodListFeature.swift
// FoodSpec
//
// Created by Victor Socaciu on 02/12/2023.
Expand All @@ -10,7 +10,7 @@ import GRDB
import ComposableArchitecture

@Reducer
struct FoodListReducer {
struct FoodListFeature {
@ObservableState
struct State: Equatable {
var recentFoods: [Food] = []
Expand All @@ -21,10 +21,10 @@ struct FoodListReducer {
var isSearching = false
var searchResults: [Food] = []
var shouldShowNoResults: Bool = false
var inlineFood: FoodDetailsReducer.State?
var inlineFood: FoodDetailsFeature.State?
var billboard: Billboard = .init()
@Presents var foodDetails: FoodDetailsReducer.State?
@Presents var foodComparison: FoodComparisonReducer.State?
@Presents var foodDetails: FoodDetailsFeature.State?
@Presents var foodComparison: FoodComparisonFeature.State?
@Presents var alert: AlertState<Action.Alert>?

var shouldShowRecentSearches: Bool {
Expand Down Expand Up @@ -65,10 +65,10 @@ struct FoodListReducer {
case didDeleteRecentFoods(IndexSet)
case startSearching
case didReceiveSearchFoods([FoodApiModel])
case foodDetails(PresentationAction<FoodDetailsReducer.Action>)
case inlineFood(FoodDetailsReducer.Action)
case foodDetails(PresentationAction<FoodDetailsFeature.Action>)
case inlineFood(FoodDetailsFeature.Action)
case didTapCompare
case foodComparison(PresentationAction<FoodComparisonReducer.Action>)
case foodComparison(PresentationAction<FoodComparisonFeature.Action>)
case updateRecentFoodsSortingStrategy(Food.SortingStrategy)
case billboard(Billboard)
case spotlight(Spotlight)
Expand Down Expand Up @@ -242,10 +242,10 @@ struct FoodListReducer {
}
}
.ifLet(\.$foodDetails, action: \.foodDetails) {
FoodDetailsReducer()
FoodDetailsFeature()
}
.ifLet(\.$foodComparison, action: \.foodComparison) {
FoodComparisonReducer()
FoodComparisonFeature()
}
.ifLet(\.$alert, action: \.alert)
SpotlightReducer()
Expand Down
10 changes: 5 additions & 5 deletions FoodSpec/Food List/SpotlightReducer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ import CoreSpotlight

@Reducer
struct SpotlightReducer {
typealias State = FoodListReducer.State
typealias Action = FoodListReducer.Action
typealias State = FoodListFeature.State
typealias Action = FoodListFeature.Action

@Dependency(\.spotlightClient) var spotlightClient
@Dependency(\.databaseClient) var databaseClient

func reduce(into state: inout FoodListReducer.State, action: FoodListReducer.Action) -> Effect<FoodListReducer.Action> {
func reduce(into state: inout FoodListFeature.State, action: FoodListFeature.Action) -> Effect<FoodListFeature.Action> {
switch action {
case .didFetchRecentFoods(let recentFoods):
return .run { send in
Expand All @@ -35,7 +35,7 @@ struct SpotlightReducer {
}
}

private func reduce(into state: inout FoodListReducer.State, action: FoodListReducer.Action.Spotlight) -> Effect<FoodListReducer.Action> {
private func reduce(into state: inout FoodListFeature.State, action: FoodListFeature.Action.Spotlight) -> Effect<FoodListFeature.Action> {
switch action {
case .handleSelectedFood(let activity):
guard let foodName = activity.userInfo?[CSSearchableItemActivityIdentifier] as? String else { return .none }
Expand All @@ -59,7 +59,7 @@ struct SpotlightReducer {
}
}

extension FoodListReducer.Action {
extension FoodListFeature.Action {
@CasePathable
enum Spotlight {
case handleSelectedFood(NSUserActivity)
Expand Down
4 changes: 2 additions & 2 deletions FoodSpec/FoodSpecApp.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ import ComposableArchitecture
@main
struct FoodSpecApp: App {
let store = Store(
initialState: FoodListReducer.State(),
initialState: FoodListFeature.State(),
reducer: {
FoodListReducer()
FoodListFeature()
._printChanges()
}
)
Expand Down
Loading

0 comments on commit d6603d1

Please sign in to comment.