Skip to content

Commit 565a026

Browse files
committed
Improve error handling in API requests
Enhance the robustness of API interactions by implementing better error handling mechanisms, ensuring clearer feedback for users and reducing potential crashes.
1 parent 1c78694 commit 565a026

20 files changed

+165
-123
lines changed

ClickIt/ClickIt.entitlements

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@
77
<key>com.apple.security.app-sandbox</key>
88
<false/>
99

10+
<!-- Essential entitlement for Accessibility API access -->
11+
<key>com.apple.security.automation.apple-events</key>
12+
<true/>
13+
1014
<!-- Allow ClickIt to read user-selected files if needed -->
1115
<key>com.apple.security.files.user-selected.read-only</key>
1216
<true/>

Sources/ClickIt/UI/Components/ActiveTimerView.swift

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -100,15 +100,17 @@ struct ActiveTimerView: View {
100100
}
101101
}
102102

103-
#Preview {
104-
ActiveTimerView(viewModel: {
105-
let vm = ClickItViewModel()
106-
vm.isCountingDown = true
107-
vm.remainingTime = 123 // 2:03
108-
vm.timerDurationMinutes = 2
109-
vm.timerDurationSeconds = 30
110-
return vm
111-
}())
112-
.frame(width: 350)
113-
.padding()
103+
struct ActiveTimerView_Previews: PreviewProvider {
104+
static var previews: some View {
105+
ActiveTimerView(viewModel: {
106+
let vm = ClickItViewModel()
107+
vm.isCountingDown = true
108+
vm.remainingTime = 123 // 2:03
109+
vm.timerDurationMinutes = 2
110+
vm.timerDurationSeconds = 30
111+
return vm
112+
}())
113+
.frame(width: 350)
114+
.padding()
115+
}
114116
}

Sources/ClickIt/UI/Components/AdvancedSettingsButton.swift

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,10 @@ struct AdvancedSettingsButton: View {
4646
}
4747
}
4848

49-
#Preview {
50-
AdvancedSettingsButton(viewModel: ClickItViewModel())
51-
.frame(width: 400)
52-
.padding()
49+
struct AdvancedSettingsButton_Previews: PreviewProvider {
50+
static var previews: some View {
51+
AdvancedSettingsButton(viewModel: ClickItViewModel())
52+
.frame(width: 400)
53+
.padding()
54+
}
5355
}

Sources/ClickIt/UI/Components/ClickPointSelector.swift

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -224,9 +224,11 @@ struct ClickCoordinateCapture {
224224
}
225225
}
226226

227-
#Preview {
228-
ClickPointSelector { point in
229-
print("Selected point: \(point)")
227+
struct ClickPointSelector_Previews: PreviewProvider {
228+
static var previews: some View {
229+
ClickPointSelector { point in
230+
print("Selected point: \(point)")
231+
}
232+
.frame(width: 400, height: 500)
230233
}
231-
.frame(width: 400, height: 500)
232234
}

Sources/ClickIt/UI/Components/ConfigurationPanel.swift

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -394,8 +394,10 @@ struct ConfigurationPanel: View {
394394
}
395395
}
396396

397-
#Preview {
398-
ConfigurationPanel(selectedClickPoint: CGPoint(x: 100, y: 100))
399-
.environmentObject(ClickCoordinator.shared)
400-
.frame(width: 400, height: 600)
397+
struct ConfigurationPanel_Previews: PreviewProvider {
398+
static var previews: some View {
399+
ConfigurationPanel(selectedClickPoint: CGPoint(x: 100, y: 100))
400+
.environmentObject(ClickCoordinator.shared)
401+
.frame(width: 400, height: 600)
402+
}
401403
}

Sources/ClickIt/UI/Components/ConfigurationPanelCard.swift

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -184,13 +184,15 @@ struct TimeInputField: View {
184184
}
185185
}
186186

187-
#Preview {
188-
ConfigurationPanelCard(viewModel: {
189-
let vm = ClickItViewModel()
190-
vm.intervalSeconds = 1
191-
vm.intervalMilliseconds = 500
192-
return vm
193-
}())
194-
.frame(width: 400)
195-
.padding()
187+
struct ConfigurationPanelCard_Previews: PreviewProvider {
188+
static var previews: some View {
189+
ConfigurationPanelCard(viewModel: {
190+
let vm = ClickItViewModel()
191+
vm.intervalSeconds = 1
192+
vm.intervalMilliseconds = 500
193+
return vm
194+
}())
195+
.frame(width: 400)
196+
.padding()
197+
}
196198
}

