Skip to content

Commit 9d8984f

Browse files
Merge pull request #194 from TelemetryDeck/RemovalOfNotifications
Allow Notification Removal
2 parents 8e185d5 + 52c5862 commit 9d8984f

File tree

3 files changed

+28
-3
lines changed

3 files changed

+28
-3
lines changed

Shared/Status Banners/StatusMessageBanner.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,11 @@ struct StatusMessageBanner: View {
5050
#endif
5151
}
5252

53-
Spacer()
53+
Image(systemName: "xmark")
54+
.font(.system(size: 18))
55+
.padding(.horizontal, 4)
56+
.padding(.vertical, 10)
57+
.foregroundColor(Color.secondary)
5458
}
5559
}
5660
}

Shared/Status Banners/StatusMessageDisplay.swift

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,26 @@ struct StatusMessageDisplay: View {
1212
@EnvironmentObject var api: APIClient
1313
@EnvironmentObject var errorService: ErrorService
1414

15+
@AppStorage("dismissedNotificationsIDs4") var _dismissedNotificationsIDs: String = ""
16+
17+
var dismissedNotificationsIDs: [String] {
18+
let x = _dismissedNotificationsIDs.split(separator: ",")
19+
return x.map { String($0) }
20+
}
21+
1522
@State var statusMessages: [DTOv2.StatusMessage] = []
1623

1724
let timer = Timer.publish(every: 60, on: .main, in: .common).autoconnect()
1825

1926
var body: some View {
2027
VStack(spacing: 0) {
2128
ForEach(statusMessages) { message in
22-
StatusMessageBanner(statusMessage: message)
29+
if !dismissedNotificationsIDs.contains(message.id) {
30+
StatusMessageBanner(statusMessage: message)
31+
.onTapGesture {
32+
dismissNotification(id: message.id)
33+
}
34+
}
2335
}
2436
}
2537
.onAppear(perform: loadMessages)
@@ -28,6 +40,15 @@ struct StatusMessageDisplay: View {
2840
}
2941
}
3042

43+
func dismissNotification(id: String) {
44+
if dismissedNotificationsIDs.count > 20 {
45+
let dismissedNotificationsIDsCopy = dismissedNotificationsIDs.suffix(20)
46+
_dismissedNotificationsIDs = dismissedNotificationsIDsCopy.joined(separator: ",")
47+
_dismissedNotificationsIDs.append(",")
48+
}
49+
_dismissedNotificationsIDs.append(id + ",")
50+
}
51+
3152
func loadMessages() {
3253
statusMessages = []
3354
loadOrganizationStatusMessages()

iOS/InsightGroupsView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ struct InsightGroupsView: View {
4040
var body: some View {
4141
NavigationView {
4242
VStack(alignment: .leading, spacing: 0) {
43-
//StatusMessageDisplay()
43+
StatusMessageDisplay()
4444

4545
TestModeIndicator()
4646

0 commit comments

Comments
 (0)