From f8cd14296f7e5e02978ab7d17b37074817bdcd0e Mon Sep 17 00:00:00 2001 From: Lungu Cristian Date: Mon, 4 Mar 2024 13:59:52 +0200 Subject: [PATCH] Add Promesa to simplify working with promises (#18767) * added promesa (clj) Signed-off-by: Cristian Lungu * ref(resize): using promesa instead of passing cb Signed-off-by: Cristian Lungu --------- Signed-off-by: Cristian Lungu --- .clj-kondo/funcool/promesa/config.edn | 9 + nix/deps/clojure/deps.json | 278 ++++++++++-------- nix/deps/clojure/deps.list | 52 ++-- shadow-cljs.edn | 1 + src/react_native/core.cljs | 9 +- src/react_native/image_resizer.cljs | 6 +- .../messenger/photo_selector/effects.cljs | 40 +-- 7 files changed, 217 insertions(+), 178 deletions(-) create mode 100644 .clj-kondo/funcool/promesa/config.edn diff --git a/.clj-kondo/funcool/promesa/config.edn b/.clj-kondo/funcool/promesa/config.edn new file mode 100644 index 0000000000..1844f77c5a --- /dev/null +++ b/.clj-kondo/funcool/promesa/config.edn @@ -0,0 +1,9 @@ +{:lint-as {promesa.core/-> clojure.core/-> + promesa.core/->> clojure.core/->> + promesa.core/as-> clojure.core/as-> + promesa.core/let clojure.core/let + promesa.core/plet clojure.core/let + promesa.core/loop clojure.core/loop + promesa.core/recur clojure.core/recur + promesa.core/with-redefs clojure.core/with-redefs + promesa.core/doseq clojure.core/doseq}} diff --git a/nix/deps/clojure/deps.json b/nix/deps/clojure/deps.json index 1935e5ed59..fd35f22ab9 100644 --- a/nix/deps/clojure/deps.json +++ b/nix/deps/clojure/deps.json @@ -90,20 +90,20 @@ }, { - "path": "cider/cider-nrepl/0.25.3/cider-nrepl-0.25.3", + "path": "cider/cider-nrepl/0.31.0/cider-nrepl-0.31.0", "host": "https://repo.clojars.org", "jar": { - "sha1": "5ae0efd9377a5e60c084bdaf4a2ce094f759ce23", - "sha256": "0drxf9nm23i1pcgrkwbcr09msq37csilzww38709add0hz8spjhq" + "sha1": "1f28a4a834a7a46cf24def971b1a705a6795c73a", + "sha256": "0h4pyzy8rzzh567khvimw2cs8jr640kqxgaxvbfx1s5yfp56fka2" } }, { - "path": "cider/piggieback/0.4.1/piggieback-0.4.1", + "path": "cider/piggieback/0.5.2/piggieback-0.5.2", "host": "https://repo.clojars.org", "jar": { - "sha1": "0a02a3e2ecd7a126ab60d8a44793342f20ced79b", - "sha256": "142vl5np33akcrnn6pksi0rjfsmmi528villxsj6cwcndvybiw4m" + "sha1": "ecfd5c286a85db3f059e75c37fca5722d9e26f79", + "sha256": "1ps9yf3cxmlm447hqkidjb5xry90n0wl3jk0jn28fagq31lzylkl" } }, @@ -251,15 +251,6 @@ } }, - { - "path": "com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1", - "host": "https://repo1.maven.org/maven2", - "jar": { - "sha1": "c9ad4a0850ab676c5c64461a05ca524cdfff59f1", - "sha256": "170rflxnqnah0265ik2aylmxkshyqbf2zas9bp2l32xqj9l6jsaf" - } - }, - { "path": "com/google/errorprone/error_prone_annotations/2.15.0/error_prone_annotations-2.15.0", "host": "https://repo1.maven.org/maven2", @@ -306,11 +297,11 @@ }, { - "path": "com/google/javascript/closure-compiler-unshaded/v20230411/closure-compiler-unshaded-v20230411", + "path": "com/google/javascript/closure-compiler-unshaded/v20230802/closure-compiler-unshaded-v20230802", "host": "https://repo1.maven.org/maven2", "jar": { - "sha1": "2f5d7ab921f9cc07ffeb4e1c0f156f164c650eeb", - "sha256": "0gphdrrhr88bcqa1scndachvhbayh7m11zm9hcsmvzn9bw72pabw" + "sha1": "0a2498a4d45bf5896042f31da0cd30c5e7b415af", + "sha256": "0jvgqq0gnvm4jw2zac4677ds05klvsjalszdzcq3nw8g7fjyjv2x" } }, @@ -333,38 +324,11 @@ }, { - "path": "commons-codec/commons-codec/1.15/commons-codec-1.15", + "path": "com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1", "host": "https://repo1.maven.org/maven2", "jar": { - "sha1": "49d94806b6e3dc933dacbd8acb0fdbab8ebd1e5d", - "sha256": "0qzd8v96j4x7jjcfpvvdh9ar1xhwxpxi2rh51nzhj0br7bbgdsdk" - } - }, - - { - "path": "commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4", - "host": "https://repo1.maven.org/maven2", - "jar": { - "sha1": "f95188e3d372e20e7328706c37ef366e5d7859b0", - "sha256": "1xyyl54sfxsdcwxdyq6b0azmr31b4dwqns850jjkw9a9dwrh5v54" - } - }, - - { - "path": "commons-io/commons-io/2.11.0/commons-io-2.11.0", - "host": "https://repo1.maven.org/maven2", - "jar": { - "sha1": "a2503f302b11ebde7ebc3df41daebe0e4eea3689", - "sha256": "020946yakki3qzc652arfndzi594drxanidz9bawbb6vhxnjy6wn" - } - }, - - { - "path": "compojure/compojure/1.5.2/compojure-1.5.2", - "host": "https://repo.clojars.org", - "jar": { - "sha1": "0b5258d0616ffc5f64c2b6d95f09de56d24df439", - "sha256": "1s2k05lwnlm9a66mxnsss437i9gp70dny8y2rlfkl090s6mdqsaf" + "sha1": "c9ad4a0850ab676c5c64461a05ca524cdfff59f1", + "sha256": "170rflxnqnah0265ik2aylmxkshyqbf2zas9bp2l32xqj9l6jsaf" } }, @@ -404,6 +368,42 @@ } }, + { + "path": "commons-codec/commons-codec/1.15/commons-codec-1.15", + "host": "https://repo1.maven.org/maven2", + "jar": { + "sha1": "49d94806b6e3dc933dacbd8acb0fdbab8ebd1e5d", + "sha256": "0qzd8v96j4x7jjcfpvvdh9ar1xhwxpxi2rh51nzhj0br7bbgdsdk" + } + }, + + { + "path": "commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4", + "host": "https://repo1.maven.org/maven2", + "jar": { + "sha1": "f95188e3d372e20e7328706c37ef366e5d7859b0", + "sha256": "1xyyl54sfxsdcwxdyq6b0azmr31b4dwqns850jjkw9a9dwrh5v54" + } + }, + + { + "path": "commons-io/commons-io/2.11.0/commons-io-2.11.0", + "host": "https://repo1.maven.org/maven2", + "jar": { + "sha1": "a2503f302b11ebde7ebc3df41daebe0e4eea3689", + "sha256": "020946yakki3qzc652arfndzi594drxanidz9bawbb6vhxnjy6wn" + } + }, + + { + "path": "compojure/compojure/1.5.2/compojure-1.5.2", + "host": "https://repo.clojars.org", + "jar": { + "sha1": "0b5258d0616ffc5f64c2b6d95f09de56d24df439", + "sha256": "1s2k05lwnlm9a66mxnsss437i9gp70dny8y2rlfkl090s6mdqsaf" + } + }, + { "path": "crypto-equality/crypto-equality/1.0.1/crypto-equality-1.0.1", "host": "https://repo.clojars.org", @@ -449,6 +449,15 @@ } }, + { + "path": "funcool/promesa/11.0.678/promesa-11.0.678", + "host": "https://repo.clojars.org", + "jar": { + "sha1": "0ee1690ba74b2609c2d85b51edacad13046a18e2", + "sha256": "1wif8nwdbpchwg56fz47ymjnflmva0fzy0bw1s6bacnac472pmza" + } + }, + { "path": "hiccup/hiccup/1.0.5/hiccup-1.0.5", "host": "https://repo.clojars.org", @@ -504,11 +513,11 @@ }, { - "path": "io/undertow/undertow-core/2.2.4.Final/undertow-core-2.2.4.Final", + "path": "io/undertow/undertow-core/2.3.10.Final/undertow-core-2.3.10.Final", "host": "https://repo1.maven.org/maven2", "jar": { - "sha1": "78650b4029dd9280c4769d9425b5559f12cb83bf", - "sha256": "1brpkd2l98byf76jga6hj5drv5sj2d93lxlq2xz0rxpqyqas1xm4" + "sha1": "96d1d5ca6406a75a285b95ea8f4b39e0fb2d707e", + "sha256": "1s1m5hfhmfr7jsp4bn4c6fhdbgiz72mz0a96494nyhfa0b4lql8l" } }, @@ -594,11 +603,11 @@ }, { - "path": "nrepl/nrepl/1.0.0/nrepl-1.0.0", + "path": "nrepl/nrepl/0.9.0/nrepl-0.9.0", "host": "https://repo.clojars.org", "jar": { - "sha1": "f47774c43493efdc879d36b95ebd67ea0d9c890a", - "sha256": "1fx5ssmixgqmklliw0ng8fjz41kkhys56x8dbwv9yqrfzws9f2x3" + "sha1": "49beada131959f08f9a20899affbd1b10c03a668", + "sha256": "1phak0479s27ffw9wzz7pi8cqqs6ipsm15dhgw9szxxcfhx529qa" } }, @@ -611,15 +620,6 @@ } }, - { - "path": "org/apache/ant/ant/1.10.11/ant-1.10.11", - "host": "https://repo1.maven.org/maven2", - "jar": { - "sha1": "b875cd48a0bc955ae9c5c477ad991e1f26fb24d2", - "sha256": "0m07pifkdpwghpp8wvqh14sbxazmjbkkpsfakw6ixq5apfdvih48" - } - }, - { "path": "org/apache/ant/ant-launcher/1.10.11/ant-launcher-1.10.11", "host": "https://repo1.maven.org/maven2", @@ -630,11 +630,11 @@ }, { - "path": "org/babashka/sci/0.7.38/sci-0.7.38", - "host": "https://repo.clojars.org", + "path": "org/apache/ant/ant/1.10.11/ant-1.10.11", + "host": "https://repo1.maven.org/maven2", "jar": { - "sha1": "ef2d8c74065b9a7d685a11bff017676db308a923", - "sha256": "04pkxwcgkd1p4f4rszsr6pp18fl0vni1az47a390llrhyyrjcckn" + "sha1": "b875cd48a0bc955ae9c5c477ad991e1f26fb24d2", + "sha256": "0m07pifkdpwghpp8wvqh14sbxazmjbkkpsfakw6ixq5apfdvih48" } }, @@ -647,6 +647,15 @@ } }, + { + "path": "org/babashka/sci/0.7.38/sci-0.7.38", + "host": "https://repo.clojars.org", + "jar": { + "sha1": "ef2d8c74065b9a7d685a11bff017676db308a923", + "sha256": "04pkxwcgkd1p4f4rszsr6pp18fl0vni1az47a390llrhyyrjcckn" + } + }, + { "path": "org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0", "host": "https://repo1.maven.org/maven2", @@ -737,15 +746,6 @@ } }, - { - "path": "org/clojure/google-closure-library/0.0-20230227-c7c0a541/google-closure-library-0.0-20230227-c7c0a541", - "host": "https://repo1.maven.org/maven2", - "jar": { - "sha1": "533ce2bdbb7925db781449abb6527af1e6c5e782", - "sha256": "0js19lw8bp9gym3pn47h867vhf65j18qc6x1pfn883vkwyasm18l" - } - }, - { "path": "org/clojure/google-closure-library-third-party/0.0-20230227-c7c0a541/google-closure-library-third-party-0.0-20230227-c7c0a541", "host": "https://repo1.maven.org/maven2", @@ -755,6 +755,15 @@ } }, + { + "path": "org/clojure/google-closure-library/0.0-20230227-c7c0a541/google-closure-library-0.0-20230227-c7c0a541", + "host": "https://repo1.maven.org/maven2", + "jar": { + "sha1": "533ce2bdbb7925db781449abb6527af1e6c5e782", + "sha256": "0js19lw8bp9gym3pn47h867vhf65j18qc6x1pfn883vkwyasm18l" + } + }, + { "path": "org/clojure/math.combinatorics/0.2.0/math.combinatorics-0.2.0", "host": "https://repo1.maven.org/maven2", @@ -782,15 +791,6 @@ } }, - { - "path": "org/clojure/tools.analyzer/1.1.0/tools.analyzer-1.1.0", - "host": "https://repo1.maven.org/maven2", - "jar": { - "sha1": "692882a35d7b50947d6e4852fba8a51d8d5e3646", - "sha256": "08fzw3srrppgq1d11sh1ghnyvi24ixa10kbqsncc7xyx7fybcs0k" - } - }, - { "path": "org/clojure/tools.analyzer.jvm/1.2.2/tools.analyzer.jvm-1.2.2", "host": "https://repo1.maven.org/maven2", @@ -800,6 +800,15 @@ } }, + { + "path": "org/clojure/tools.analyzer/1.1.0/tools.analyzer-1.1.0", + "host": "https://repo1.maven.org/maven2", + "jar": { + "sha1": "692882a35d7b50947d6e4852fba8a51d8d5e3646", + "sha256": "08fzw3srrppgq1d11sh1ghnyvi24ixa10kbqsncc7xyx7fybcs0k" + } + }, + { "path": "org/clojure/tools.cli/1.0.206/tools.cli-1.0.206", "host": "https://repo1.maven.org/maven2", @@ -828,11 +837,11 @@ }, { - "path": "org/clojure/tools.reader/1.3.6/tools.reader-1.3.6", + "path": "org/clojure/tools.reader/1.3.7/tools.reader-1.3.7", "host": "https://repo1.maven.org/maven2", "jar": { - "sha1": "927809dcb44fa726e4969d993e3e733636d95ebb", - "sha256": "1q5q7fmshybvp55f6qys8i5sbzfaix5v9f9b55dkbhv55hgv7l8i" + "sha1": "c60dfd3d79cbc5ec6264ba45c14b8d4c9b6708b2", + "sha256": "1mr0qx3gw1myfls07vrx3arwsi5n95b2lwk74ijpj0z3lzpzlj7m" } }, @@ -846,38 +855,38 @@ }, { - "path": "org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final", + "path": "org/jboss/logging/jboss-logging/3.4.3.Final/jboss-logging-3.4.3.Final", "host": "https://repo1.maven.org/maven2", "jar": { - "sha1": "40fd4d696c55793e996d1ff3c475833f836c2498", - "sha256": "1f7f4kjn3v6vibhgsr3k8hl0r2xq0c2rbcl82dx0bqg5jdyqgzlf" + "sha1": "c4bd7e12a745c0e7f6cf98c45cdcdf482fd827ea", + "sha256": "0jdcziqbdzmah981zv3q88k2zrnclr2h1k3h3vjn002m9p54qchb" } }, { - "path": "org/jboss/threads/jboss-threads/3.1.0.Final/jboss-threads-3.1.0.Final", + "path": "org/jboss/threads/jboss-threads/3.5.0.Final/jboss-threads-3.5.0.Final", "host": "https://repo1.maven.org/maven2", "jar": { - "sha1": "9b260c0302f637a84a52d3d118214a3c59217615", - "sha256": "0yc0p71y7yjhqjhkvqqi9xqgljavp3aslnik2k7dppbxnkrnlff9" + "sha1": "dd23d4788b3eafe9597ef3fe028e46ceb293ba8d", + "sha256": "1cchp54dw1578my27siim3h5jbf240aq8q6xd3z2b1ajgxxbcl71" } }, { - "path": "org/jboss/xnio/xnio-api/3.8.0.Final/xnio-api-3.8.0.Final", + "path": "org/jboss/xnio/xnio-api/3.8.8.Final/xnio-api-3.8.8.Final", "host": "https://repo1.maven.org/maven2", "jar": { - "sha1": "e2c29acf42ac6f42c34f0b74ba089e3f3d1b2394", - "sha256": "041qnvb74bkgmfxyd23vdl26il55cmfbhi6a4bm3fcmyrpapjfjl" + "sha1": "1ba9c8b9a8dea1c6cd656155943e6d4c2c631fa7", + "sha256": "0wvqdcbardi55l77aw5404qgw70384hw155xvc66shn7l6z8h6bh" } }, { - "path": "org/jboss/xnio/xnio-nio/3.8.0.Final/xnio-nio-3.8.0.Final", + "path": "org/jboss/xnio/xnio-nio/3.8.8.Final/xnio-nio-3.8.8.Final", "host": "https://repo1.maven.org/maven2", "jar": { - "sha1": "90c57dcf7f8c846b4da331d0e6e048c39842c92a", - "sha256": "1zndnb5648wqw23gj80zjqk3yd8gq6grqhz9n4zrcqixx1z586jf" + "sha1": "a5d2faf8d02e0a0bb9e9eabca8e38173cb640331", + "sha256": "0pxw2iv1q1yzk39knc650rg4vflsyjzhf07mwm2s5aqn5h82sk3i" } }, @@ -909,11 +918,20 @@ }, { - "path": "org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36", + "path": "org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9", "host": "https://repo1.maven.org/maven2", "jar": { - "sha1": "6c62681a2f655b49963a5983b8b0950a6120ae14", - "sha256": "1h512ry8g0nriazg3dqzs6s96502a77drw8vq26nfya97rg5gvyk" + "sha1": "7cf2726fdcfbc8610f9a71fb3ed639871f315340", + "sha256": "0v1b7iydpnh2rvyzqvqbqm19vr2qva8icq84690bppnpr06r6608" + } + }, + + { + "path": "org/slf4j/slf4j-nop/2.0.9/slf4j-nop-2.0.9", + "host": "https://repo1.maven.org/maven2", + "jar": { + "sha1": "fa0627049304bf501bf6a0e4d1416bcaec9a72a9", + "sha256": "10vdg9qkailjbzmf5mfnv328675swmnf1x3g9v7ymhxs29xkc4jn" } }, @@ -927,11 +945,11 @@ }, { - "path": "org/wildfly/common/wildfly-common/1.5.2.Final/wildfly-common-1.5.2.Final", + "path": "org/wildfly/common/wildfly-common/1.5.4.Final/wildfly-common-1.5.4.Final", "host": "https://repo1.maven.org/maven2", "jar": { - "sha1": "8eba40cfe86bcfcc223551e75201e6e7574c7c36", - "sha256": "17rkkm9dqbxdzpamwl9jr8z285awsj6hzpavzmc87wcz9469hp5b" + "sha1": "735ceee5616d5143bac1bc740e444697073c002f", + "sha256": "0sp48y3q7bmp3bjb7a6fpz8gb7ssizvxlw5wdv2xwa6mifpkrnlz" } }, @@ -944,15 +962,6 @@ } }, - { - "path": "reagent/reagent/1.2.0/reagent-1.2.0", - "host": "https://repo.clojars.org", - "jar": { - "sha1": "1b9a181b5c7ed3557768d2ea0c66f5616aef5e97", - "sha256": "0scvkzfqjs613z10rngh7427v3pxdqablf0fcl65pbpkzz16wgav" - } - }, - { "path": "re-com/re-com/2.8.0/re-com-2.8.0", "host": "https://repo.clojars.org", @@ -962,15 +971,6 @@ } }, - { - "path": "refactor-nrepl/refactor-nrepl/2.5.0/refactor-nrepl-2.5.0", - "host": "https://repo.clojars.org", - "jar": { - "sha1": "6bc3441afc94f7ca024e41a864ca75e05df7e207", - "sha256": "0w8hax99y98l53mixxzx2ja0vcnhjv8dnsaz1zj3vqk775ns5w6i" - } - }, - { "path": "re-frame/re-frame/1.3.0/re-frame-1.3.0", "host": "https://repo.clojars.org", @@ -998,6 +998,24 @@ } }, + { + "path": "reagent/reagent/1.2.0/reagent-1.2.0", + "host": "https://repo.clojars.org", + "jar": { + "sha1": "1b9a181b5c7ed3557768d2ea0c66f5616aef5e97", + "sha256": "0scvkzfqjs613z10rngh7427v3pxdqablf0fcl65pbpkzz16wgav" + } + }, + + { + "path": "refactor-nrepl/refactor-nrepl/3.9.1/refactor-nrepl-3.9.1", + "host": "https://repo.clojars.org", + "jar": { + "sha1": "f949af92dd1d6fef59d7447bd0cb62118e34eca1", + "sha256": "0dml9yvjmji6xk2sk3cdmkvvnh13rw29szxxl363hap8yg28xcs1" + } + }, + { "path": "ring-cors/ring-cors/0.1.8/ring-cors-0.1.8", "host": "https://repo.clojars.org", @@ -1035,11 +1053,11 @@ }, { - "path": "thheller/shadow-cljs/2.25.0/shadow-cljs-2.25.0-aot", + "path": "thheller/shadow-cljs/2.26.2/shadow-cljs-2.26.2-aot", "host": "https://repo.clojars.org", "jar": { - "sha1": "013921db91ce4a3616aec9c72c1832a014a0fece", - "sha256": "0ks380z7h8i2ylirvjgmlicq9jjpz9w71gjv521h4xs5fb273cl0" + "sha1": "ab6b31649cb03e352369698781207db4f6da6d5f", + "sha256": "0mh28nykpillkym7hvplrr7vy5hn6a2ymafyf4yfl5y2kfx4yq42" } }, @@ -1053,11 +1071,11 @@ }, { - "path": "thheller/shadow-undertow/0.3.1/shadow-undertow-0.3.1", + "path": "thheller/shadow-undertow/0.3.3/shadow-undertow-0.3.3", "host": "https://repo.clojars.org", "jar": { - "sha1": "9be444bea4037bb80b451cc52a8e80359c4c45be", - "sha256": "174s2rdxvp7d4jg9kvzjadps42bdsbi05rs2pjy5i0ssq9n23zwa" + "sha1": "ba377c3b70fd942b3ca7e38f055412a441626711", + "sha256": "10w2slj4znm93j0qq3ldj9hj0i7a50vbnmn6kv8i77fakikdjc48" } }, diff --git a/nix/deps/clojure/deps.list b/nix/deps/clojure/deps.list index 6f05ea5b88..5bfa793e69 100644 --- a/nix/deps/clojure/deps.list +++ b/nix/deps/clojure/deps.list @@ -8,8 +8,8 @@ borkdude/edamame/1.3.23/edamame-1.3.23.jar borkdude/sci.impl.reflector/0.0.1/sci.impl.reflector-0.0.1.jar camel-snake-kebab/camel-snake-kebab/0.4.3/camel-snake-kebab-0.4.3.jar cheshire/cheshire/5.11.0/cheshire-5.11.0.jar -cider/cider-nrepl/0.25.3/cider-nrepl-0.25.3.jar -cider/piggieback/0.4.1/piggieback-0.4.1.jar +cider/cider-nrepl/0.31.0/cider-nrepl-0.31.0.jar +cider/piggieback/0.5.2/piggieback-0.5.2.jar clj-kondo/clj-kondo/2023.09.07/clj-kondo-2023.09.07.jar cljs-bean/cljs-bean/1.9.0/cljs-bean-1.9.0.jar clout/clout/2.1.2/clout-2.1.2.jar @@ -26,35 +26,36 @@ com/github/javaparser/javaparser-core/3.25.3/javaparser-core-3.25.3.jar com/google/auto/value/auto-value-annotations/1.6/auto-value-annotations-1.6.jar com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar com/google/code/gson/gson/2.9.1/gson-2.9.1.jar -com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar com/google/errorprone/error_prone_annotations/2.15.0/error_prone_annotations-2.15.0.jar com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar com/google/guava/guava/31.0.1-jre/guava-31.0.1-jre.jar com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar -com/google/javascript/closure-compiler-unshaded/v20230411/closure-compiler-unshaded-v20230411.jar +com/google/javascript/closure-compiler-unshaded/v20230802/closure-compiler-unshaded-v20230802.jar com/google/protobuf/protobuf-java/3.21.12/protobuf-java-3.21.12.jar com/google/re2j/re2j/1.3/re2j-1.3.jar -commons-codec/commons-codec/1.15/commons-codec-1.15.jar -commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4.jar -commons-io/commons-io/2.11.0/commons-io-2.11.0.jar -compojure/compojure/1.5.2/compojure-1.5.2.jar +com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar com/taoensso/encore/3.68.0/encore-3.68.0.jar com/taoensso/timbre/6.3.1/timbre-6.3.1.jar com/taoensso/truss/1.11.0/truss-1.11.0.jar com/taoensso/tufte/2.6.3/tufte-2.6.3.jar +commons-codec/commons-codec/1.15/commons-codec-1.15.jar +commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4.jar +commons-io/commons-io/2.11.0/commons-io-2.11.0.jar +compojure/compojure/1.5.2/compojure-1.5.2.jar crypto-equality/crypto-equality/1.0.1/crypto-equality-1.0.1.jar crypto-random/crypto-random/1.2.1/crypto-random-1.2.1.jar day8/re-frame/test/0.1.5/test-0.1.5.jar expound/expound/0.9.0/expound-0.9.0.jar fipp/fipp/0.6.26/fipp-0.6.26.jar +funcool/promesa/11.0.678/promesa-11.0.678.jar hiccup/hiccup/1.0.5/hiccup-1.0.5.jar http-kit/http-kit/2.2.0/http-kit-2.2.0.jar instaparse/instaparse/1.4.0/instaparse-1.4.0.jar io/aviso/pretty/1.4.4/pretty-1.4.4.jar io/methvin/directory-watcher/0.17.1/directory-watcher-0.17.1.jar io/replikativ/datalog-parser/0.2.25/datalog-parser-0.2.25.jar -io/undertow/undertow-core/2.2.4.Final/undertow-core-2.2.4.Final.jar +io/undertow/undertow-core/2.3.10.Final/undertow-core-2.3.10.Final.jar javax/annotation/jsr250-api/1.0/jsr250-api-1.0.jar javax/servlet/servlet-api/2.5/servlet-api-2.5.jar javax/xml/bind/jaxb-api/2.3.0/jaxb-api-2.3.0.jar @@ -64,12 +65,12 @@ mvxcvi/arrangement/2.1.0/arrangement-2.1.0.jar net/cgrand/macrovich/0.2.1/macrovich-0.2.1.jar net/java/dev/jna/jna/5.12.1/jna-5.12.1.jar nrepl/bencode/1.1.0/bencode-1.1.0.jar -nrepl/nrepl/1.0.0/nrepl-1.0.0.jar +nrepl/nrepl/0.9.0/nrepl-0.9.0.jar nubank/matcher-combinators/3.8.8/matcher-combinators-3.8.8.jar -org/apache/ant/ant/1.10.11/ant-1.10.11.jar org/apache/ant/ant-launcher/1.10.11/ant-launcher-1.10.11.jar -org/babashka/sci/0.7.38/sci-0.7.38.jar +org/apache/ant/ant/1.10.11/ant-1.10.11.jar org/babashka/sci.impl.types/0.0.2/sci.impl.types-0.0.2.jar +org/babashka/sci/0.7.38/sci-0.7.38.jar org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0.jar org/clojure/clojure/1.11.1/clojure-1.11.1.jar org/clojure/clojurescript/1.11.60/clojurescript-1.11.60.jar @@ -80,41 +81,42 @@ org/clojure/core.rrb-vector/0.1.2/core.rrb-vector-0.1.2.jar org/clojure/core.specs.alpha/0.2.62/core.specs.alpha-0.2.62.jar org/clojure/data.json/2.4.0/data.json-2.4.0.jar org/clojure/data.priority-map/1.1.0/data.priority-map-1.1.0.jar -org/clojure/google-closure-library/0.0-20230227-c7c0a541/google-closure-library-0.0-20230227-c7c0a541.jar org/clojure/google-closure-library-third-party/0.0-20230227-c7c0a541/google-closure-library-third-party-0.0-20230227-c7c0a541.jar +org/clojure/google-closure-library/0.0-20230227-c7c0a541/google-closure-library-0.0-20230227-c7c0a541.jar org/clojure/math.combinatorics/0.2.0/math.combinatorics-0.2.0.jar org/clojure/spec.alpha/0.3.218/spec.alpha-0.3.218.jar org/clojure/test.check/1.1.1/test.check-1.1.1.jar -org/clojure/tools.analyzer/1.1.0/tools.analyzer-1.1.0.jar org/clojure/tools.analyzer.jvm/1.2.2/tools.analyzer.jvm-1.2.2.jar +org/clojure/tools.analyzer/1.1.0/tools.analyzer-1.1.0.jar org/clojure/tools.cli/1.0.206/tools.cli-1.0.206.jar org/clojure/tools.logging/1.1.0/tools.logging-1.1.0.jar org/clojure/tools.macro/0.1.5/tools.macro-0.1.5.jar -org/clojure/tools.reader/1.3.6/tools.reader-1.3.6.jar +org/clojure/tools.reader/1.3.7/tools.reader-1.3.7.jar org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar -org/jboss/logging/jboss-logging/3.4.1.Final/jboss-logging-3.4.1.Final.jar -org/jboss/threads/jboss-threads/3.1.0.Final/jboss-threads-3.1.0.Final.jar -org/jboss/xnio/xnio-api/3.8.0.Final/xnio-api-3.8.0.Final.jar -org/jboss/xnio/xnio-nio/3.8.0.Final/xnio-nio-3.8.0.Final.jar +org/jboss/logging/jboss-logging/3.4.3.Final/jboss-logging-3.4.3.Final.jar +org/jboss/threads/jboss-threads/3.5.0.Final/jboss-threads-3.5.0.Final.jar +org/jboss/xnio/xnio-api/3.8.8.Final/xnio-api-3.8.8.Final.jar +org/jboss/xnio/xnio-nio/3.8.8.Final/xnio-nio-3.8.8.Final.jar org/jspecify/jspecify/0.2.0/jspecify-0.2.0.jar org/msgpack/msgpack/0.6.12/msgpack-0.6.12.jar org/ow2/asm/asm/9.4/asm-9.4.jar -org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar +org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.jar +org/slf4j/slf4j-nop/2.0.9/slf4j-nop-2.0.9.jar org/wildfly/client/wildfly-client-config/1.0.1.Final/wildfly-client-config-1.0.1.Final.jar -org/wildfly/common/wildfly-common/1.5.2.Final/wildfly-common-1.5.2.Final.jar +org/wildfly/common/wildfly-common/1.5.4.Final/wildfly-common-1.5.4.Final.jar prismatic/schema/1.1.7/schema-1.1.7.jar -reagent/reagent/1.2.0/reagent-1.2.0.jar re-com/re-com/2.8.0/re-com-2.8.0.jar -refactor-nrepl/refactor-nrepl/2.5.0/refactor-nrepl-2.5.0.jar re-frame/re-frame/1.3.0/re-frame-1.3.0.jar re-frisk-remote/re-frisk-remote/1.6.0/re-frisk-remote-1.6.0.jar re-frisk/sente/1.15.0/sente-1.15.0.jar +reagent/reagent/1.2.0/reagent-1.2.0.jar +refactor-nrepl/refactor-nrepl/3.9.1/refactor-nrepl-3.9.1.jar ring-cors/ring-cors/0.1.8/ring-cors-0.1.8.jar ring/ring-codec/1.2.0/ring-codec-1.2.0.jar ring/ring-core/1.9.6/ring-core-1.9.6.jar thheller/shadow-client/1.3.3/shadow-client-1.3.3.jar -thheller/shadow-cljs/2.25.0/shadow-cljs-2.25.0-aot.jar +thheller/shadow-cljs/2.26.2/shadow-cljs-2.26.2-aot.jar thheller/shadow-cljsjs/0.0.22/shadow-cljsjs-0.0.22.jar -thheller/shadow-undertow/0.3.1/shadow-undertow-0.3.1.jar +thheller/shadow-undertow/0.3.3/shadow-undertow-0.3.3.jar thheller/shadow-util/0.7.0/shadow-util-0.7.0.jar tigris/tigris/0.1.2/tigris-0.1.2.jar diff --git a/shadow-cljs.edn b/shadow-cljs.edn index 750d4c8f11..7d889fcd58 100644 --- a/shadow-cljs.edn +++ b/shadow-cljs.edn @@ -10,6 +10,7 @@ [com.cognitect/transit-cljs "0.8.280"] [camel-snake-kebab "0.4.3"] [metosin/malli "0.13.0"] + [funcool/promesa "11.0.678"] ;; Dev dependencies [refactor-nrepl "3.9.1"] diff --git a/src/react_native/core.cljs b/src/react_native/core.cljs index ebce9d1728..3d795a7fe0 100644 --- a/src/react_native/core.cljs +++ b/src/react_native/core.cljs @@ -3,6 +3,7 @@ ["react" :as react] ["react-native" :as react-native] [oops.core :as oops] + [promesa.core :as p] [react-native.flat-list :as flat-list] [react-native.platform :as platform] [react-native.section-list :as section-list] @@ -29,7 +30,13 @@ (assoc props :source {:uri source}) props)]) -(defn image-get-size [uri callback] (.getSize ^js (.-Image ^js react-native) uri callback)) +(defn image-get-size + [uri] + (p/create (fn [res rej] + (.getSize ^js (.-Image ^js react-native) + uri + (fn [width height] (res [width height])) + rej)))) (def text (reagent/adapt-react-class (.-Text ^js react-native))) (def text-input (reagent/adapt-react-class (.-TextInput ^js react-native))) diff --git a/src/react_native/image_resizer.cljs b/src/react_native/image_resizer.cljs index 87cbeb0850..4c4a96ffe2 100644 --- a/src/react_native/image_resizer.cljs +++ b/src/react_native/image_resizer.cljs @@ -3,7 +3,5 @@ ["react-native-image-resizer" :default image-resizer])) (defn resize - [path max-width max-height quality on-resize on-error] - (-> (.createResizedImage image-resizer path max-width max-height "JPEG" quality 0 nil false) - (.then on-resize) - (.catch on-error))) + [{:keys [path max-width max-height quality]}] + (.createResizedImage image-resizer path max-width max-height "JPEG" quality 0 nil false)) diff --git a/src/status_im/contexts/chat/messenger/photo_selector/effects.cljs b/src/status_im/contexts/chat/messenger/photo_selector/effects.cljs index 35e4032a76..2c5d2736de 100644 --- a/src/status_im/contexts/chat/messenger/photo_selector/effects.cljs +++ b/src/status_im/contexts/chat/messenger/photo_selector/effects.cljs @@ -1,6 +1,7 @@ (ns status-im.contexts.chat.messenger.photo-selector.effects (:require [clojure.string :as string] + [promesa.core :as p] [react-native.cameraroll :as cameraroll] [react-native.core :as rn] [react-native.image-resizer :as image-resizer] @@ -29,27 +30,30 @@ #(rf/dispatch [:on-camera-roll-get-photos (:edges %) (:page_info %) end-cursor])))}))) (defn- resize-photo - [uri callback] - (rn/image-get-size - uri - (fn [width height] - (let [resize? (> (max width height) maximum-image-size-px)] - (image-resizer/resize - uri - (if resize? maximum-image-size-px width) - (if resize? maximum-image-size-px height) - 60 - (fn [^js resized-image] - (let [path (.-path resized-image) - path (if (string/starts-with? path "file") path (str "file://" path))] - (callback {:resized-uri path - :width width - :height height}))) - #(log/error "could not resize image" %)))))) + [uri] + (p/let [[width height] (rn/image-get-size uri) + resize? (> (max width height) + maximum-image-size-px) + resized-uri (-> (image-resizer/resize + {:max-width (if resize? maximum-image-size-px width) + :max-height (if resize? maximum-image-size-px height) + :path uri + :quality 60}) + (p/then (fn [^js resized-image] + (let [path (.-path resized-image)] + (if (string/starts-with? path "file") + path + (str "file://" path))))))] + {:resized-uri resized-uri + :width width + :height height})) (rf/reg-fx :effects.camera-roll/image-selected (fn [[image chat-id]] - (resize-photo (:uri image) #(rf/dispatch [:photo-selector/image-selected chat-id image %])))) + (-> (resize-photo (:uri image)) + (p/then #(rf/dispatch + [:photo-selector/image-selected chat-id image %])) + (p/catch #(log/error "could not resize image" %))))) (defn- get-albums [callback]