diff --git a/app/components/EmptyState.tsx b/app/components/EmptyState.tsx
new file mode 100644
index 0000000..055e7ca
--- /dev/null
+++ b/app/components/EmptyState.tsx
@@ -0,0 +1,31 @@
+'use client';
+
+/**
+ * EmptyState - Zeigt eine Nachricht an, wenn keine Services konfiguriert sind
+ */
+export function EmptyState() {
+ return (
+
+
+
+ Keine Dienste konfiguriert
+
+
+ Füge Dienste in der Konfigurationsdatei src/data/services.ts hinzu, um sie hier anzuzeigen
+
+
+ );
+}
diff --git a/app/components/FilterBar.tsx b/app/components/FilterBar.tsx
new file mode 100644
index 0000000..ce37837
--- /dev/null
+++ b/app/components/FilterBar.tsx
@@ -0,0 +1,114 @@
+'use client';
+
+import { ServiceCategory, ServiceStatus } from '@/lib/data';
+
+interface FilterBarProps {
+ categories: ServiceCategory[];
+ statuses: ServiceStatus[];
+ selectedCategories: ServiceCategory[];
+ selectedStatuses: ServiceStatus[];
+ onCategoryChange: (category: ServiceCategory) => void;
+ onStatusChange: (status: ServiceStatus) => void;
+ onReset: () => void;
+}
+
+/**
+ * FilterBar - Filterleiste zum Filtern von Services nach Kategorie und Status
+ * @param categories - Verfügbare Kategorien
+ * @param statuses - Verfügbare Status
+ * @param selectedCategories - Aktuell ausgewählte Kategorien
+ * @param selectedStatuses - Aktuell ausgewählte Status
+ * @param onCategoryChange - Callback beim Ändern einer Kategorie
+ * @param onStatusChange - Callback beim Ändern eines Status
+ * @param onReset - Callback zum Zurücksetzen aller Filter
+ */
+export function FilterBar({
+ categories,
+ statuses,
+ selectedCategories,
+ selectedStatuses,
+ onCategoryChange,
+ onStatusChange,
+ onReset,
+}: FilterBarProps) {
+ const hasActiveFilters =
+ selectedCategories.length > 0 || selectedStatuses.length > 0;
+
+ return (
+