diff --git a/frontend/src/components/ParticipationChip.vue b/frontend/src/components/ParticipationChip.vue
new file mode 100644
index 00000000..e9a7684e
--- /dev/null
+++ b/frontend/src/components/ParticipationChip.vue
@@ -0,0 +1,190 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/components/companies/MembersCompanies.vue b/frontend/src/components/companies/MembersCompanies.vue
index c1b76d20..3bc83bdf 100644
--- a/frontend/src/components/companies/MembersCompanies.vue
+++ b/frontend/src/components/companies/MembersCompanies.vue
@@ -4,6 +4,8 @@
+
+
@@ -38,7 +40,6 @@
diff --git a/frontend/src/components/speakers/MembersSpeakers.vue b/frontend/src/components/speakers/MembersSpeakers.vue
index e46414dc..8e14151a 100644
--- a/frontend/src/components/speakers/MembersSpeakers.vue
+++ b/frontend/src/components/speakers/MembersSpeakers.vue
@@ -4,6 +4,8 @@
+
+
@@ -38,7 +40,6 @@
diff --git a/frontend/src/composables/useParticipationFilter.ts b/frontend/src/composables/useParticipationFilter.ts
new file mode 100644
index 00000000..166377a6
--- /dev/null
+++ b/frontend/src/composables/useParticipationFilter.ts
@@ -0,0 +1,27 @@
+import { computed } from "vue";
+import type { Ref } from "vue";
+import type { ParticipationStatus } from "@/dto";
+
+// Generic composable to filter a Map
by participation.status
+export function useParticipationFilter<
+ T extends { participation?: { status?: ParticipationStatus } },
+>(
+ participations: Ref