feat(ui): add select all / clear all shortcuts for inbound multi-select (#5175)

* feat(ui): add select all / clear all shortcuts for inbound multi-select

Adds 'Select all' and 'Clear all' buttons above the inbound multi-select in:
- ClientFormModal (add/edit client)
- BulkAttachInboundsModal (bulk attach clients to inbounds)
- BulkDetachInboundsModal (bulk detach clients from inbounds)
- ClientBulkAddModal (add bulk clients)

Extracts the repeated button logic into a reusable SelectAllClearButtons component.

Includes i18n keys for all 13 supported languages with proper translations.

Closes #5144

* refactor(form): decouple SelectAllClearButtons labels and harden select-all

Accept optional selectAllLabel/clearLabel props so the generic form component is not tied to the client-inbound i18n keys (defaults unchanged). Compute the all-selected state by checking every option is present and union the current value on select-all, so it stays correct if value holds ids outside options.

---------

Co-authored-by: Sanaei <ho3ein.sanaei@gmail.com>
This commit is contained in:
Nikan Zeyaei
2026-06-11 13:09:58 +02:00
committed by GitHub
co-authored by Sanaei
parent ffde2f7ebf
commit 07e5e8498e
19 changed files with 126 additions and 24 deletions
+2 -1
View File
@@ -704,6 +704,8 @@
"duration": "Süre",
"attachedInbounds": "Bağlı Gelen Bağlantılar",
"selectInbound": "Bir veya Daha Fazla Gelen Bağlantı Seçin",
"selectAllInbounds": "Tümünü Seç",
"clearAllInbounds": "Tümünü Temizle",
"noSubId": "Bu kullanıcının subId'si yok, dolayısıyla paylaşılabilir bir bağlantısı bulunmuyor.",
"noLinks": "Paylaşılabilir bağlantı yok — önce bu kullanıcıyı bir protokole sahip olan gelen bağlantıya bağlayın.",
"link": "Bağlantı",
@@ -1705,4 +1707,3 @@
}
}
}