feat(accounts): remove a specific account from the switcher

The switcher only offered 'sign out of active' and 'sign out of all' — no
way to drop a single non-active account (e.g. one stuck in an error state you
can't switch into to sign out). Add a hover × on non-active, non-default rows
and a removeAccount(id) auth action that tears down the client, drops it from
the registry, and clears its per-slot session/token cookies.

Stacks on the switcher redesign in #517.
This commit is contained in:
Shuki Vaknin
2026-07-21 20:59:52 +02:00
committed by Linus Rath
parent 0f3459c2e5
commit 6dfcb07b9a
22 changed files with 108 additions and 23 deletions
+3 -1
View File
@@ -138,7 +138,9 @@
"scheduled": "Naplánováno",
"unified_all_unread": "Vše nepřečtené",
"unified_all_starred": "Vše s hvězdičkou",
"unified_all_mail": "Veškerá pošta"
"unified_all_mail": "Veškerá pošta",
"remove_account": "Remove account",
"remove_account_confirm": "Remove {account} from this device? You can add it back later."
},
"protocol_handlers": {
"title": "Výchozí aplikace",
+3 -1
View File
@@ -138,7 +138,9 @@
"scheduled": "Planlagt",
"unified_all_unread": "Alle ulæste",
"unified_all_starred": "Alle med stjerne",
"unified_all_mail": "Al post"
"unified_all_mail": "Al post",
"remove_account": "Remove account",
"remove_account_confirm": "Remove {account} from this device? You can add it back later."
},
"protocol_handlers": {
"title": "Standardapps",
+3 -1
View File
@@ -138,7 +138,9 @@
"scheduled": "Geplant",
"unified_all_unread": "Alle ungelesenen",
"unified_all_starred": "Alle markierten",
"unified_all_mail": "Alle Mails"
"unified_all_mail": "Alle Mails",
"remove_account": "Remove account",
"remove_account_confirm": "Remove {account} from this device? You can add it back later."
},
"protocol_handlers": {
"title": "Standard-Apps",
+3 -1
View File
@@ -138,7 +138,9 @@
"scheduled": "Scheduled",
"unified_all_unread": "All unread",
"unified_all_starred": "All starred",
"unified_all_mail": "All mail"
"unified_all_mail": "All mail",
"remove_account": "Remove account",
"remove_account_confirm": "Remove {account} from this device? You can add it back later."
},
"protocol_handlers": {
"title": "Default apps",
+3 -1
View File
@@ -138,7 +138,9 @@
"scheduled": "Programados",
"unified_all_unread": "Todo no leído",
"unified_all_starred": "Todo destacado",
"unified_all_mail": "Todo el correo"
"unified_all_mail": "Todo el correo",
"remove_account": "Remove account",
"remove_account_confirm": "Remove {account} from this device? You can add it back later."
},
"protocol_handlers": {
"title": "Aplicaciones predeterminadas",
+3 -1
View File
@@ -138,7 +138,9 @@
"scheduled": "زمان‌بندی شده",
"unified_all_mail": "همه ایمیل‌ها",
"unified_all_starred": "همه ستاره‌دارها",
"unified_all_unread": "همه خوانده‌نشده‌ها"
"unified_all_unread": "همه خوانده‌نشده‌ها",
"remove_account": "Remove account",
"remove_account_confirm": "Remove {account} from this device? You can add it back later."
},
"protocol_handlers": {
"title": "برنامه‌های پیش‌فرض",
+3 -1
View File
@@ -138,7 +138,9 @@
"scheduled": "Planifiés",
"unified_all_unread": "Tous les non lus",
"unified_all_starred": "Tous les favoris",
"unified_all_mail": "Tout le courrier"
"unified_all_mail": "Tout le courrier",
"remove_account": "Remove account",
"remove_account_confirm": "Remove {account} from this device? You can add it back later."
},
"protocol_handlers": {
"title": "Applications par défaut",
+3 -1
View File
@@ -138,7 +138,9 @@
"scheduled": "Ütemezett",
"unified_all_unread": "Összes olvasatlan",
"unified_all_starred": "Összes csillagozott",
"unified_all_mail": "Összes levél"
"unified_all_mail": "Összes levél",
"remove_account": "Remove account",
"remove_account_confirm": "Remove {account} from this device? You can add it back later."
},
"protocol_handlers": {
"title": "Alapértelmezett alkalmazások",
+3 -1
View File
@@ -138,7 +138,9 @@
"scheduled": "Programmate",
"unified_all_unread": "Tutti i non letti",
"unified_all_starred": "Tutti gli speciali",
"unified_all_mail": "Tutta la posta"
"unified_all_mail": "Tutta la posta",
"remove_account": "Remove account",
"remove_account_confirm": "Remove {account} from this device? You can add it back later."
},
"protocol_handlers": {
"title": "App predefinite",
+3 -1
View File
@@ -138,7 +138,9 @@
"scheduled": "予約済み",
"unified_all_unread": "すべての未読",
"unified_all_starred": "すべてのスター付き",
"unified_all_mail": "すべてのメール"
"unified_all_mail": "すべてのメール",
"remove_account": "Remove account",
"remove_account_confirm": "Remove {account} from this device? You can add it back later."
},
"protocol_handlers": {
"title": "既定のアプリ",
+3 -1
View File
@@ -138,7 +138,9 @@
"scheduled": "예약됨",
"unified_all_unread": "모든 읽지 않음",
"unified_all_starred": "모든 별표",
"unified_all_mail": "모든 메일"
"unified_all_mail": "모든 메일",
"remove_account": "Remove account",
"remove_account_confirm": "Remove {account} from this device? You can add it back later."
},
"protocol_handlers": {
"title": "기본 앱",
+3 -1
View File
@@ -138,7 +138,9 @@
"scheduled": "Ieplānots",
"unified_all_unread": "Visi nelasītie",
"unified_all_starred": "Visi ar zvaigzni",
"unified_all_mail": "Visas vēstules"
"unified_all_mail": "Visas vēstules",
"remove_account": "Remove account",
"remove_account_confirm": "Remove {account} from this device? You can add it back later."
},
"protocol_handlers": {
"title": "Noklusējuma lietotnes",
+3 -1
View File
@@ -138,7 +138,9 @@
"scheduled": "Gepland",
"unified_all_unread": "Alle ongelezen",
"unified_all_starred": "Alle met ster",
"unified_all_mail": "Alle e-mail"
"unified_all_mail": "Alle e-mail",
"remove_account": "Remove account",
"remove_account_confirm": "Remove {account} from this device? You can add it back later."
},
"protocol_handlers": {
"title": "Standaardapps",
+3 -1
View File
@@ -138,7 +138,9 @@
"scheduled": "Zaplanowane",
"unified_all_unread": "Wszystkie nieprzeczytane",
"unified_all_starred": "Wszystkie oznaczone gwiazdką",
"unified_all_mail": "Cała poczta"
"unified_all_mail": "Cała poczta",
"remove_account": "Remove account",
"remove_account_confirm": "Remove {account} from this device? You can add it back later."
},
"protocol_handlers": {
"title": "Aplikacje domyślne",
+3 -1
View File
@@ -138,7 +138,9 @@
"scheduled": "Agendados",
"unified_all_unread": "Tudo não lido",
"unified_all_starred": "Tudo com estrela",
"unified_all_mail": "Todo o correio"
"unified_all_mail": "Todo o correio",
"remove_account": "Remove account",
"remove_account_confirm": "Remove {account} from this device? You can add it back later."
},
"protocol_handlers": {
"title": "Aplicativos padrão",
+3 -1
View File
@@ -138,7 +138,9 @@
"scheduled": "Programat",
"unified_all_unread": "Toate necitite",
"unified_all_starred": "Toate cu stea",
"unified_all_mail": "Toată poșta"
"unified_all_mail": "Toată poșta",
"remove_account": "Remove account",
"remove_account_confirm": "Remove {account} from this device? You can add it back later."
},
"protocol_handlers": {
"title": "Aplicații implicite",
+3 -1
View File
@@ -138,7 +138,9 @@
"scheduled": "Запланировано",
"unified_all_unread": "Все непрочитанные",
"unified_all_starred": "Все помеченные",
"unified_all_mail": "Вся почта"
"unified_all_mail": "Вся почта",
"remove_account": "Remove account",
"remove_account_confirm": "Remove {account} from this device? You can add it back later."
},
"protocol_handlers": {
"title": "Приложения по умолчанию",
+3 -1
View File
@@ -138,7 +138,9 @@
"scheduled": "Zamanlandı",
"unified_all_unread": "Tüm okunmamışlar",
"unified_all_starred": "Tüm yıldızlılar",
"unified_all_mail": "Tüm postalar"
"unified_all_mail": "Tüm postalar",
"remove_account": "Remove account",
"remove_account_confirm": "Remove {account} from this device? You can add it back later."
},
"protocol_handlers": {
"title": "Varsayılan uygulamalar",
+3 -1
View File
@@ -138,7 +138,9 @@
"scheduled": "Заплановано",
"unified_all_unread": "Усі непрочитані",
"unified_all_starred": "Усі позначені",
"unified_all_mail": "Уся пошта"
"unified_all_mail": "Уся пошта",
"remove_account": "Remove account",
"remove_account_confirm": "Remove {account} from this device? You can add it back later."
},
"protocol_handlers": {
"title": "Програми за замовчуванням",
+3 -1
View File
@@ -138,7 +138,9 @@
"scheduled": "已计划",
"unified_all_unread": "全部未读",
"unified_all_starred": "全部加星标",
"unified_all_mail": "全部邮件"
"unified_all_mail": "全部邮件",
"remove_account": "Remove account",
"remove_account_confirm": "Remove {account} from this device? You can add it back later."
},
"protocol_handlers": {
"title": "默认应用",