Sources/ClickIt/UI/Components/DeveloperUpdateButton.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ struct DeveloperUpdateButton: View {
5454
}
5555
}
5656

57-
#Preview {
58-
DeveloperUpdateButton(updaterManager: UpdaterManager())
57+
struct DeveloperUpdateButton_Previews: PreviewProvider {
58+
static var previews: some View {
59+
DeveloperUpdateButton(updaterManager: UpdaterManager())
60+
}
5961
}

Sources/ClickIt/UI/Components/FooterInfoCard.swift

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,10 @@ struct FooterInfoCard: View {
2929
}
3030
}
3131

32-
#Preview {
33-
FooterInfoCard()
34-
.frame(width: 400)
35-
.padding()
32+
struct FooterInfoCard_Previews: PreviewProvider {
33+
static var previews: some View {
34+
FooterInfoCard()
35+
.frame(width: 400)
36+
.padding()
37+
}
3638
}

Sources/ClickIt/UI/Components/PermissionStatusIndicator.swift

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -196,12 +196,14 @@ struct PermissionHealthBadge: View {
196196
}
197197
}
198198

199-
#Preview("Permission Status Indicator") {
200-
VStack(spacing: 16) {
201-
PermissionStatusIndicator()
202-
CompactPermissionStatus()
203-
PermissionHealthBadge()
199+
struct PermissionStatusIndicator_Previews: PreviewProvider {
200+
static var previews: some View {
201+
VStack(spacing: 16) {
202+
PermissionStatusIndicator()
203+
CompactPermissionStatus()
204+
PermissionHealthBadge()
205+
}
206+
.padding()
207+
.environmentObject(PermissionManager.shared)
204208
}
205-
.padding()
206-
.environmentObject(PermissionManager.shared)
207209
}

Sources/ClickIt/UI/Components/RealTimeElapsedView.swift

Lines changed: 39 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -45,45 +45,47 @@ struct ElapsedTimeStatisticView: View {
4545
}
4646
}
4747

48-
#Preview("Real Time Elapsed View") {
49-
VStack(spacing: 20) {
50-
Text("Real-Time Elapsed Time Display")
51-
.font(.headline)
52-
53-
RealTimeElapsedView(timeManager: {
54-
let manager = ElapsedTimeManager.shared
55-
manager.startTracking()
56-
return manager
57-
}())
58-
59-
Button("Start/Stop Tracking") {
60-
let manager = ElapsedTimeManager.shared
61-
if manager.isTracking {
62-
manager.stopTracking()
63-
} else {
48+
struct RealTimeElapsedView_Previews: PreviewProvider {
49+
static var previews: some View {
50+
VStack(spacing: 20) {
51+
Text("Real-Time Elapsed Time Display")
52+
.font(.headline)
53+
54+
RealTimeElapsedView(timeManager: {
55+
let manager = ElapsedTimeManager.shared
6456
manager.startTracking()
57+
return manager
58+
}())
59+
60+
Button("Start/Stop Tracking") {
61+
let manager = ElapsedTimeManager.shared
62+
if manager.isTracking {
63+
manager.stopTracking()
64+
} else {
65+
manager.startTracking()
66+
}
6567
}
68+
.buttonStyle(.borderedProminent)
6669
}
67-
.buttonStyle(.borderedProminent)
68-
}
69-
.padding()
70-
.frame(width: 300)
71-
}
72-
73-
#Preview("Elapsed Time Statistic") {
74-
ElapsedTimeStatisticView(
75-
timeManager: ElapsedTimeManager.shared,
76-
fallbackStatistics: SessionStatistics(
77-
duration: 125,
78-
totalClicks: 50,
79-
successfulClicks: 48,
80-
failedClicks: 2,
81-
successRate: 0.96,
82-
averageClickTime: 0.05,
83-
clicksPerSecond: 2.4,
84-
isActive: false
70+
.padding()
71+
.frame(width: 300)
72+
.previewDisplayName("Real Time Elapsed View")
73+
74+
ElapsedTimeStatisticView(
75+
timeManager: ElapsedTimeManager.shared,
76+
fallbackStatistics: SessionStatistics(
77+
duration: 125,
78+
totalClicks: 50,
79+
successfulClicks: 48,
80+
failedClicks: 2,
81+
successRate: 0.96,
82+
averageClickTime: 0.05,
83+
clicksPerSecond: 2.4,
84+
isActive: false
85+
)
8586
)
86-
)
87-
.frame(width: 120, height: 100)
88-
.padding()
87+
.frame(width: 120, height: 100)
88+
.padding()
89+
.previewDisplayName("Elapsed Time Statistic")
90+
}
8991
}

0 commit comments

Comments
 (0)