0
Fork 0
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:
Andrey Antukh 2021-03-05 15:22:28 +01:00
parent 34c4f23e49
commit 861d5f0064
2 changed files with 37 additions and 35 deletions

View file

@ -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)))))

View file

@ -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."