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
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
20 changed files with 83 additions and 25 deletions

View file

@ -1081,7 +1081,9 @@
"select": { "select": {
"error": "Vyberte alespoň jednu pracovní položku", "error": "Vyberte alespoň jednu pracovní položku",
"empty": "Nevybrány žádné pracovní položky", "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" "open_in_full_screen": "Otevřít pracovní položku na celou obrazovku"
}, },

View file

@ -1081,7 +1081,9 @@
"select": { "select": {
"error": "Wählen Sie mindestens ein Arbeitselement aus", "error": "Wählen Sie mindestens ein Arbeitselement aus",
"empty": "Keine Arbeitselemente ausgewählt", "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" "open_in_full_screen": "Arbeitselement im Vollbild öffnen"
}, },

View file

@ -924,7 +924,9 @@
"select": { "select": {
"error": "Please select at least one work item", "error": "Please select at least one work item",
"empty": "No work items selected", "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" "open_in_full_screen": "Open work item in full screen"
}, },

View file

@ -1084,7 +1084,9 @@
"select": { "select": {
"error": "Por favor selecciona al menos un elemento de trabajo", "error": "Por favor selecciona al menos un elemento de trabajo",
"empty": "No hay elementos de trabajo seleccionados", "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" "open_in_full_screen": "Abrir elemento de trabajo en pantalla completa"
}, },

View file

@ -1082,7 +1082,9 @@
"select": { "select": {
"error": "Veuillez sélectionner au moins un élément de travail", "error": "Veuillez sélectionner au moins un élément de travail",
"empty": "Aucun élément de travail sélectionné", "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" "open_in_full_screen": "Ouvrir l'élément de travail en plein écran"
}, },

View file

@ -1081,7 +1081,9 @@
"select": { "select": {
"error": "Silakan pilih setidaknya satu item kerja", "error": "Silakan pilih setidaknya satu item kerja",
"empty": "Tidak ada item kerja yang dipilih", "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" "open_in_full_screen": "Buka item kerja dalam layar penuh"
}, },

View file

@ -1080,7 +1080,9 @@
"select": { "select": {
"error": "Seleziona almeno un elemento di lavoro", "error": "Seleziona almeno un elemento di lavoro",
"empty": "Nessun elemento di lavoro selezionato", "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" "open_in_full_screen": "Apri l'elemento di lavoro a schermo intero"
}, },

View file

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

View file

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

View file

@ -1083,7 +1083,9 @@
"select": { "select": {
"error": "Wybierz co najmniej jeden element pracy", "error": "Wybierz co najmniej jeden element pracy",
"empty": "Nie wybrano żadnych elementów 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" "open_in_full_screen": "Otwórz element pracy na pełnym ekranie"
}, },

View file

@ -1083,7 +1083,9 @@
"select": { "select": {
"error": "Selecione pelo menos um item de trabalho", "error": "Selecione pelo menos um item de trabalho",
"empty": "Nenhum item de trabalho selecionado", "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" "open_in_full_screen": "Abrir item de trabalho em tela cheia"
}, },

View file

@ -1081,7 +1081,9 @@
"select": { "select": {
"error": "Selectează cel puțin o activitate", "error": "Selectează cel puțin o activitate",
"empty": "Nicio activitate selectată", "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" "open_in_full_screen": "Deschide activitatea pe tot ecranul"
}, },

View file

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

View file

@ -1083,7 +1083,9 @@
"select": { "select": {
"error": "Vyberte aspoň jednu pracovnú položku", "error": "Vyberte aspoň jednu pracovnú položku",
"empty": "Nie sú vybrané žiadne pracovné položky", "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" "open_in_full_screen": "Otvoriť pracovnú položku na celú obrazovku"
}, },

View file

@ -1084,7 +1084,9 @@
"select": { "select": {
"error": "Lütfen en az bir iş öğesi seçin", "error": "Lütfen en az bir iş öğesi seçin",
"empty": "Hiç iş öğesi seçilmedi", "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ç" "open_in_full_screen": "İş öğesini tam ekranda aç"
}, },

View file

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

View file

@ -1082,7 +1082,9 @@
"select": { "select": {
"error": "Vui lòng chọn ít nhất một mục công việc", "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", "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" "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": { "select": {
"error": "请至少选择一个工作项", "error": "请至少选择一个工作项",
"empty": "未选择工作项", "empty": "未选择工作项",
"add_selected": "添加所选工作项" "add_selected": "添加所选工作项",
"select_all": "全选",
"deselect_all": "取消全选"
}, },
"open_in_full_screen": "在全屏中打开工作项" "open_in_full_screen": "在全屏中打开工作项"
}, },

View file

@ -1083,7 +1083,9 @@
"select": { "select": {
"error": "請至少選擇一個工作事項", "error": "請至少選擇一個工作事項",
"empty": "未選擇工作事項", "empty": "未選擇工作事項",
"add_selected": "新增已選取的工作事項" "add_selected": "新增已選取的工作事項",
"select_all": "全選",
"deselect_all": "取消全選"
}, },
"open_in_full_screen": "以全螢幕開啟工作事項" "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(() => { useEffect(() => {
if (selectedWorkItems) { if (selectedWorkItems) {
setSelectedIssues(selectedWorkItems); setSelectedIssues(selectedWorkItems);
@ -317,15 +321,31 @@ export const ExistingIssuesListModal: React.FC<Props> = (props) => {
)} )}
</Combobox.Options> </Combobox.Options>
</Combobox> </Combobox>
<div className="flex items-center justify-end gap-2 p-3"> <div className="flex justify-between items-center">
<Button variant="neutral-primary" size="sm" onClick={handleClose}> <Button
{t("common.cancel")} 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> </Button>
{selectedIssues.length > 0 && ( <div className="flex items-center justify-end gap-2 p-3">
<Button variant="primary" size="sm" onClick={onSubmit} loading={isSubmitting}> <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")} {isSubmitting ? t("common.adding") : t("issue.select.add_selected")}
</Button> </Button>
)} </div>
</div> </div>
</Dialog.Panel> </Dialog.Panel>
</Transition.Child> </Transition.Child>