Skip to content

Commit 5163038

Browse files
committed
Move pointOfSaleLoaded (pos_loaded) event tracking from PointOfSaleLoadingView (which can be shown anytime within POS) to PointOfSaleDashboardView.
1 parent 8ae9c75 commit 5163038

File tree

2 files changed

+23
-20
lines changed

2 files changed

+23
-20
lines changed
Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import SwiftUI
22

33
struct PointOfSaleLoadingView: View {
4-
@State private var waitingTimeTracker: WaitingTimeTracker?
5-
64
var body: some View {
75
HStack(alignment: .center) {
86
Spacer()
@@ -15,28 +13,10 @@ struct PointOfSaleLoadingView: View {
1513
.multilineTextAlignment(.center)
1614
Spacer()
1715
}
18-
.onAppear {
19-
trackTimeOnAppear()
20-
}
21-
.onDisappear {
22-
trackElapsedTimeOnDisappear()
23-
}
2416
.background(Color.posSurface)
2517
}
2618
}
2719

28-
private extension PointOfSaleLoadingView {
29-
func trackTimeOnAppear() {
30-
waitingTimeTracker = WaitingTimeTracker(trackScenario: .pointOfSaleLoaded)
31-
}
32-
33-
func trackElapsedTimeOnDisappear() {
34-
if let waitingTimeTracker = waitingTimeTracker {
35-
waitingTimeTracker.end(using: .milliseconds)
36-
}
37-
}
38-
}
39-
4020
#Preview {
4121
PointOfSaleLoadingView()
4222
}

WooCommerce/Classes/POS/Presentation/PointOfSaleDashboardView.swift

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ struct PointOfSaleDashboardView: View {
88
@State private var showExitPOSModal: Bool = false
99
@State private var showSupport: Bool = false
1010
@State private var showDocumentation: Bool = false
11+
@State private var waitingTimeTracker: WaitingTimeTracker?
1112

1213
@State private var floatingSize: CGSize = .zero
1314

@@ -138,6 +139,14 @@ struct PointOfSaleDashboardView: View {
138139
}
139140
}
140141
.ignoresSafeArea(.keyboard)
142+
.onAppear {
143+
trackTimeForInitialLoadingState()
144+
}
145+
.onChange(of: viewState) { oldValue, newValue in
146+
if newValue == .content && oldValue != newValue {
147+
trackElapsedTimeForInitialLoadingState()
148+
}
149+
}
141150
}
142151

143152
private var contentView: some View {
@@ -210,6 +219,20 @@ private extension PointOfSaleDashboardView {
210219
}
211220
}
212221

222+
@available(iOS 17.0, *)
223+
private extension PointOfSaleDashboardView {
224+
func trackTimeForInitialLoadingState() {
225+
waitingTimeTracker = WaitingTimeTracker(trackScenario: .pointOfSaleLoaded)
226+
}
227+
228+
func trackElapsedTimeForInitialLoadingState() {
229+
if let waitingTimeTracker {
230+
waitingTimeTracker.end(using: .milliseconds)
231+
self.waitingTimeTracker = nil
232+
}
233+
}
234+
}
235+
213236
struct FloatingControlAreaSizeKey: EnvironmentKey {
214237
static let defaultValue = CGSize.zero
215238
}

0 commit comments

Comments
 (0)