+ {/* Test Notification Section */}
+
+
+
+
Test Notifications
+
+
+
+
+
+
+
+
+
+
+ setTestMessage(e.target.value)}
+ className="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
+ placeholder="Test message..."
+ />
+
+
+
+
+
+
+
+
+ {/* Notification Services */}
+
+
+
+
+
Notification Services
+
+
Manage your notification services
+
+
+ {!services || services.length === 0 ? (
+
+
+
No notification services configured
+
+ Configure notification services in your backend to receive alerts.
+
+
+ ) : (
+
+ {services.map((service) => (
+
+
+
+
+ {service.name.toLowerCase().includes('discord') ? (
+
+ ) : service.name.toLowerCase().includes('telegram') ? (
+
+ ) : (
+
+ )}
+
+
+
+ {service.name}
+
+
+
+ {service.enabled ? (
+
+ ) : (
+
+ )}
+ {service.enabled ? 'Enabled' : 'Disabled'}
+
+
+ {service.configured ? 'Configured' : 'Not Configured'}
+
+
+
+
+
+
+
+
+
+
+ ))}
+
+ )}
+
+
+ {/* Notification Settings */}
+
+
+
+
Notification Settings
+
+
+ {settings && (
+
+
+
Filters
+
+
+
+
+
+ {settings.filters.case_insensitive.length > 0
+ ? settings.filters.case_insensitive.join(', ')
+ : 'None'
+ }
+
+
+
+
+
+ {settings.filters.case_sensitive && settings.filters.case_sensitive.length > 0
+ ? settings.filters.case_sensitive.join(', ')
+ : 'None'
+ }
+
+
+
+
+
+
+
+
Configure notification settings through your backend API to customize filters and service configurations.
+
+
+ )}
+
+
+ );
+}
diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts
index c19ad5f..2004f29 100644
--- a/frontend/src/lib/api.ts
+++ b/frontend/src/lib/api.ts
@@ -1,5 +1,5 @@
import axios from 'axios';
-import type { Account, Transaction, Balance, ApiResponse } from '../types/api';
+import type { Account, Transaction, Balance, ApiResponse, NotificationSettings, NotificationTest, NotificationService, NotificationServicesResponse } from '../types/api';
const API_BASE_URL = import.meta.env.VITE_API_URL || 'http://localhost:8000/api/v1';
@@ -62,6 +62,36 @@ export const apiClient = {
const response = await api.get