mirror of
https://github.com/penpot/penpot.git
synced 2025-06-09 15:21:37 +02:00
fix(frontend): fix many bugs viewer sitemap component
This commit is contained in:
parent
095989e6ba
commit
3fc9c891ac
2 changed files with 28 additions and 36 deletions
|
@ -18,12 +18,15 @@
|
||||||
|
|
||||||
;; --- Refs
|
;; --- Refs
|
||||||
|
|
||||||
(def flags-ref
|
(defn- sort-pages
|
||||||
(-> (l/key :flags)
|
[{:keys [pages] :as state}]
|
||||||
(l/derive st/state)))
|
(let [get-order #(get-in % [:metadata :order])]
|
||||||
|
(assoc state :pages (->> (sort-by get-order pages)
|
||||||
|
(into [])))))
|
||||||
|
|
||||||
(def pages-ref
|
(def state-ref
|
||||||
(-> (l/key :pages)
|
(-> (comp (l/select-keys [:flags :pages :project])
|
||||||
|
(l/lens sort-pages))
|
||||||
(l/derive st/state)))
|
(l/derive st/state)))
|
||||||
|
|
||||||
;; --- Component
|
;; --- Component
|
||||||
|
@ -39,7 +42,7 @@
|
||||||
(let [[old-token] (:rum/args oldown)
|
(let [[old-token] (:rum/args oldown)
|
||||||
[new-token] (:rum/args own)]
|
[new-token] (:rum/args own)]
|
||||||
(when (not= old-token new-token)
|
(when (not= old-token new-token)
|
||||||
(st/emit! (dv/initialize old-token)))
|
(st/emit! (dv/initialize new-token)))
|
||||||
own))
|
own))
|
||||||
|
|
||||||
(mx/defc viewer-page
|
(mx/defc viewer-page
|
||||||
|
@ -47,14 +50,13 @@
|
||||||
:will-mount viewer-page-will-mount
|
:will-mount viewer-page-will-mount
|
||||||
:did-remount viewer-page-did-remount}
|
:did-remount viewer-page-did-remount}
|
||||||
[token index id]
|
[token index id]
|
||||||
(let [flags (mx/react flags-ref)
|
(let [{:keys [project pages flags]} (mx/react state-ref)
|
||||||
sitemap? (contains? flags :sitemap)
|
sitemap? (contains? flags :sitemap)]
|
||||||
get-order #(get-in % [:metadata :order])
|
(when (seq pages)
|
||||||
pages (mx/react pages-ref)]
|
|
||||||
[:section.view-content
|
[:section.view-content
|
||||||
(when sitemap?
|
(when sitemap?
|
||||||
(sitemap pages index))
|
(sitemap project pages index))
|
||||||
(nav flags)
|
(nav flags)
|
||||||
(canvas (if (nil? id)
|
(canvas (if (nil? id)
|
||||||
(nth pages index)
|
(nth pages index)
|
||||||
(some #(= id (:id %)) pages)))]))
|
(some #(= id (:id %)) pages)))])))
|
||||||
|
|
|
@ -2,31 +2,21 @@
|
||||||
;; License, v. 2.0. If a copy of the MPL was not distributed with this
|
;; License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
;; file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
;; file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
;;
|
;;
|
||||||
;; Copyright (c) 2016 Andrey Antukh <niwi@niwi.nz>
|
|
||||||
;; Copyright (c) 2016 Juan de la Cruz <delacruzgarciajuan@gmail.com>
|
;; Copyright (c) 2016 Juan de la Cruz <delacruzgarciajuan@gmail.com>
|
||||||
|
;; Copyright (c) 2016-2019 Andrey Antukh <niwi@niwi.nz>
|
||||||
|
|
||||||
(ns uxbox.view.ui.viewer.sitemap
|
(ns uxbox.view.ui.viewer.sitemap
|
||||||
(:require [lentes.core :as l]
|
(:require
|
||||||
[potok.core :as ptk]
|
[lentes.core :as l]
|
||||||
[uxbox.builtins.icons :as i]
|
|
||||||
[uxbox.util.i18n :refer [tr]]
|
|
||||||
[rumext.core :as mx :include-macros true]
|
[rumext.core :as mx :include-macros true]
|
||||||
[uxbox.util.data :refer [parse-int]]
|
[uxbox.builtins.icons :as i]
|
||||||
[uxbox.view.data.viewer :as dv]
|
[uxbox.view.data.viewer :as dv]
|
||||||
[uxbox.view.store :as st]))
|
[uxbox.view.store :as st]))
|
||||||
|
|
||||||
;; --- Refs
|
|
||||||
|
|
||||||
(def project-name-ref
|
|
||||||
(-> (l/in [:project :name])
|
|
||||||
(l/derive st/state)))
|
|
||||||
|
|
||||||
;; --- Component
|
|
||||||
|
|
||||||
(mx/defc sitemap
|
(mx/defc sitemap
|
||||||
{:mixins [mx/static mx/reactive]}
|
{:mixins [mx/static mx/reactive]}
|
||||||
[pages selected]
|
[project pages selected]
|
||||||
(let [project-name (mx/react project-name-ref)
|
(let [project-name (:name project)
|
||||||
on-click #(st/emit! (dv/select-page %))]
|
on-click #(st/emit! (dv/select-page %))]
|
||||||
[:div.view-sitemap
|
[:div.view-sitemap
|
||||||
[:span.sitemap-title project-name]
|
[:span.sitemap-title project-name]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue