Skip to content

Commit

Permalink
move alerts routing to settings screen
Browse files Browse the repository at this point in the history
  • Loading branch information
mike-dydx committed Sep 18, 2024
1 parent 453dcd9 commit a3fce7c
Show file tree
Hide file tree
Showing 9 changed files with 64 additions and 36 deletions.
8 changes: 4 additions & 4 deletions dydx/dydxPresenters/dydxPresenters.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@
278EA5642BB610AC007A0E17 /* dydxNotificationsSettingsViewBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 278EA5632BB610AC007A0E17 /* dydxNotificationsSettingsViewBuilder.swift */; };
278EA5662BB61C24007A0E17 /* KeyValueStoreProtocolStore+Ext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 278EA5652BB61C24007A0E17 /* KeyValueStoreProtocolStore+Ext.swift */; };
27B957ED2B97C07400EF9304 /* dydxShareActionBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27B957EC2B97C07400EF9304 /* dydxShareActionBuilder.swift */; };
27C027532AFD761300E92CCB /* dydxSettingsHelpRowViewPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27C027522AFD761300E92CCB /* dydxSettingsHelpRowViewPresenter.swift */; };
27C027532AFD761300E92CCB /* dydxSettingsSecondaryActionsViewPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27C027522AFD761300E92CCB /* dydxSettingsSecondaryActionsViewPresenter.swift */; };
27DB2EA32AC1E7B20047BC39 /* dydxTradeRestrictedViewPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27DB2EA22AC1E7B20047BC39 /* dydxTradeRestrictedViewPresenter.swift */; };
27E0735C2C20D2470034B963 /* dydxCancelPendingIsolatedOrdersViewBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27E0735B2C20D2470034B963 /* dydxCancelPendingIsolatedOrdersViewBuilder.swift */; };
314BBDE9F332ECA910BC414E /* Pods_iOS_dydxPresenters.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F1551C00FFF41C29CFC5BD94 /* Pods_iOS_dydxPresenters.framework */; };
Expand Down Expand Up @@ -555,7 +555,7 @@
278EA5632BB610AC007A0E17 /* dydxNotificationsSettingsViewBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dydxNotificationsSettingsViewBuilder.swift; sourceTree = "<group>"; };
278EA5652BB61C24007A0E17 /* KeyValueStoreProtocolStore+Ext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "KeyValueStoreProtocolStore+Ext.swift"; sourceTree = "<group>"; };
27B957EC2B97C07400EF9304 /* dydxShareActionBuilder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = dydxShareActionBuilder.swift; sourceTree = "<group>"; };
27C027522AFD761300E92CCB /* dydxSettingsHelpRowViewPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dydxSettingsHelpRowViewPresenter.swift; sourceTree = "<group>"; };
27C027522AFD761300E92CCB /* dydxSettingsSecondaryActionsViewPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dydxSettingsSecondaryActionsViewPresenter.swift; sourceTree = "<group>"; };
27DB2EA22AC1E7B20047BC39 /* dydxTradeRestrictedViewPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dydxTradeRestrictedViewPresenter.swift; sourceTree = "<group>"; };
27E0735B2C20D2470034B963 /* dydxCancelPendingIsolatedOrdersViewBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dydxCancelPendingIsolatedOrdersViewBuilder.swift; sourceTree = "<group>"; };
64487FFE2AA248340068DD87 /* dydxAlertsWorker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = dydxAlertsWorker.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -985,7 +985,7 @@
028DB33F2A05893D0090BE58 /* dydxProfileHeaderViewPresenter.swift */,
02F95A8D2A1D6AAD00828F9A /* dydxProfileHistoryViewPresenter.swift */,
02F6E71E2A8293270018F00C /* dydxProfileFeesViewPresenter.swift */,
27C027522AFD761300E92CCB /* dydxSettingsHelpRowViewPresenter.swift */,
27C027522AFD761300E92CCB /* dydxSettingsSecondaryActionsViewPresenter.swift */,
);
path = Components;
sourceTree = "<group>";
Expand Down Expand Up @@ -2011,7 +2011,7 @@
272911D62C06A628003F3EA0 /* TransferAnalytics.swift in Sources */,
0257C78E2A00485500F6160B /* SparklineDataPoint.swift in Sources */,
028DB3402A05893D0090BE58 /* dydxProfileHeaderViewPresenter.swift in Sources */,
27C027532AFD761300E92CCB /* dydxSettingsHelpRowViewPresenter.swift in Sources */,
27C027532AFD761300E92CCB /* dydxSettingsSecondaryActionsViewPresenter.swift in Sources */,
02EF485629F732C600C97746 /* dydxFavoriteStore.swift in Sources */,
0208627C28F4DAC000C9D3A0 /* dydxMarketInfoPagingViewPresenter.swift in Sources */,
0238FECB2970D681002E1C1A /* SharedAccountPresenter.swift in Sources */,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@
"destination":"AffiliateEntity.storyboard"
},
"/alerts":{
"destination":"dydxPresenters.dydxNewsAlertsViewBuilder",
"destination":"dydxPresenters.dydxAlertsViewBuilder",
"presentation":"prompt"
},
"/closePosition/status":{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[

{
"path":"/vault",
"path":"/portfolio",
"title":"",
"image":"icon_alerts",
"split":true
Expand All @@ -17,9 +17,9 @@
"path":"/trade"
},
{
"path":"/portfolio",
"path":"/vault",
"title":"",
"image":"icon_wallet",
"image":"icon_earn",
"split":true
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ import PlatformUI
import dydxStateManager

protocol dydxSettingsHelpRowViewPresenterProtocol: HostedViewPresenterProtocol {
var viewModel: dydxSettingsHelpRowViewModel? { get }
var viewModel: dydxSettingsSecondaryActionsViewModel? { get }
}

class dydxSettingsHelpRowViewPresenter: HostedViewPresenter<dydxSettingsHelpRowViewModel>, dydxSettingsHelpRowViewPresenterProtocol {
init(viewModel: dydxSettingsHelpRowViewModel) {
class dydxSettingsHelpRowViewPresenter: HostedViewPresenter<dydxSettingsSecondaryActionsViewModel>, dydxSettingsHelpRowViewPresenterProtocol {
init(viewModel: dydxSettingsSecondaryActionsViewModel) {
super.init()

self.viewModel = viewModel
Expand All @@ -30,5 +30,9 @@ class dydxSettingsHelpRowViewPresenter: HostedViewPresenter<dydxSettingsHelpRowV
viewModel.helpAction = {
Router.shared?.navigate(to: RoutingRequest(path: "/help"), animated: true, completion: nil)
}

viewModel.alertsAction = {
Router.shared?.navigate(to: RoutingRequest(path: "/alerts"), animated: true, completion: nil)
}
}
}
8 changes: 4 additions & 4 deletions dydx/dydxViews/dydxViews.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@
27AAA9862ACE34C800AF3C56 /* SwiftMessages+Banner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27AAA9852ACE34C800AF3C56 /* SwiftMessages+Banner.swift */; };
27AFE4EA2C1902BF00168B0B /* dydxReceiptChangeItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27AFE4DD2C1902BF00168B0B /* dydxReceiptChangeItemView.swift */; };
27BAAF112BD851B500F650C3 /* dydxTakeProfitStopLossStatusViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27BAAF102BD851B500F650C3 /* dydxTakeProfitStopLossStatusViewModel.swift */; };
27C027452AFD734800E92CCB /* dydxSettingsHelpRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27C027442AFD734800E92CCB /* dydxSettingsHelpRowView.swift */; };
27C027452AFD734800E92CCB /* dydxSettingsSecondaryActionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27C027442AFD734800E92CCB /* dydxSettingsSecondaryActionsView.swift */; };
27C6AE182C618055005517B5 /* RadioButtons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27C6AE172C618055005517B5 /* RadioButtons.swift */; };
27C6E4C92BC8C30E00ED892A /* dydxCustomLimitPriceViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27C6E4BC2BC8C30E00ED892A /* dydxCustomLimitPriceViewModel.swift */; };
27CDA3D42BBF1AD700FEAFFE /* dydxMultipleOrdersExistViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27CDA3D32BBF1AD700FEAFFE /* dydxMultipleOrdersExistViewModel.swift */; };
Expand Down Expand Up @@ -590,7 +590,7 @@
27AAA9852ACE34C800AF3C56 /* SwiftMessages+Banner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SwiftMessages+Banner.swift"; sourceTree = "<group>"; };
27AFE4DD2C1902BF00168B0B /* dydxReceiptChangeItemView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = dydxReceiptChangeItemView.swift; sourceTree = "<group>"; };
27BAAF102BD851B500F650C3 /* dydxTakeProfitStopLossStatusViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dydxTakeProfitStopLossStatusViewModel.swift; sourceTree = "<group>"; };
27C027442AFD734800E92CCB /* dydxSettingsHelpRowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dydxSettingsHelpRowView.swift; sourceTree = "<group>"; };
27C027442AFD734800E92CCB /* dydxSettingsSecondaryActionsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dydxSettingsSecondaryActionsView.swift; sourceTree = "<group>"; };
27C6AE172C618055005517B5 /* RadioButtons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RadioButtons.swift; sourceTree = "<group>"; };
27C6E4BC2BC8C30E00ED892A /* dydxCustomLimitPriceViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = dydxCustomLimitPriceViewModel.swift; sourceTree = "<group>"; };
27CDA3D32BBF1AD700FEAFFE /* dydxMultipleOrdersExistViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dydxMultipleOrdersExistViewModel.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -1149,7 +1149,7 @@
028DB33D2A0589270090BE58 /* dydxProfileHeaderView.swift */,
02F95A8B2A1D6A9200828F9A /* dydxProfileHistoryView.swift */,
02F6E7102A8292FC0018F00C /* dydxProfileFeesView.swift */,
27C027442AFD734800E92CCB /* dydxSettingsHelpRowView.swift */,
27C027442AFD734800E92CCB /* dydxSettingsSecondaryActionsView.swift */,
277E8F9E2B1A847D005CCBCB /* dydxTitledCardView.swift */,
);
path = Components;
Expand Down Expand Up @@ -2081,7 +2081,7 @@
0273A1382ACCC49C001B89F5 /* dydxHistoryView.swift in Sources */,
0246DE5E28B984C700A7FF1F /* Wallets2View.swift in Sources */,
023AB3C62BEAD5E9005230B2 /* dydxTargetLeverageView.swift in Sources */,
27C027452AFD734800E92CCB /* dydxSettingsHelpRowView.swift in Sources */,
27C027452AFD734800E92CCB /* dydxSettingsSecondaryActionsView.swift in Sources */,
0253155129BFA62700D6CC9B /* dydxOnboardScanInstructionsView.swift in Sources */,
27CDA3D42BBF1AD700FEAFFE /* dydxMultipleOrdersExistViewModel.swift in Sources */,
024B7B5C28B7F90100F7C386 /* dydxViewBundleClass.swift in Sources */,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "icon_earn.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -9,44 +9,56 @@ import SwiftUI
import PlatformUI
import Utilities

public class dydxSettingsHelpRowViewModel: PlatformViewModel {
public class dydxSettingsSecondaryActionsViewModel: PlatformViewModel {
@Published public var settingsAction: (() -> Void)?
@Published public var helpAction: (() -> Void)?
@Published public var alertsAction: (() -> Void)?

public init() { }

public static var previewValue: dydxSettingsHelpRowViewModel {
let vm = dydxSettingsHelpRowViewModel()
public static var previewValue: dydxSettingsSecondaryActionsViewModel {
let vm = dydxSettingsSecondaryActionsViewModel()
return vm
}


private var settingsHelpRow: some View {
HStack(spacing: 16) {
self.createButton(imageName: "icon_settings",
title: DataLocalizer.localize(path: "APP.EMAIL_NOTIFICATIONS.SETTINGS"),
action: self.settingsAction)

self.createButton(imageName: "icon_tutorial",
title: DataLocalizer.localize(path: "APP.HEADER.HELP"),
action: self.helpAction)
}
}

private var alertsRow: some View {
self.createButton(imageName: "icon_alerts",
title: DataLocalizer.localize(path: "APP.GENERAL.ALERTS"),
action: self.alertsAction)
}

public override func createView(parentStyle: ThemeStyle = ThemeStyle.defaultStyle, styleKey: String? = nil) -> PlatformUI.PlatformView {
PlatformView(viewModel: self, parentStyle: parentStyle, styleKey: styleKey) { [weak self] style in
guard let self = self else { return AnyView(PlatformView.nilView) }

return AnyView(
HStack(spacing: 16) {
self.createButton(parentStyle: style,
imageName: "icon_settings",
title: DataLocalizer.localize(path: "APP.EMAIL_NOTIFICATIONS.SETTINGS"),
action: self.settingsAction)

self.createButton(parentStyle: style,
imageName: "icon_tutorial",
title: DataLocalizer.localize(path: "APP.HEADER.HELP"),
action: self.helpAction)
VStack(spacing: 16) {
self.settingsHelpRow
self.alertsRow
}
)
}
}

private func createButton(parentStyle: ThemeStyle, imageName: String, title: String, action: (() -> Void)?) -> some View {
private func createButton(imageName: String, title: String, action: (() -> Void)?) -> some View {
HStack(spacing: 8) {
PlatformIconViewModel(type: .asset(name: imageName, bundle: Bundle.dydxView),
clip: .noClip,
size: CGSize(width: 24, height: 24),
templateColor: .textTertiary)
.createView(parentStyle: parentStyle)
.createView()

Text(title)
.themeFont(fontSize: .medium)
Expand All @@ -66,26 +78,26 @@ public class dydxSettingsHelpRowViewModel: PlatformViewModel {
}

#if DEBUG
struct dydxSettingsHelpRowView_Previews_Dark: PreviewProvider {
struct dydxSettingsSecondaryActionsViewModel_Previews_Dark: PreviewProvider {
@StateObject static var themeSettings = ThemeSettings.shared

static var previews: some View {
ThemeSettings.applyDarkTheme()
ThemeSettings.applyStyles()
return dydxSettingsHelpRowViewModel.previewValue
return dydxSettingsSecondaryActionsViewModel.previewValue
.createView()
// .edgesIgnoringSafeArea(.bottom)
.previewLayout(.sizeThatFits)
}
}

struct dydxSettingsHelpRowView_Previews_Light: PreviewProvider {
struct dydxSettingsSecondaryActionsViewModel_Previews_Light: PreviewProvider {
@StateObject static var themeSettings = ThemeSettings.shared

static var previews: some View {
ThemeSettings.applyLightTheme()
ThemeSettings.applyStyles()
return dydxSettingsHelpRowViewModel.previewValue
return dydxSettingsSecondaryActionsViewModel.previewValue
.createView()
// .edgesIgnoringSafeArea(.bottom)
.previewLayout(.sizeThatFits)
Expand Down
2 changes: 1 addition & 1 deletion dydx/dydxViews/dydxViews/_v4/Profile/dydxProfileView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import dydxFormatter
public class dydxProfileViewModel: PlatformViewModel {
@Published public var header = dydxProfileHeaderViewModel()
@Published public var buttons = dydxProfileButtonsViewModel()
@Published public var settingsHelp = dydxSettingsHelpRowViewModel()
@Published public var settingsHelp = dydxSettingsSecondaryActionsViewModel()
@Published public var history: dydxProfileHistoryViewModel? = dydxProfileHistoryViewModel()
@Published public var fees: dydxProfileFeesViewModel? = dydxProfileFeesViewModel()
@Published public var balances: dydxProfileBalancesViewModel? = dydxProfileBalancesViewModel()
Expand Down

0 comments on commit a3fce7c

Please sign in to comment.