From 9777dd655c11e6a7a042c8dab6b9a7d6c0e89ce9 Mon Sep 17 00:00:00 2001
From: Linus Rath <139418639+rathlinus@users.noreply.github.com>
Date: Sat, 2 May 2026 23:29:21 +0200
Subject: [PATCH] feat: add share indicators for calendars and contacts, update
JMAP capabilities #244
---
components/calendar/calendar-sidebar-panel.tsx | 6 ++++++
components/contacts/contacts-sidebar.tsx | 8 +++++++-
.../settings/address-book-management-settings.tsx | 13 +++++++++++++
.../settings/calendar-management-settings.tsx | 14 ++++++++++++++
lib/jmap/client.ts | 12 ++++++++++--
5 files changed, 50 insertions(+), 3 deletions(-)
diff --git a/components/calendar/calendar-sidebar-panel.tsx b/components/calendar/calendar-sidebar-panel.tsx
index 7c22a2f5..4d0c7987 100644
--- a/components/calendar/calendar-sidebar-panel.tsx
+++ b/components/calendar/calendar-sidebar-panel.tsx
@@ -144,6 +144,12 @@ export function CalendarSidebarPanel({
{cal.id === BIRTHDAY_CALENDAR_ID && (
)}
+ {!cal.isShared && Object.keys(cal.shareWith || {}).length > 0 && (
+
+ )}
);
diff --git a/components/contacts/contacts-sidebar.tsx b/components/contacts/contacts-sidebar.tsx
index 328ef384..07afccf1 100644
--- a/components/contacts/contacts-sidebar.tsx
+++ b/components/contacts/contacts-sidebar.tsx
@@ -685,7 +685,13 @@ function AddressBookItem({
>
{book.name}
-
+ {!book.isShared && Object.keys(book.shareWith || {}).length > 0 && (
+
+ )}
+ 0) && "ml-auto"
+ )}>
{contactCount}
diff --git a/components/settings/address-book-management-settings.tsx b/components/settings/address-book-management-settings.tsx
index 668307a8..ef0c37b0 100644
--- a/components/settings/address-book-management-settings.tsx
+++ b/components/settings/address-book-management-settings.tsx
@@ -139,6 +139,19 @@ export function AddressBookManagementSettings() {
{t("default")}
)}
+ {(() => {
+ const shareCount = Object.keys(book.shareWith || {}).length;
+ if (shareCount === 0 || book.isShared) return null;
+ return (
+
+
+ {shareCount}
+
+ );
+ })()}
{canRename && (