mirror of
https://github.com/penpot/penpot.git
synced 2025-03-10 14:51:37 -05:00
✨ Strip extension for uploaded image files
This commit is contained in:
parent
c3c667d4b5
commit
2190616957
3 changed files with 32 additions and 1 deletions
|
@ -746,3 +746,7 @@
|
||||||
:page-id page-id
|
:page-id page-id
|
||||||
:option :guides
|
:option :guides
|
||||||
:value new-guides}))))
|
:value new-guides}))))
|
||||||
|
|
||||||
|
(defn strip-image-extension [filename]
|
||||||
|
(let [image-extensions-re #"(\.png)|(\.jpg)|(\.jpeg)|(\.webp)|(\.gif)|(\.svg)$"]
|
||||||
|
(str/replace filename image-extensions-re "")))
|
||||||
|
|
26
common/test/common_tests/files_builder_test.cljc
Normal file
26
common/test/common_tests/files_builder_test.cljc
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
;; 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) KALEIDOS INC
|
||||||
|
|
||||||
|
(ns common-tests.files-builder-test
|
||||||
|
(:require
|
||||||
|
[app.common.files.builder :as builder]
|
||||||
|
[clojure.test :as t]))
|
||||||
|
|
||||||
|
(t/deftest test-strip-image-extension
|
||||||
|
(t/testing "removes extension from supported image files"
|
||||||
|
(t/is (= (builder/strip-image-extension "foo.png") "foo"))
|
||||||
|
(t/is (= (builder/strip-image-extension "foo.webp") "foo"))
|
||||||
|
(t/is (= (builder/strip-image-extension "foo.jpg") "foo"))
|
||||||
|
(t/is (= (builder/strip-image-extension "foo.jpeg") "foo"))
|
||||||
|
(t/is (= (builder/strip-image-extension "foo.svg") "foo"))
|
||||||
|
(t/is (= (builder/strip-image-extension "foo.gif") "foo")))
|
||||||
|
|
||||||
|
(t/testing "does not remove extension for unsupported files"
|
||||||
|
(t/is (= (builder/strip-image-extension "foo.txt") "foo.txt"))
|
||||||
|
(t/is (= (builder/strip-image-extension "foo.bmp") "foo.bmp")))
|
||||||
|
|
||||||
|
(t/testing "leaves filename intact when it has no extension"
|
||||||
|
(t/is (= (builder/strip-image-extension "README") "README"))))
|
|
@ -8,6 +8,7 @@
|
||||||
(:require
|
(:require
|
||||||
[app.common.data.macros :as dm]
|
[app.common.data.macros :as dm]
|
||||||
[app.common.exceptions :as ex]
|
[app.common.exceptions :as ex]
|
||||||
|
[app.common.files.builder :as fb]
|
||||||
[app.common.logging :as log]
|
[app.common.logging :as log]
|
||||||
[app.common.math :as mth]
|
[app.common.math :as mth]
|
||||||
[app.common.pages.changes-builder :as pcb]
|
[app.common.pages.changes-builder :as pcb]
|
||||||
|
@ -134,7 +135,7 @@
|
||||||
(= (.-type blob) "image/svg+xml")))
|
(= (.-type blob) "image/svg+xml")))
|
||||||
|
|
||||||
(prepare-blob [blob]
|
(prepare-blob [blob]
|
||||||
(let [name (or name (if (dmm/file? blob) (.-name blob) "blob"))]
|
(let [name (or name (if (dmm/file? blob) (fb/strip-image-extension (.-name blob)) "blob"))]
|
||||||
{:file-id file-id
|
{:file-id file-id
|
||||||
:name name
|
:name name
|
||||||
:is-local local?
|
:is-local local?
|
||||||
|
|
Loading…
Add table
Reference in a new issue