From 5420897b927837bfe6cdbc9793b4547336e744e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Valderrama?= Date: Mon, 12 Jan 2026 11:17:01 +0100 Subject: [PATCH] :bug: Fix empty state message in trash page (#8045) --- .../ui/specs/dashboard-deleted.spec.js | 9 +-- .../src/app/main/ui/dashboard/deleted.cljs | 63 ++++++++++--------- frontend/translations/en.po | 3 + frontend/translations/es.po | 3 + 4 files changed, 43 insertions(+), 35 deletions(-) diff --git a/frontend/playwright/ui/specs/dashboard-deleted.spec.js b/frontend/playwright/ui/specs/dashboard-deleted.spec.js index 6963eac0d5..bacf85ae75 100644 --- a/frontend/playwright/ui/specs/dashboard-deleted.spec.js +++ b/frontend/playwright/ui/specs/dashboard-deleted.spec.js @@ -20,12 +20,7 @@ test.describe("Dashboard Deleted Page", () => { // Navigate directly to deleted page await dashboardPage.goToDeleted(); - // Check for the restore all and clear trash buttons - await expect( - page.getByRole("button", { name: "Restore All" }), - ).toBeVisible(); - await expect( - page.getByRole("button", { name: "Clear trash" }), - ).toBeVisible(); + // Check for the delete-page-section element + await expect(page.getByTestId("deleted-page-section")).toBeVisible(); }); }); diff --git a/frontend/src/app/main/ui/dashboard/deleted.cljs b/frontend/src/app/main/ui/dashboard/deleted.cljs index cd261fe748..c9c4d398ba 100644 --- a/frontend/src/app/main/ui/dashboard/deleted.cljs +++ b/frontend/src/app/main/ui/dashboard/deleted.cljs @@ -284,37 +284,44 @@ [:* [:> header* {:team team}] - [:section {:class (stl/css :dashboard-container :no-bg)} + [:section {:class (stl/css :dashboard-container :no-bg) + :data-testid "deleted-page-section"} [:* [:div {:class (stl/css :no-bg)} [:> menu* {:team-id team-id :section :dashboard-deleted}] - [:div {:class (stl/css :deleted-info-content)} - [:p {:class (stl/css :deleted-info)} - (tr "dashboard.trash-info-text-part1") - [:span {:class (stl/css :info-text-highlight)} - (tr "dashboard.trash-info-text-part2" deletion-days)] - (tr "dashboard.trash-info-text-part3") - [:br] - (tr "dashboard.trash-info-text-part4")] - [:div {:class (stl/css :deleted-options)} - [:> button* {:variant "ghost" - :type "button" - :on-click on-restore-all} - (tr "dashboard.restore-all-deleted-button")] - [:> button* {:variant "destructive" - :type "button" - :icon "delete" - :on-click on-delete-all} - (tr "dashboard.clear-trash-button")]]] + (if (seq projects) + [:* + [:div {:class (stl/css :deleted-info-content)} + [:p {:class (stl/css :deleted-info)} + (tr "dashboard.trash-info-text-part1") + [:span {:class (stl/css :info-text-highlight)} + (tr "dashboard.trash-info-text-part2" deletion-days)] + (tr "dashboard.trash-info-text-part3") + [:br] + (tr "dashboard.trash-info-text-part4")] + [:div {:class (stl/css :deleted-options)} + [:> button* {:variant "ghost" + :type "button" + :on-click on-restore-all} + (tr "dashboard.restore-all-deleted-button")] + [:> button* {:variant "destructive" + :type "button" + :icon "delete" + :on-click on-delete-all} + (tr "dashboard.clear-trash-button")]]] - (when projects - (for [{:keys [id] :as project} projects] - (let [files (when deleted-map - (->> (vals deleted-map) - (filterv #(= id (:project-id %))) - (sort-by :modified-at #(compare %2 %1))))] - [:> deleted-project-item* {:project project - :files files - :key id}])))]]]])) + (for [{:keys [id] :as project} projects] + (let [files (when deleted-map + (->> (vals deleted-map) + (filterv #(= id (:project-id %))) + (sort-by :modified-at #(compare %2 %1))))] + [:> deleted-project-item* {:project project + :files files + :key id}]))] + + ;; when no deleted projects + [:div {:class (stl/css :deleted-info-content)} + [:p {:class (stl/css :deleted-info)} + (tr "dashboard.deleted.empty-state-description")]])]]]])) diff --git a/frontend/translations/en.po b/frontend/translations/en.po index 4d7822cbec..36a89f9adf 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -8572,3 +8572,6 @@ msgstr "Restore unexpectedly slow" msgid "dashboard.progress-notification.slow-delete" msgstr "Deletion unexpectedly slow" + +msgid "dashboard.deleted.empty-state-description" +msgstr "Your trash is empty. Deleted files and projects will appear here." diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 3aa83e1bac..31de29a72c 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -8419,3 +8419,6 @@ msgstr "Restauración inesperadamente lenta" msgid "dashboard.progress-notification.slow-delete" msgstr "Eliminación inesperadamente lenta" + +msgid "dashboard.deleted.empty-state-description" +msgstr "Tu papelera está vacía. Los archivos y proyectos eliminados aparecerán aquí."