From a1e6cfe3d7c504767b758913c274b9be1c3236c9 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 8 Jan 2026 11:07:54 +0100 Subject: [PATCH] :lipstick: Add cosmetic changes to dashboard deleted files page --- .../src/app/main/ui/dashboard/deleted.cljs | 47 ++++++++++++------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/frontend/src/app/main/ui/dashboard/deleted.cljs b/frontend/src/app/main/ui/dashboard/deleted.cljs index 6116d8230b..cd261fe748 100644 --- a/frontend/src/app/main/ui/dashboard/deleted.cljs +++ b/frontend/src/app/main/ui/dashboard/deleted.cljs @@ -32,6 +32,27 @@ (def ^:private menu-icon (deprecated-icon/icon-xref :menu (stl/css :menu-icon))) +(defn- on-restore-project + [project] + (let [on-accept #(st/emit! (dd/restore-project-immediately project))] + (st/emit! (modal/show + {:type :confirm + :title (tr "dashboard.restore-project-confirmation.title") + :message (tr "dashboard.restore-project-confirmation.description" (:name project)) + :accept-style :primary + :accept-label (tr "labels.continue") + :on-accept on-accept})))) + +(defn- on-delete-project + [project] + (let [accept-fn #(st/emit! (dd/delete-project-immediately project))] + (st/emit! (modal/show + {:type :confirm + :title (tr "dashboard.delete-forever-confirmation.title") + :message (tr "dashboard.delete-project-forever-confirmation.description" (:name project)) + :accept-label (tr "dashboard.delete-forever-confirmation.title") + :on-accept accept-fn})))) + (mf/defc header* {::mf/props :obj ::mf/private true} @@ -41,6 +62,7 @@ [:h1 (tr "dashboard.projects-title")]]]) (mf/defc deleted-project-menu* + {::mf/private true} [{:keys [project show on-close top left]}] (let [top (d/nilv top 0) left (d/nilv left 0) @@ -48,25 +70,13 @@ on-restore-project (mf/use-fn (mf/deps project) - (fn [] - (let [on-accept #(st/emit! (dd/restore-project-immediately project))] - (st/emit! (modal/show {:type :confirm - :title (tr "dashboard.restore-project-confirmation.title") - :message (tr "dashboard.restore-project-confirmation.description" (:name project)) - :accept-style :primary - :accept-label (tr "labels.continue") - :on-accept on-accept}))))) + (partial on-restore-project project)) on-delete-project (mf/use-fn (mf/deps project) - (fn [] - (let [accept-fn #(st/emit! (dd/delete-project-immediately project))] - (st/emit! (modal/show {:type :confirm - :title (tr "dashboard.delete-forever-confirmation.title") - :message (tr "dashboard.delete-project-forever-confirmation.description" (:name project)) - :accept-label (tr "dashboard.delete-forever-confirmation.title") - :on-accept accept-fn}))))) + (partial on-delete-project project)) + options (mf/with-memo [on-restore-project on-delete-project] [{:name (tr "dashboard.restore-project-button") @@ -174,8 +184,8 @@ :limit limit :selected-files selected-files}])]])) - (mf/defc menu* + {::mf/private true} [{:keys [team-id section]}] (let [on-recent-click (mf/use-fn @@ -222,7 +232,8 @@ (some #(= (:id project) (:project-id %)) (vals deleted-map))))) (sort-by :modified-at) - (reverse))) + (reverse) + (not-empty))) team-id (get team :id) @@ -298,7 +309,7 @@ :on-click on-delete-all} (tr "dashboard.clear-trash-button")]]] - (when (seq projects) + (when projects (for [{:keys [id] :as project} projects] (let [files (when deleted-map (->> (vals deleted-map)