Skip to content

Commit 4a1a0a5

Browse files
committed
[Fix] #192 - 즐겨찾기 앨범 탭 안 되던 이슈 해결
1 parent c75540f commit 4a1a0a5

4 files changed

Lines changed: 25 additions & 24 deletions

File tree

Neki-iOS/Features/Archive/Sources/Presentation/Sources/Components/ArchiveImageCard.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@ struct ArchiveImageCard: View {
2929
)
3030

3131
var imageAspectRatio: CGFloat? {
32-
if let width = item.width, let height = item.height, height > 0 {
33-
return CGFloat(width) / CGFloat(height)
34-
}
35-
return nil
32+
if let width = item.width, let height = item.height, height > 0 {
33+
return CGFloat(width) / CGFloat(height)
3634
}
35+
return nil
36+
}
3737

3838
//MARK: - Init
39-
39+
4040
init(
4141
item: ArchiveImageItem,
4242
isSelectionMode: Bool = false,

Neki-iOS/Features/Archive/Sources/Presentation/Sources/Coordinator/ArchiveCoordinator.swift

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -64,22 +64,24 @@ struct ArchiveCoordinator {
6464
return .none
6565

6666
case let .root(.albumTapped(album)):
67-
let isFirstAlbum = state.root.albums.first?.id == album.id
68-
69-
if isFirstAlbum {
70-
state.path.append(.favoriteAlbum(ArchiveFavoriteAlbumFeature.State(album: album)))
67+
if album.isFavorite {
68+
state.path.append(.favoriteAlbum(
69+
ArchiveFavoriteAlbumFeature.State(album: album)
70+
))
7171
} else {
72-
state.path.append(.albumDetail(ArchiveAlbumDetailFeature.State(album: album)))
72+
state.path.append(.albumDetail(
73+
ArchiveAlbumDetailFeature.State(album: album)))
7374
}
7475
return .none
7576

7677
case let .root(.afterUploadNavigateToAlbumDetail(album)):
77-
let isFirstAlbum = state.root.albums.first?.id == album.id
78-
79-
if isFirstAlbum {
80-
state.path.append(.favoriteAlbum(ArchiveFavoriteAlbumFeature.State(album: album)))
78+
if album.isFavorite {
79+
state.path.append(.favoriteAlbum(
80+
ArchiveFavoriteAlbumFeature.State(album: album)
81+
))
8182
} else {
82-
state.path.append(.albumDetail(ArchiveAlbumDetailFeature.State(album: album)))
83+
state.path.append(.albumDetail(
84+
ArchiveAlbumDetailFeature.State(album: album)))
8385
}
8486
return .none
8587

@@ -101,9 +103,7 @@ struct ArchiveCoordinator {
101103
return .none
102104

103105
case let .path(.element(id: _, action: .allAlbums(.onTapAlbum(album)))):
104-
let isFirstAlbum = state.root.albums.first?.id == album.id
105-
106-
if isFirstAlbum {
106+
if album.isFavorite {
107107
state.path.append(.favoriteAlbum(
108108
ArchiveFavoriteAlbumFeature.State(album: album)
109109
))

Neki-iOS/Features/Archive/Sources/Presentation/Sources/Feature/ArchiveFeature.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ struct ArchiveFeature {
149149
.run { send in
150150
do {
151151
let entity = try await archiveClient.getFavoriteAlbumInfo()
152-
let favoriteAlbum = AlbumItem(id: 0, title: "즐겨찾기", count: entity.totalCount, coverImageURL: URL(string: entity.latestImageURL), isFavorite: true)
152+
let favoriteAlbum = AlbumItem(id: -1, title: "즐겨찾기", count: entity.totalCount, coverImageURL: URL(string: entity.latestImageURL), isFavorite: true)
153153
await send(.favoriteAlbumResponse(.success(favoriteAlbum)))
154154
} catch {
155155
await send(.favoriteAlbumResponse(.failure(error)))

Neki-iOS/Features/Archive/Sources/Presentation/Sources/View/ArchiveView.swift

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -179,11 +179,12 @@ private extension ArchiveView {
179179

180180
ScrollView(.horizontal, showsIndicators: false) {
181181
HStack(spacing: 12) {
182-
ForEach(store.previewAlbums) { album in
183-
AlbumCard(album: album)
184-
.onTapGesture {
185-
store.send(.albumTapped(album))
186-
}
182+
ForEach(store.previewAlbums, id: \.id) { album in
183+
Button {
184+
store.send(.albumTapped(album))
185+
} label: {
186+
AlbumCard(album: album)
187+
}
187188
}
188189

189190
Button {

0 commit comments

Comments
 (0)