Skip to content

Commit d032cc4

Browse files
committed
fix: solve share bottomsheet issue
1 parent e446a3d commit d032cc4

File tree

5 files changed

+41
-48
lines changed

5 files changed

+41
-48
lines changed

Giffy/Features/Detail/DetailView.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,6 @@ struct DetailView: View {
114114
.tint(.Theme.green)
115115
.font(.system(size: 80))
116116
.frame(width: 10, height: 10)
117-
.padding(.trailing, 20)
118117
} else {
119118
IconButton(
120119
iconName: viewStore.state.shareImage != nil ? "doc.on.clipboard.fill" : "doc.on.clipboard",
@@ -125,7 +124,6 @@ struct DetailView: View {
125124
}
126125
)
127126
.tapScaleEffect()
128-
.padding(.trailing, 20)
129127
}
130128
}
131129

Giffy/Features/Home/Button.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ struct IconButton: View {
1919
Image(systemName: iconName)
2020
.font(.system(size: size))
2121
.foregroundColor(tint)
22-
.frame(width: size, height: size)
2322
.contentShape(.rect)
23+
.padding(6)
2424
}
2525
.buttonStyle(.plain)
2626
}

Giffy/Features/Search/SearchReducer.swift

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,22 @@
55
// Created by Uwais Alqadri on 23/9/23.
66
//
77

8-
import Foundation
9-
import ComposableArchitecture
108
import Common
119
import CommonUI
10+
import ComposableArchitecture
11+
import Foundation
1212
import SDWebImage
1313

1414
@Reducer
1515
public struct SearchReducer {
16-
16+
1717
@Route var router
1818
private let searchUseCase: SearchUseCase
1919

2020
init(searchUseCase: SearchUseCase) {
2121
self.searchUseCase = searchUseCase
2222
}
23-
23+
2424
@ObservableState
2525
public struct State: Equatable {
2626
var rightColumn: [Giffy] = []
@@ -30,35 +30,35 @@ public struct SearchReducer {
3030
var isLoading: Bool = false
3131
var shareImage: Data?
3232
var isEmpty: Bool = false
33-
33+
3434
var share: StoreOf<ShareReducer> {
3535
Store(initialState: .init(shareImage)) {
3636
ShareReducer()
3737
}
3838
}
39-
39+
4040
var allItems: [Giffy] {
4141
var combinedItems: [Giffy] = []
4242
let leftItems = items(.left)
4343
let rightItems = items(.right)
4444
let maxCount = max(rightItems.count, leftItems.count)
45-
45+
4646
for index in 0..<maxCount {
4747
if index < rightItems.count {
48-
combinedItems.append(rightItems[index]) // Add from right (odd indices)
48+
combinedItems.append(rightItems[index]) // Add from right (odd indices)
4949
}
5050
if index < leftItems.count {
51-
combinedItems.append(leftItems[index]) // Add from left (even indices)
51+
combinedItems.append(leftItems[index]) // Add from left (even indices)
5252
}
5353
}
54-
54+
5555
return combinedItems
5656
}
57-
57+
5858
func currentPosition(_ giffy: Giffy) -> Int {
5959
allItems.firstIndex(where: { $0.id == giffy.id }) ?? 0
6060
}
61-
61+
6262
func items(_ side: SearchReducer.GridSide) -> [Giffy] {
6363
switch side {
6464
case .right:
@@ -68,7 +68,7 @@ public struct SearchReducer {
6868
}
6969
}
7070
}
71-
71+
7272
public enum Action {
7373
case initialFetch
7474
case fetch(request: String)
@@ -78,15 +78,15 @@ public struct SearchReducer {
7878
case showShare(Data?)
7979
case openFavorite
8080
}
81-
81+
8282
public var body: some Reducer<State, Action> {
8383
Reduce { state, action in
8484
switch action {
8585
case .initialFetch:
8686
return .run { send in
8787
await send(.fetch(request: greetingText))
8888
}
89-
89+
9090
case .fetch(let query):
9191
state.searchText = query
9292
state.isLoading = true
@@ -98,7 +98,7 @@ public struct SearchReducer {
9898
await send(.failed(error: error))
9999
}
100100
}
101-
101+
102102
case .success(let data):
103103
state.isEmpty = data.isEmpty
104104
state.isLoading = false
@@ -108,18 +108,18 @@ public struct SearchReducer {
108108
state.leftColumn = GridSide.split(data, side: .left)
109109
}
110110
return .none
111-
111+
112112
case .failed:
113113
state.isEmpty = true
114114
state.isLoading = false
115115
return .none
116-
116+
117117
case let .showDetail(item):
118118
var allItems = state.allItems
119119
allItems[state.currentPosition(item)].isHighlighted = true
120120
router.present(.detail(items: allItems))
121121
return .none
122-
122+
123123
case let .showShare(image):
124124
state.shareImage = image
125125
return .none
@@ -130,24 +130,24 @@ public struct SearchReducer {
130130
}
131131
}
132132
}
133-
133+
134134
public var greetingText: String {
135-
let hour = Calendar.current.component(.hour, from: Date())
136-
switch hour {
137-
case 5..<12:
138-
return "Good Morning"
139-
case 12..<17:
140-
return "Good Afternoon"
141-
case 17..<21:
142-
return "Good Evening"
143-
default:
144-
return "Good Night"
145-
}
135+
let hour = Calendar.current.component(.hour, from: Date())
136+
switch hour {
137+
case 5..<12:
138+
return "Morning"
139+
case 12..<17:
140+
return "Afternoon"
141+
case 17..<21:
142+
return "Evening"
143+
default:
144+
return "Night"
145+
}
146146
}
147-
147+
148148
public enum GridSide: CaseIterable {
149149
case right, left
150-
150+
151151
static func split(_ items: [Giffy], side: GridSide) -> [Giffy] {
152152
let allItems = items.enumerated()
153153
switch side {

Giffy/Features/Sticker/StickerReducer.swift

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,7 @@ public struct StickerReducer {
5353
case presentPhotoPicker(_ state: Bool)
5454
case toggleShowOriginalImage(_ state: Bool)
5555
case updateSticker(_ sticker: Sticker)
56-
case shareSticker
57-
case dismissShare
56+
case shouldShowShare(_ state: Bool)
5857
}
5958

6059
public var body: some Reducer<State, Action> {
@@ -85,12 +84,8 @@ public struct StickerReducer {
8584
state.currentSticker = sticker
8685
return .none
8786

88-
case .shareSticker:
89-
state.isCopied = true
90-
return .none
91-
92-
case .dismissShare:
93-
state.isCopied = false
87+
case let .shouldShowShare(bool):
88+
state.isCopied = bool
9489
return .none
9590
}
9691
}

Giffy/Features/Sticker/StickerView.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,13 @@ struct StickerView: View {
6464
shouldDismissOnTapOutside: true,
6565
isShowing: viewStore.binding(
6666
get: { $0.isCopied },
67-
send: .dismissShare
67+
send: { .shouldShowShare($0) }
6868
)
6969
) {
7070
ShareView(store: viewStore.state.share)
7171
}
72-
.onChange(of: viewStore.state.currentSticker) { sticker, _ in
73-
tabState.isShowShare = sticker.imageData != nil
72+
.onChange(of: viewStore.isCopied) { _, _ in
73+
tabState.isShowShare = viewStore.isCopied
7474
}
7575
.navigationBarTitleDisplayMode(.inline)
7676
.toolbar {
@@ -86,7 +86,7 @@ struct StickerView: View {
8686
tint: .Theme.green,
8787
size: 15,
8888
onClick: {
89-
viewStore.send(.shareSticker)
89+
viewStore.send(.shouldShowShare(true))
9090
}
9191
)
9292
.tapScaleEffect()

0 commit comments

Comments
 (0)