mirror of
https://github.com/penpot/penpot.git
synced 2025-07-23 22:57:19 +02:00
🐛 Fix decimal numbers in export viewbox
This commit is contained in:
parent
4360c1fe4b
commit
363a82d068
5 changed files with 64 additions and 20 deletions
38
frontend/src/app/util/strings.cljs
Normal file
38
frontend/src/app/util/strings.cljs
Normal file
|
@ -0,0 +1,38 @@
|
|||
;; This Source Code Form is subject to the terms of the Mozilla Public
|
||||
;; 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/.
|
||||
;;
|
||||
;; Copyright (c) UXBOX Labs SL
|
||||
|
||||
(ns app.util.strings
|
||||
(:require
|
||||
[cuerdas.core :as str]))
|
||||
|
||||
|
||||
(def ^:const trail-zeros-regex-1 #"\.0+$")
|
||||
(def ^:const trail-zeros-regex-2 #"(\.\d*[^0])0+$")
|
||||
|
||||
(defn format-precision
|
||||
"Creates a number with predetermined precision and then removes the trailing 0.
|
||||
Examples:
|
||||
12.0123, 0 => 12
|
||||
12.0123, 1 => 12
|
||||
12.0123, 2 => 12.01"
|
||||
[num precision]
|
||||
|
||||
(try
|
||||
(if (number? num)
|
||||
(let [num-str (.toFixed num precision)
|
||||
|
||||
;; Remove all trailing zeros after the comma 100.00000
|
||||
num-str (str/replace num-str trail-zeros-regex-1 "")
|
||||
|
||||
;; Remove trailing zeros after a decimal number: 0.001|00|
|
||||
num-str (if-let [m (re-find trail-zeros-regex-2 num-str)]
|
||||
(str/replace num-str (first m) (second m))
|
||||
num-str)]
|
||||
num-str)
|
||||
(str num))
|
||||
(catch :default _
|
||||
(str num))))
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue