chore: add select all/deselect all functionality when adding existing work item (#7045)

* chore: add select all/deselect all functionality

* chore: update button display logic by CR
This commit is contained in:
Quang Hung Pham
2025-06-02 08:00:31 +00:00
committed by GitHub
parent 7c336a65c4
commit 64da29b0d9
20 changed files with 83 additions and 25 deletions

View File

@@ -1081,7 +1081,9 @@
"select": {
"error": "Vyberte alespoň jednu pracovní položku",
"empty": "Nevybrány žádné pracovní položky",
"add_selected": "Přidat vybrané pracovní položky"
"add_selected": "Přidat vybrané pracovní položky",
"select_all": "Vybrat vše",
"deselect_all": "Zrušit výběr všeho"
},
"open_in_full_screen": "Otevřít pracovní položku na celou obrazovku"
},

View File

@@ -1081,7 +1081,9 @@
"select": {
"error": "Wählen Sie mindestens ein Arbeitselement aus",
"empty": "Keine Arbeitselemente ausgewählt",
"add_selected": "Ausgewählte Arbeitselemente hinzufügen"
"add_selected": "Ausgewählte Arbeitselemente hinzufügen",
"select_all": "Alle auswählen",
"deselect_all": "Alle abwählen"
},
"open_in_full_screen": "Arbeitselement im Vollbild öffnen"
},

View File

@@ -924,7 +924,9 @@
"select": {
"error": "Please select at least one work item",
"empty": "No work items selected",
"add_selected": "Add selected work items"
"add_selected": "Add selected work items",
"select_all": "Select all",
"deselect_all": "Deselect all"
},
"open_in_full_screen": "Open work item in full screen"
},

View File

@@ -1084,7 +1084,9 @@
"select": {
"error": "Por favor selecciona al menos un elemento de trabajo",
"empty": "No hay elementos de trabajo seleccionados",
"add_selected": "Agregar elementos seleccionados"
"add_selected": "Agregar elementos seleccionados",
"select_all": "Seleccionar todo",
"deselect_all": "Deseleccionar todo"
},
"open_in_full_screen": "Abrir elemento de trabajo en pantalla completa"
},

View File

@@ -1082,7 +1082,9 @@
"select": {
"error": "Veuillez sélectionner au moins un élément de travail",
"empty": "Aucun élément de travail sélectionné",
"add_selected": "Ajouter les éléments de travail sélectionnés"
"add_selected": "Ajouter les éléments de travail sélectionnés",
"select_all": "Sélectionner tout",
"deselect_all": "Tout désélectionner"
},
"open_in_full_screen": "Ouvrir l'élément de travail en plein écran"
},

View File

@@ -1081,7 +1081,9 @@
"select": {
"error": "Silakan pilih setidaknya satu item kerja",
"empty": "Tidak ada item kerja yang dipilih",
"add_selected": "Tambah item kerja yang dipilih"
"add_selected": "Tambah item kerja yang dipilih",
"select_all": "Pilih semua item kerja",
"deselect_all": "Batalkan pilihan semua item kerja"
},
"open_in_full_screen": "Buka item kerja dalam layar penuh"
},

View File

@@ -1080,7 +1080,9 @@
"select": {
"error": "Seleziona almeno un elemento di lavoro",
"empty": "Nessun elemento di lavoro selezionato",
"add_selected": "Aggiungi gli elementi di lavoro selezionati"
"add_selected": "Aggiungi gli elementi di lavoro selezionati",
"select_all": "Seleziona tutto",
"deselect_all": "Deseleziona tutto"
},
"open_in_full_screen": "Apri l'elemento di lavoro a schermo intero"
},

View File

@@ -1082,7 +1082,9 @@
"select": {
"error": "少なくとも1つの作業項目を選択してください",
"empty": "作業項目が選択されていません",
"add_selected": "選択した作業項目を追加"
"add_selected": "選択した作業項目を追加",
"select_all": "すべて選択",
"deselect_all": "すべての選択を解除"
},
"open_in_full_screen": "作業項目をフルスクリーンで開く"
},

View File

@@ -1083,7 +1083,9 @@
"select": {
"error": "최소 하나의 작업 항목을 선택하세요",
"empty": "선택된 작업 항목 없음",
"add_selected": "선택된 작업 항목 추가"
"add_selected": "선택된 작업 항목 추가",
"select_all": "모두 선택",
"deselect_all": "모두 선택 해제"
},
"open_in_full_screen": "작업 항목을 전체 화면으로 열기"
},

View File

@@ -1083,7 +1083,9 @@
"select": {
"error": "Wybierz co najmniej jeden element pracy",
"empty": "Nie wybrano żadnych elementów pracy",
"add_selected": "Dodaj wybrane elementy pracy"
"add_selected": "Dodaj wybrane elementy pracy",
"select_all": "Wybierz wszystko",
"deselect_all": "Odznacz wszystko"
},
"open_in_full_screen": "Otwórz element pracy na pełnym ekranie"
},

View File

@@ -1083,7 +1083,9 @@
"select": {
"error": "Selecione pelo menos um item de trabalho",
"empty": "Nenhum item de trabalho selecionado",
"add_selected": "Adicionar itens de trabalho selecionados"
"add_selected": "Adicionar itens de trabalho selecionados",
"select_all": "Selecionar tudo",
"deselect_all": "Desmarcar tudo"
},
"open_in_full_screen": "Abrir item de trabalho em tela cheia"
},

View File

@@ -1081,7 +1081,9 @@
"select": {
"error": "Selectează cel puțin o activitate",
"empty": "Nicio activitate selectată",
"add_selected": "Adaugă activitățile selectate"
"add_selected": "Adaugă activitățile selectate",
"select_all": "Selectează tot",
"deselect_all": "Deselează tot"
},
"open_in_full_screen": "Deschide activitatea pe tot ecranul"
},

View File

@@ -1083,7 +1083,9 @@
"select": {
"error": "Выберите хотя бы один рабочий элемент",
"empty": "Рабочие элементы не выбраны",
"add_selected": "Добавить выбранные рабочие элементы"
"add_selected": "Добавить выбранные рабочие элементы",
"select_all": "Выбрать все",
"deselect_all": "Снять выделение со всех"
},
"open_in_full_screen": "Открыть рабочий элемент в полном экране"
},

View File

@@ -1083,7 +1083,9 @@
"select": {
"error": "Vyberte aspoň jednu pracovnú položku",
"empty": "Nie sú vybrané žiadne pracovné položky",
"add_selected": "Pridať vybrané pracovné položky"
"add_selected": "Pridať vybrané pracovné položky",
"select_all": "Vybrať všetko",
"deselect_all": "Zrušiť výber všetkého"
},
"open_in_full_screen": "Otvoriť pracovnú položku na celú obrazovku"
},

View File

@@ -1084,7 +1084,9 @@
"select": {
"error": "Lütfen en az bir iş öğesi seçin",
"empty": "Hiç iş öğesi seçilmedi",
"add_selected": "Seçilen iş öğelerini ekle"
"add_selected": "Seçilen iş öğelerini ekle",
"select_all": "Tümünü seç",
"deselect_all": "Tümünü seçme"
},
"open_in_full_screen": "İş öğesini tam ekranda aç"
},

View File

@@ -1083,7 +1083,9 @@
"select": {
"error": "Виберіть принаймні одну робочу одиницю",
"empty": "Не вибрано жодної робочої одиниці",
"add_selected": "Додати вибрані робочі одиниці"
"add_selected": "Додати вибрані робочі одиниці",
"select_all": "Вибрати всі",
"deselect_all": "Скасувати вибір усіх"
},
"open_in_full_screen": "Відкрити робочу одиницю на повний екран"
},

View File

@@ -1082,7 +1082,9 @@
"select": {
"error": "Vui lòng chọn ít nhất một mục công việc",
"empty": "Chưa chọn mục công việc",
"add_selected": "Thêm mục công việc đã chọn"
"add_selected": "Thêm mục công việc đã chọn",
"select_all": "Chọn tất cả",
"deselect_all": "Bỏ chọn tất cả"
},
"open_in_full_screen": "Mở mục công việc trong chế độ toàn màn hình"
},

View File

@@ -1082,7 +1082,9 @@
"select": {
"error": "请至少选择一个工作项",
"empty": "未选择工作项",
"add_selected": "添加所选工作项"
"add_selected": "添加所选工作项",
"select_all": "全选",
"deselect_all": "取消全选"
},
"open_in_full_screen": "在全屏中打开工作项"
},

View File

@@ -1083,7 +1083,9 @@
"select": {
"error": "請至少選擇一個工作事項",
"empty": "未選擇工作事項",
"add_selected": "新增已選取的工作事項"
"add_selected": "新增已選取的工作事項",
"select_all": "全選",
"deselect_all": "取消全選"
},
"open_in_full_screen": "以全螢幕開啟工作事項"
},

View File

@@ -110,6 +110,10 @@ export const ExistingIssuesListModal: React.FC<Props> = (props) => {
});
};
const handleSelectIssues = () => {
setSelectedIssues((prevData) => (prevData.length === filteredIssues.length ? [] : [...filteredIssues]));
};
useEffect(() => {
if (selectedWorkItems) {
setSelectedIssues(selectedWorkItems);
@@ -317,15 +321,31 @@ export const ExistingIssuesListModal: React.FC<Props> = (props) => {
)}
</Combobox.Options>
</Combobox>
<div className="flex items-center justify-end gap-2 p-3">
<Button variant="neutral-primary" size="sm" onClick={handleClose}>
{t("common.cancel")}
<div className="flex justify-between items-center">
<Button
variant="link-primary"
size="sm"
onClick={handleSelectIssues}
disabled={filteredIssues.length === 0}
>
{selectedIssues.length === issues.length
? t("issue.select.deselect_all")
: t("issue.select.select_all")}
</Button>
{selectedIssues.length > 0 && (
<Button variant="primary" size="sm" onClick={onSubmit} loading={isSubmitting}>
<div className="flex items-center justify-end gap-2 p-3">
<Button variant="neutral-primary" size="sm" onClick={handleClose}>
{t("common.cancel")}
</Button>
<Button
variant="primary"
size="sm"
onClick={onSubmit}
loading={isSubmitting}
disabled={isSubmitting || selectedIssues.length === 0}
>
{isSubmitting ? t("common.adding") : t("issue.select.add_selected")}
</Button>
)}
</div>
</div>
</Dialog.Panel>
</Transition.Child>