Skip to content

Commit b8ef403

Browse files
authored
Merge pull request #4 from jsonify:feature/fix-permission-macmini
Improve error handling in API requests
2 parents 1c78694 + 565a026 commit b8ef403

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)