|
1 | 1 | import SwiftUI
|
2 | 2 |
|
3 | 3 | @MainActor
|
4 |
| -protocol Event: Sendable {} |
5 |
| - |
6 |
| -@MainActor |
7 |
| -protocol UnfortunateEvent: Event {} |
| 4 | +enum Event: Sendable { |
| 5 | + case error(description: LocalizedStringResource = CriticalError.defaultDescription) |
| 6 | + case failure(title: LocalizedStringResource, text: LocalizedStringResource) |
| 7 | + case authorizationIssue |
| 8 | + case navigationShortcut(destination: Destination) |
| 9 | + case randomCode(_ code: String) |
| 10 | +} |
8 | 11 |
|
9 |
| -struct ErrorEvent: UnfortunateEvent, LocalizedError { |
10 |
| - static let defaultDescription: String.LocalizationValue = "Error.Unknown" |
| 12 | +struct CriticalError: LocalizedError { |
| 13 | + static let defaultDescription: LocalizedStringResource = "Error.Unknown" |
11 | 14 |
|
12 |
| - var description = defaultDescription |
| 15 | + var description: LocalizedStringResource |
13 | 16 |
|
14 | 17 | var errorDescription: String {
|
15 | 18 | .init(localized: description)
|
16 | 19 | }
|
17 | 20 | }
|
18 | 21 |
|
19 |
| -extension Event { |
20 |
| - typealias error = ErrorEvent |
21 |
| -} |
22 |
| - |
23 |
| -struct FailureEvent: UnfortunateEvent { |
24 |
| - let title: LocalizedStringKey |
25 |
| - let text: LocalizedStringKey |
26 |
| -} |
27 |
| - |
28 |
| -extension Event { |
29 |
| - typealias failure = FailureEvent |
30 |
| -} |
31 |
| - |
32 |
| -struct AuthorizationIssueEvent: UnfortunateEvent {} |
33 |
| - |
34 |
| -extension Event { |
35 |
| - typealias authorizationIssue = AuthorizationIssueEvent |
36 |
| -} |
37 |
| - |
38 |
| -struct NavigationShortcutEvent: Event { |
39 |
| - let destination: Destination |
40 |
| - |
41 |
| - init(to destination: Destination) { |
42 |
| - self.destination = destination |
43 |
| - } |
44 |
| -} |
45 |
| - |
46 |
| -extension Event { |
47 |
| - typealias navigationShortcut = NavigationShortcutEvent |
48 |
| -} |
49 |
| - |
50 |
| -struct RandomCodeEvent: Event { |
51 |
| - let randomCode: String |
52 |
| - |
53 |
| - init(_ randomCode: String) { |
54 |
| - self.randomCode = randomCode |
55 |
| - } |
56 |
| -} |
57 |
| - |
58 |
| -extension Event { |
59 |
| - typealias randomCode = RandomCodeEvent |
| 22 | +struct Failure: Sendable { |
| 23 | + let title: LocalizedStringResource |
| 24 | + let text: LocalizedStringResource |
60 | 25 | }
|
0 commit comments