diff --git a/src/components/CircleDetails.vue b/src/components/CircleDetails.vue
index 83b6a703a..d23cbf676 100644
--- a/src/components/CircleDetails.vue
+++ b/src/components/CircleDetails.vue
@@ -191,9 +191,38 @@
+
+
+
+ {{ t('contacts', 'You have to accept or refuse the invitation to join this team') }}
+
+
+
+
+
+
+
+ {{ t('contacts', 'Accept invitation') }}
+
+
+
+
+
+
+ {{ t('contacts', 'Refuse invitation') }}
+
+
+
+
@@ -1062,6 +1091,17 @@ export default {
.circle-details__main-content {
margin-inline-start: 99px;
+ .pending-invitation {
+ text-align: center;
+
+ .buttons {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ gap: 24px;
+ }
+ }
+
@media (max-width: 768px) {
margin-inline-start: 0;
}
diff --git a/src/models/circle.d.ts b/src/models/circle.d.ts
index a5c78c85b..c1691f7c4 100644
--- a/src/models/circle.d.ts
+++ b/src/models/circle.d.ts
@@ -133,6 +133,10 @@ export default class Circle {
* Is the initiator a member of this circle?
*/
get isMember(): boolean | 0 | undefined
+ /**
+ * Is the initiator an invited member of this circle, waiting an approval?
+ */
+ get isInvitedMember(): boolean
/**
* Is the initiator a pending member of this circle?
*/
diff --git a/src/models/circle.ts b/src/models/circle.ts
index a3c24ba0e..dc9133a92 100644
--- a/src/models/circle.ts
+++ b/src/models/circle.ts
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-import { CircleConfigs, MemberLevels, ROUTE_CIRCLE } from './constants.ts'
+import { CircleConfigs, MemberLevels, MemberStatus, ROUTE_CIRCLE } from './constants.ts'
import Member from './member.ts'
type MemberList = Record
@@ -269,6 +269,13 @@ export default class Circle {
&& this.initiator?.level > MemberLevels.NONE
}
+ /**
+ * Is the initiator an invited member of this circle, waiting an approval?
+ */
+ get isInvitedMember() {
+ return this.initiator?.status === MemberStatus.INVITED
+ }
+
/**
* Is the initiator a pending member of this circle?
*/