mirror of
https://github.com/penpot/penpot.git
synced 2025-05-14 20:46:37 +02:00
✨ Add new file creation button on placeholder
This commit is contained in:
parent
1174502cb8
commit
1eede8442d
6 changed files with 48 additions and 46 deletions
|
@ -20,7 +20,7 @@
|
|||
[rumext.alpha :as mf]))
|
||||
|
||||
(mf/defc header
|
||||
[{:keys [project] :as props}]
|
||||
[{:keys [project on-create-clicked] :as props}]
|
||||
(let [local (mf/use-state {:menu-open false
|
||||
:edition false})
|
||||
on-menu-click
|
||||
|
@ -41,13 +41,6 @@
|
|||
(mf/deps project)
|
||||
#(st/emit! (dd/toggle-project-pin project)))
|
||||
|
||||
on-create-clicked
|
||||
(mf/use-callback
|
||||
(mf/deps project)
|
||||
(fn [event]
|
||||
(dom/prevent-default event)
|
||||
(st/emit! (dd/create-file {:project-id (:id project)}))))
|
||||
|
||||
on-import
|
||||
(mf/use-callback
|
||||
(mf/deps (:id project))
|
||||
|
@ -82,7 +75,7 @@
|
|||
:on-import on-import}]
|
||||
|
||||
[:div.dashboard-header-actions
|
||||
[:a.btn-secondary.btn-small {:on-click on-create-clicked :data-test "new-file"}
|
||||
[:a.btn-secondary.btn-small {:on-click (partial on-create-clicked project) :data-test "new-file"}
|
||||
(tr "dashboard.new-file")]
|
||||
|
||||
(when-not (:is-default project)
|
||||
|
@ -103,7 +96,13 @@
|
|||
files (->> (vals files-map)
|
||||
(filter #(= (:id project) (:project-id %)))
|
||||
(sort-by :modified-at)
|
||||
(reverse))]
|
||||
(reverse))
|
||||
|
||||
on-create-clicked
|
||||
(mf/use-callback
|
||||
(fn [project event]
|
||||
(dom/prevent-default event)
|
||||
(st/emit! (dd/create-file {:project-id (:id project)}))))]
|
||||
|
||||
(mf/use-effect
|
||||
(mf/deps project)
|
||||
|
@ -121,8 +120,11 @@
|
|||
(dd/clear-selected-files))))
|
||||
|
||||
[:*
|
||||
[:& header {:team team :project project}]
|
||||
[:& header {:team team
|
||||
:project project
|
||||
:on-create-clicked on-create-clicked}]
|
||||
[:section.dashboard-container
|
||||
[:& grid {:project project
|
||||
:files files}]]]))
|
||||
:files files
|
||||
:on-create-clicked on-create-clicked}]]]))
|
||||
|
||||
|
|
|
@ -205,7 +205,7 @@
|
|||
:on-menu-close on-menu-close}])]]]))
|
||||
|
||||
(mf/defc grid
|
||||
[{:keys [files project] :as props}]
|
||||
[{:keys [files project on-create-clicked] :as props}]
|
||||
(let [dragging? (mf/use-state false)
|
||||
project-id (:id project)
|
||||
|
||||
|
@ -268,7 +268,9 @@
|
|||
:navigate? true}])]
|
||||
|
||||
:else
|
||||
[:& empty-placeholder {:default? (:is-default project)}])]))
|
||||
[:& empty-placeholder {:default? (:is-default project)
|
||||
:on-create-clicked on-create-clicked
|
||||
:project project}])]))
|
||||
|
||||
(mf/defc line-grid-row
|
||||
[{:keys [files selected-files on-load-more dragging?] :as props}]
|
||||
|
@ -326,7 +328,7 @@
|
|||
(tr "dashboard.show-all-files")]])]))
|
||||
|
||||
(mf/defc line-grid
|
||||
[{:keys [project team files on-load-more] :as props}]
|
||||
[{:keys [project team files on-load-more on-create-clicked] :as props}]
|
||||
(let [dragging? (mf/use-state false)
|
||||
project-id (:id project)
|
||||
team-id (:id team)
|
||||
|
@ -414,5 +416,6 @@
|
|||
|
||||
:else
|
||||
[:& empty-placeholder {:dragging? @dragging?
|
||||
:default? (:is-default project)}])]))
|
||||
:default? (:is-default project)
|
||||
:on-create-clicked on-create-clicked}])]))
|
||||
|
||||
|
|
|
@ -11,20 +11,16 @@
|
|||
[rumext.alpha :as mf]))
|
||||
|
||||
(mf/defc empty-placeholder
|
||||
[{:keys [dragging? default?] :as props}]
|
||||
[{:keys [dragging? on-create-clicked project] :as props}]
|
||||
(cond
|
||||
(true? dragging?)
|
||||
[:div.grid-row.no-wrap
|
||||
[:div.grid-item]]
|
||||
|
||||
(true? default?)
|
||||
[:div.grid-empty-placeholder.drafts {:data-test "empty-placeholder"}
|
||||
[:div.text
|
||||
[:& i18n/tr-html {:label "dashboard.empty-placeholder-drafts"}]]]
|
||||
|
||||
:else
|
||||
[:div.grid-empty-placeholder
|
||||
[:img.ph-files {:src "images/ph-file.svg"}]]))
|
||||
[:button.create-new {:on-click (partial on-create-clicked project)}
|
||||
(tr "dashboard.new-file")]]))
|
||||
|
||||
(mf/defc loading-placeholder
|
||||
[]
|
||||
|
|
|
@ -151,7 +151,8 @@
|
|||
{:project project
|
||||
:team team
|
||||
:on-load-more on-nav
|
||||
:files files}]]))
|
||||
:files files
|
||||
:on-create-clicked create-file}]]))
|
||||
|
||||
|
||||
(def recent-files-ref
|
||||
|
|
|
@ -42,17 +42,17 @@
|
|||
[:section.dashboard-container.search
|
||||
(cond
|
||||
(empty? search-term)
|
||||
[:div.grid-empty-placeholder
|
||||
[:div.grid-empty-placeholder.search
|
||||
[:div.icon i/search]
|
||||
[:div.text (tr "dashboard.type-something")]]
|
||||
|
||||
(nil? result)
|
||||
[:div.grid-empty-placeholder
|
||||
[:div.grid-empty-placeholder.search
|
||||
[:div.icon i/search]
|
||||
[:div.text (tr "dashboard.searching-for" search-term)]]
|
||||
|
||||
(empty? result)
|
||||
[:div.grid-empty-placeholder
|
||||
[:div.grid-empty-placeholder.search
|
||||
[:div.icon i/search]
|
||||
[:div.text (tr "dashboard.no-matches-for" search-term)]]
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue