fix: optimize untitled whiteboard page name display

This commit is contained in:
Peng Xiao
2022-12-06 16:43:00 +08:00
committed by Tienson Qin
parent 9dff0db9ac
commit 923eaf602a
6 changed files with 30 additions and 11 deletions

View File

@@ -564,12 +564,14 @@
All page-names are sanitized except page-name-in-block"
[config page-name-in-block page-name redirect-page-name page-entity contents-page? children html-export? label whiteboard-page?]
(let [tag? (:tag? config)
config (assoc config :whiteboard-page? whiteboard-page?)]
config (assoc config :whiteboard-page? whiteboard-page?)
untitled? (model/untitled-page? page-name)]
[:a
{:tabIndex "0"
:class (cond-> (if tag? "tag" "page-ref")
(:property? config)
(str " page-property-key block-property"))
(str " page-property-key block-property")
untitled? (str " opacity-50"))
:data-ref page-name
:on-mouse-down (fn [e] (open-page-ref e page-name redirect-page-name page-name-in-block contents-page? whiteboard-page?))
:on-key-up (fn [e] (when (and e (= (.-key e) "Enter"))
@@ -593,9 +595,14 @@
:else
(let [original-name (util/get-page-original-name page-entity)
s (if (not= (util/safe-page-name-sanity-lc original-name) page-name-in-block)
page-name-in-block ;; page-name-in-block might be overrided (legacy)
(pdf-assets/human-page-name original-name))
s (cond untitled?
(t :untitled)
(not= (util/safe-page-name-sanity-lc original-name) page-name-in-block)
page-name-in-block ;; page-name-in-block might be overrided (legacy))
:else
(pdf-assets/human-page-name original-name))
_ (when-not page-entity (js/console.warn "page-inner's page-entity is nil, given page-name: " page-name
" page-name-in-block: " page-name-in-block))]
(if tag? (str "#" s) s))))]))

View File

@@ -71,7 +71,8 @@
(rum/defc page-name
[name icon recent?]
(let [original-name (db-model/get-page-original-name name)
whiteboard-page? (db-model/whiteboard-page? name)]
whiteboard-page? (db-model/whiteboard-page? name)
untitiled? (db-model/untitled-page? name)]
[:a.flex.items-center
{:on-click
(fn [e]
@@ -88,7 +89,9 @@
(route-handler/redirect-to-whiteboard! name)
(route-handler/redirect-to-page! name {:click-from-recent? recent?})))))}
[:span.page-icon (if whiteboard-page? (ui/icon "whiteboard" {:extension? true}) icon)]
[:span.page-title (pdf-utils/fix-local-asset-pagename original-name)]]))
[:span.page-title {:class (when untitiled? "opacity-50")}
(if untitiled? (t :untitled)
(pdf-utils/fix-local-asset-pagename original-name))]]))
(defn get-page-icon [page-entity]
(let [default-icon (ui/icon "page" {:extension? true})

View File

@@ -163,7 +163,7 @@
[:div.dashboard-card-title
[:div.flex.w-full.items-center
[:div.dashboard-card-title-name.font-bold
(if (parse-uuid page-name)
(if (model/untitled-page? page-name)
[:span.opacity-50 (t :untitled)]
(get-page-display-name page-name))]
[:div.flex-1]

View File

@@ -1680,6 +1680,11 @@
:else false))
(defn untitled-page?
[page-name]
(when-let [entity (db-utils/entity [:block/name (util/page-name-sanity-lc page-name)])]
(some? (parse-uuid page-name))))
(defn get-all-whiteboards
[repo]
(->> (d/q

View File

@@ -232,6 +232,7 @@ export default function App() {
isWhiteboardPage: () => false,
saveAsset: fileToBase64,
makeAssetUrl: a => a,
getBlockPageName: a => a + '_page'
}}
model={model}
onPersist={app => {

View File

@@ -64,13 +64,16 @@ export class BoundsUtils {
}
/**
* Get whether the bounds of A contain the bounds of B. A perfect match will return true.
* Get whether the bounds of A contain the bounds/point of B. A perfect match will return true.
*
* @param a Bounds
* @param b Bounds
* @param b Bounds|point
* @returns
*/
static boundsContain(a: TLBounds, b: TLBounds): boolean {
static boundsContain(a: TLBounds, b: TLBounds | number[]): boolean {
if (Array.isArray(b)) {
return a.minX < b[0] && a.minY < b[1] && a.maxY > b[1] && a.maxX > b[0]
}
return a.minX < b.minX && a.minY < b.minY && a.maxY > b.maxY && a.maxX > b.maxX
}