mirror of
https://github.com/penpot/penpot.git
synced 2025-02-03 21:09:00 -05:00
✨ Fix incompatibilities with dateFns dependency.
This commit is contained in:
parent
34c4f23e49
commit
861d5f0064
2 changed files with 37 additions and 35 deletions
|
@ -5,49 +5,51 @@
|
||||||
;; This Source Code Form is "Incompatible With Secondary Licenses", as
|
;; This Source Code Form is "Incompatible With Secondary Licenses", as
|
||||||
;; defined by the Mozilla Public License, v. 2.0.
|
;; defined by the Mozilla Public License, v. 2.0.
|
||||||
;;
|
;;
|
||||||
;; Copyright (c) 2015-2020 Andrey Antukh <niwi@niwi.nz>
|
;; Copyright (c) 2015-2021 Andrey Antukh <niwi@niwi.nz>
|
||||||
|
|
||||||
(ns app.util.time
|
(ns app.util.time
|
||||||
(:require
|
(:require
|
||||||
["date-fns/format" :default df-format]
|
["date-fns/parseISO" :as dateFnsParseISO]
|
||||||
["date-fns/formatDistanceToNow" :default df-format-distance]
|
["date-fns/formatISO" :as dateFnsFormatISO]
|
||||||
["date-fns/formatDistanceToNowStrict" :default df-format-distance-strict]
|
["date-fns/format" :as dateFnsFormat]
|
||||||
["date-fns/locale/fr" :default df-fr-locale]
|
["date-fns/formatDistanceToNowStrict" :as dateFnsFormatDistanceToNowStrict]
|
||||||
["date-fns/locale/en-US" :default df-en-locale]
|
["date-fns/locale/fr" :as dateFnsLocalesFr]
|
||||||
["date-fns/locale/es" :default df-es-locale]
|
["date-fns/locale/en-US" :as dateFnsLocalesEnUs]
|
||||||
["date-fns/locale/ru" :default df-ru-locale]
|
["date-fns/locale/zh-CN" :as dateFnsLocalesZhCn]
|
||||||
[goog.object :as gobj]))
|
["date-fns/locale/es" :as dateFnsLocalesEs]
|
||||||
|
["date-fns/locale/ru" :as dateFnsLocalesRu]
|
||||||
|
[app.util.object :as obj]))
|
||||||
|
|
||||||
(def ^:private locales
|
(def ^:private locales
|
||||||
#js {:default df-en-locale
|
#js {:en dateFnsLocalesEnUs
|
||||||
:en df-en-locale
|
:fr dateFnsLocalesFr
|
||||||
:en_US df-en-locale
|
:es dateFnsLocalesEs
|
||||||
:fr df-fr-locale
|
:ru dateFnsLocalesRu
|
||||||
:fr_FR df-fr-locale
|
:zh_cn dateFnsLocalesZhCn})
|
||||||
:es df-es-locale
|
|
||||||
:es_ES df-es-locale
|
|
||||||
:ru df-ru-locale
|
|
||||||
:ru_RU df-ru-locale})
|
|
||||||
|
|
||||||
(defn now
|
(defn now
|
||||||
"Return the current Instant."
|
"Return the current Instant."
|
||||||
[]
|
[]
|
||||||
(js/Date.))
|
(js/Date.))
|
||||||
|
|
||||||
|
(defn parse
|
||||||
|
[v]
|
||||||
|
(^js dateFnsParseISO v))
|
||||||
|
|
||||||
|
(defn format-iso
|
||||||
|
[v]
|
||||||
|
(^js dateFnsFormatISO v))
|
||||||
|
|
||||||
(defn format
|
(defn format
|
||||||
([v fmt] (format v fmt nil))
|
([v fmt] (format v fmt nil))
|
||||||
([v fmt {:keys [locale]
|
([v fmt {:keys [locale] :or {locale "en"}}]
|
||||||
:or {locale "default"}}]
|
(dateFnsFormat v fmt #js {:locale (obj/get locales locale)})))
|
||||||
(df-format v fmt #js {:locale (gobj/get locales locale)})))
|
|
||||||
|
|
||||||
(defn timeago
|
(defn timeago
|
||||||
([v] (timeago v nil))
|
([v] (timeago v nil))
|
||||||
([v {:keys [seconds? locale]
|
([v {:keys [locale] :or {locale "en"}}]
|
||||||
:or {seconds? true
|
|
||||||
locale "default"}}]
|
|
||||||
(when v
|
(when v
|
||||||
(df-format-distance-strict v
|
(->> #js {:includeSeconds true
|
||||||
#js {:includeSeconds seconds?
|
|
||||||
:addSuffix true
|
:addSuffix true
|
||||||
:locale (gobj/get locales locale)}))))
|
:locale (obj/get locales locale)}
|
||||||
|
(dateFnsFormatDistanceToNowStrict v)))))
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
;; This Source Code Form is "Incompatible With Secondary Licenses", as
|
;; This Source Code Form is "Incompatible With Secondary Licenses", as
|
||||||
;; defined by the Mozilla Public License, v. 2.0.
|
;; defined by the Mozilla Public License, v. 2.0.
|
||||||
;;
|
;;
|
||||||
;; Copyright (c) 2020 UXBOX Labs SL
|
;; Copyright (c) 2020-2021 UXBOX Labs SL
|
||||||
|
|
||||||
(ns app.util.transit
|
(ns app.util.transit
|
||||||
"A lightweight abstraction for transit serialization."
|
"A lightweight abstraction for transit serialization."
|
||||||
|
|
Loading…
Add table
Reference in a new issue