Skip to content

Commit ca01fda

Browse files
committed
Adds sign in button in positions when user is not signed in
1 parent e8ad744 commit ca01fda

File tree

2 files changed

+20
-13
lines changed

2 files changed

+20
-13
lines changed

ios/dydx/dydxPresenters/dydxPresenters/_v4/Portfolio/Components/dydxPortfolioPositionsViewPresenter.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,18 @@ class dydxPortfolioPositionsViewPresenter: HostedViewPresenter<dydxPortfolioPosi
2929
viewModel?.vaultTapAction = {
3030
Router.shared?.navigate(to: RoutingRequest(path: "/vault"), animated: true, completion: nil)
3131
}
32+
viewModel?.onboardAction = {
33+
Router.shared?.navigate(to: RoutingRequest(path: "/onboard"), animated: true, completion: { /* [weak self] */ _, _ in
34+
})
35+
}
3236
}
3337

3438
override func start() {
3539
super.start()
3640

3741
AbacusStateManager.shared.state.onboarded
3842
.sink { [weak self] onboarded in
39-
if onboarded {
40-
self?.viewModel?.emptyText = DataLocalizer.localize(path: "APP.GENERAL.PLACEHOLDER_NO_POSITIONS")
41-
} else {
42-
self?.viewModel?.emptyText = DataLocalizer.localize(path: "APP.GENERAL.PLACEHOLDER_NO_POSITIONS_LOG_IN")
43-
}
43+
self?.viewModel?.isSignedIn = onboarded
4444
}
4545
.store(in: &subscriptions)
4646

ios/dydx/dydxViews/dydxViews/_v4/Portfolio/Components/Sections/dydxPortfolioPositionsView.swift

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,6 @@ public class dydxPortfolioPositionItemViewModel: PlatformViewModel {
244244
}
245245

246246
public class dydxPortfolioPositionsViewModel: PlatformViewModel {
247-
@Published public var emptyText: String?
248247
@Published public var positionItems: [dydxPortfolioPositionItemViewModel] {
249248
didSet {
250249
contentChanged?()
@@ -259,19 +258,19 @@ public class dydxPortfolioPositionsViewModel: PlatformViewModel {
259258
@Published public var vaultBalance: String?
260259
@Published public var vaultApy: Double?
261260
@Published public var vaultTapAction: (() -> Void)?
261+
@Published public var isSignedIn: Bool = false
262+
@Published public var onboardAction: (() -> Void)?
262263

263264
public var contentChanged: (() -> Void)?
264265

265266
init(
266267
positionItems: [dydxPortfolioPositionItemViewModel] = [],
267268
pendingPositionItems: [dydxPortfolioPendingPositionsItemViewModel] = [],
268269
vaultBalance: String? = nil,
269-
vaultApy: String? = nil,
270-
emptyText: String? = nil
270+
vaultApy: String? = nil
271271
) {
272272
self.positionItems = positionItems
273273
self.pendingPositionItems = pendingPositionItems
274-
self.emptyText = emptyText
275274
}
276275

277276
public static var previewValue: dydxPortfolioPositionsViewModel {
@@ -283,8 +282,8 @@ public class dydxPortfolioPositionsViewModel: PlatformViewModel {
283282
pendingPositionItems: [
284283
.previewValue
285284
],
286-
vaultBalance: "324.320",
287-
emptyText: "empty")
285+
vaultBalance: "324.320"
286+
)
288287
}
289288

290289
public var pendingPositionsHeader: PlatformViewModel? {
@@ -309,9 +308,9 @@ public class dydxPortfolioPositionsViewModel: PlatformViewModel {
309308

310309
private var openPositionsView: some View {
311310
LazyVStack {
312-
if let emptyText = self.emptyText, positionItems.isEmpty {
311+
if positionItems.isEmpty {
313312
AnyView(
314-
PlaceholderViewModel(text: emptyText)
313+
PlaceholderViewModel(text: DataLocalizer.localize(path: "APP.GENERAL.PLACEHOLDER_NO_POSITIONS"))
315314
.createView()
316315
)
317316
} else {
@@ -398,6 +397,14 @@ public class dydxPortfolioPositionsViewModel: PlatformViewModel {
398397
public override func createView(parentStyle: ThemeStyle = ThemeStyle.defaultStyle, styleKey: String? = nil) -> PlatformView {
399398
PlatformView(viewModel: self, parentStyle: parentStyle, styleKey: styleKey) { [weak self] _ in
400399
guard let self = self else { return AnyView(PlatformView.nilView) }
400+
guard self.isSignedIn else {
401+
return PlatformButtonViewModel(
402+
content: Text(DataLocalizer.localize(path: "APP.GENERAL.SIGN_IN_TO_VIEW")).wrappedViewModel,
403+
action: { self.onboardAction?() }
404+
)
405+
.createView(parentStyle: parentStyle)
406+
.wrappedInAnyView()
407+
}
401408

402409
return AnyView(
403410
ScrollView {

0 commit comments

Comments
 (0)