From 1df42d28291e6dca3df1d8c5c4619d377187405a Mon Sep 17 00:00:00 2001 From: Milad Date: Thu, 8 Jun 2023 13:12:04 +0330 Subject: [PATCH 01/15] add component --- lefthook.yml | 34 +++++ resources/images/icons/diamond@2x.png | Bin 0 -> 1142 bytes resources/images/icons/diamond@3x.png | Bin 0 -> 1658 bytes resources/images/icons/drag@2x.png | Bin 0 -> 200 bytes resources/images/icons/drag@3x.png | Bin 0 -> 234 bytes resources/images/icons/monkey@2x.png | Bin 0 -> 4822 bytes resources/images/icons/monkey@3x.png | Bin 0 -> 9421 bytes resources/images/icons/pinterest@2x.png | Bin 0 -> 1098 bytes resources/images/icons/pinterest@3x.png | Bin 0 -> 1558 bytes resources/images/icons/status-logo@2x.png | Bin 0 -> 1284 bytes resources/images/icons/status-logo@3x.png | Bin 0 -> 1858 bytes resources/images/icons/verified_cloud@2x.png | Bin 0 -> 974 bytes resources/images/icons/verified_cloud@3x.png | Bin 0 -> 1325 bytes resources/images/mock2/contact.png | Bin 0 -> 1431 bytes resources/images/mock2/diamond.png | Bin 0 -> 1760 bytes resources/images/mock2/monkey.png | Bin 0 -> 9421 bytes resources/images/mock2/pinterest.png | Bin 0 -> 1558 bytes resources/images/mock2/verified.png | Bin 0 -> 1325 bytes .../settings/reorder_item/component_spec.cljs | 14 ++ .../settings/reorder_item/items/item.cljs | 44 +++++++ .../reorder_item/items/item_placeholder.cljs | 17 +++ .../reorder_item/items/item_skeleton.cljs | 8 ++ .../reorder_item/items/item_tabs.cljs | 35 +++++ .../settings/reorder_item/style.cljs | 122 ++++++++++++++++++ .../settings/reorder_item/view.cljs | 42 ++++++ src/quo2/components/tabs/segmented_tab.cljs | 8 +- src/quo2/components/tabs/tab/view.cljs | 20 ++- src/quo2/core.cljs | 4 +- src/quo2/core_spec.cljs | 3 +- src/react_native/core.cljs | 3 +- src/status_im2/common/resources.cljs | 7 +- src/status_im2/contexts/quo_preview/main.cljs | 8 +- .../quo_preview/settings/reorder_item.cljs | 80 ++++++++++++ 33 files changed, 435 insertions(+), 14 deletions(-) create mode 100644 lefthook.yml create mode 100644 resources/images/icons/diamond@2x.png create mode 100644 resources/images/icons/diamond@3x.png create mode 100644 resources/images/icons/drag@2x.png create mode 100644 resources/images/icons/drag@3x.png create mode 100644 resources/images/icons/monkey@2x.png create mode 100644 resources/images/icons/monkey@3x.png create mode 100644 resources/images/icons/pinterest@2x.png create mode 100644 resources/images/icons/pinterest@3x.png create mode 100644 resources/images/icons/status-logo@2x.png create mode 100644 resources/images/icons/status-logo@3x.png create mode 100644 resources/images/icons/verified_cloud@2x.png create mode 100644 resources/images/icons/verified_cloud@3x.png create mode 100644 resources/images/mock2/contact.png create mode 100644 resources/images/mock2/diamond.png create mode 100644 resources/images/mock2/monkey.png create mode 100644 resources/images/mock2/pinterest.png create mode 100644 resources/images/mock2/verified.png create mode 100644 src/quo2/components/settings/reorder_item/component_spec.cljs create mode 100644 src/quo2/components/settings/reorder_item/items/item.cljs create mode 100644 src/quo2/components/settings/reorder_item/items/item_placeholder.cljs create mode 100644 src/quo2/components/settings/reorder_item/items/item_skeleton.cljs create mode 100644 src/quo2/components/settings/reorder_item/items/item_tabs.cljs create mode 100644 src/quo2/components/settings/reorder_item/style.cljs create mode 100644 src/quo2/components/settings/reorder_item/view.cljs create mode 100644 src/status_im2/contexts/quo_preview/settings/reorder_item.cljs diff --git a/lefthook.yml b/lefthook.yml new file mode 100644 index 00000000000..af073d45502 --- /dev/null +++ b/lefthook.yml @@ -0,0 +1,34 @@ +# EXAMPLE USAGE +# Refer for explanation to following link: +# https://github.com/evilmartians/lefthook/blob/master/docs/full_guide.md +# +# pre-push: +# commands: +# packages-audit: +# tags: frontend security +# run: yarn audit +# gems-audit: +# tags: backend security +# run: bundle audit +# +# pre-commit: +# parallel: true +# commands: +# eslint: +# glob: "*.{js,ts}" +# run: yarn eslint {staged_files} +# rubocop: +# tags: backend style +# glob: "*.rb" +# exclude: "application.rb|routes.rb" +# run: bundle exec rubocop --force-exclusion {all_files} +# govet: +# tags: backend style +# files: git ls-files -m +# glob: "*.go" +# run: go vet {files} +# scripts: +# "hello.js": +# runner: node +# "any.go": +# runner: go run diff --git a/resources/images/icons/diamond@2x.png b/resources/images/icons/diamond@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..de741979fc39455215e1a665a643be0c33081142 GIT binary patch literal 1142 zcmV-+1d02JP)`;Mb)g zR+sCdp&94EoSgAl{6eHhN;k^vdi?naXx15=2hb0Vw6O&E=_qgT;DOm0|PkoK|-GJd0@cB6CF=@)o;rHd2kMcE#AeX;^Gce2z5f|Ei!}*rN1bYlm}#; zpF_rAo$}5op5$N|*`q>U;5pbuWD`o{A{SsY$S5*$iZTbpQDhcj8ZwS1D5rHfcBP4f z|J&a9eU;%`gGXNbWwnXVD=lxF|6pMJ-fz%{|4AM&p~;bREuVN|rO9Kj-#41~jaz@T zQ9DtGKI(;24-$UlY}3ncu7x)nhUz0Y^z1Nn&@#Z0p}MqSzz)0u z?kgC`@%W7n$Fb2^U-KO!@qa)154l$2XjW*i1NJhLM&u#3G~W*S8HN zo{Z2%+W>;XX!(wR=Jt-p&tz@Q@3KQr5BDXW=*s}2{+wgw{?@EhB2z*Kp~T&&*Szu6 z>uHs^{nEDq#QMV=st>n}*k1^HVfFi0?{5;XQ*ok5#Q(uy`7pV64TQ1`u11zM7TV6-nTzNtz@Avh-%Vi8! zsvdBmFj~EvS8D>rej4R64)SMDjfA97dBvV#6zYXk%4IZiV~asp*eMp zw5{?E8HIr@at={OMv*P3MQ$Tk#t!AdE>Py3Zr}nk1~mamyDFn{b88+MgF2Y>s|?s| z**G_m5#*kz*M9XDG6AE6lvm{)!n#q;m)wD80L2qE&@k9WSRIWXzE=ryi-3I|gK31) z7VH&gzR~^DZzX1nt&(i@|Kk3cbCdEj?&FW1KK76=#U**^CF~wjtg|46&uf3|5oEKu zY|EAon{mL7GS#EusSki0f8ka>YaQyE6WX+oV!Z07*qo IM6N<$g1I;ossI20 literal 0 HcmV?d00001 diff --git a/resources/images/icons/diamond@3x.png b/resources/images/icons/diamond@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..77161a2d0454907617c67a10cd31946f9b25c7f7 GIT binary patch literal 1658 zcmV-=28H>FP)|+T1a<5H@arSxEocdNCGWoo#k#5rV#;S ztZg{Zg*cg|Y-OdsrRHKMuJtDp*wwDM zMOL~7ke!YQiLIOJkHeL?QE zjf5u1aHiRUdT9`<6%$s51hNx>6wm})#t?m782aOoHYSzV^G@qi(}BG5j)m7gC^xm2 zDgwV10;i)Szy4FivE?+ik9|9Wk&R)*1*tM=P#}tJ+%-Dmc#6Yp9U?Rr#!S!l;+u!C zW-5paGMu#0@K{D0EY91X9x1Qy9EY7ca#6V%Q-0Y(@vRc#K)VI8FxTF* zeEURkFBg@Yxo|vUp>(5FAitpO64kw2{M^iiUCo|o;g_pPYjrUW%Br~I(u#Yz__-Ow z!FpG7(AFl<>mQZ_#bH`;FP9)UV>s>Wj7KIk@%Mp&!dCDNJlQ^J*t4r7>u4zyWN;ZX{QzXbof$&p|YRqXF<1@@Wz_aZL+p+_7>YYf`{+(h}Ae;}Qv zIFd428`>Nd4}7l=mWFZpr>oG3R)K7C{jGHq6`$E97H4E2`o|V`3#eG?49ViW`rR8y zm9<3;iS|OVvMorY0XRN!a&~e6Q7P`JRZm%_6o*C9O)Ql(yV>>^>i;CyG*R4)E$66I zR9?UQF_PT}COw@A~Y;oWTa z`KD((i=#7Rc@e8Xj4J)}uwgtz;dfj*@C?qn)47V+1!7d`KTJ(@u-E)1Zyf1dMOy?? zrT?Is$hIpu+}}IZ7FRk~(H4Oiuk_F2To_eb5sSkj)%wSn&Q-KcAjT{GPmHQ9p|SRf zGo7nwt3XU+`d7{KG}b(0|6cPv^{Krb>0AX1lt%}sPyaLH%{7r*9JVW+ zD=2itf?VA6&%wIBCUR?^cBXR$ofW7){nrm*x%O#yI#w6M+<1q>WL1Hb#-GgV-<-NNq7SS_qZld zVntO1>{GilG>tJ9vpu&)J_`B!xzv^VhNkHb2jYG7r>pTAu^WwzO#-obQQBWbpF#Kh zk=Irgo)c!PIdhHbfY2L&bUW3!V}9j*&4-0-c}2kJ>9wpZ&b{2giu!s03t8)yfcOl( zx0b%Zp@hA~uTzBWapZ;rY4ikQgOgF1?QtSaCH8>Jk=57_R()Kmkyf_oB5UH^2}Cz7 z1eU_k)Xr+ujo;3)$y=J9No0jwF@1hFd8^J;7;CNWh^J+?o>xxO^b%FyMuuWl+Cgew zRD*i`Hi0MSTFC!@SluR&gvirp?@+Oqug;R1TDA%N586FsA>JegmjD0&07*qoM6N<$ Ef`jB0u>b%7 literal 0 HcmV?d00001 diff --git a/resources/images/icons/drag@2x.png b/resources/images/icons/drag@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4faf45986950010340574755c2175aca822eabc5 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEoCO|{#S9E$svykh8Km+7D9BhG zdlVR$=NL3F z>}fEbaACU6>1}WRpY!Fn4PjzXaPMl__BSTvK&|Zh(`UFm`%i6P_RWeZIG8VLpiy^0 qbT@-N$Cp0&lB0SD_?Z|2uJgOw2&t~vbNm3%A_h-aKbLh*2~7aFramSB literal 0 HcmV?d00001 diff --git a/resources/images/icons/drag@3x.png b/resources/images/icons/drag@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..8218232e32399baf8e85e882da06967c1f0cb4b9 GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1|+Ti+$;i8oCO|{#S9FJ79h;%I?XTvD9BhG z z@$+Mv>!2ReWGFj>J7;d*vc}j<^9oL&o-fOn9Qs&d*(3QqGSIW~&bsH-|F(Fx8qR-f zQZ!xE*LqJ-qDT5Fy%?iC%cs|+x$c)`VlZ*_KEH6O^rEGV4M#IxT5c(E-eLkYsN@0n X!*V00@_)B?0C^0au6{1-oD!M<7W_?Z literal 0 HcmV?d00001 diff --git a/resources/images/icons/monkey@2x.png b/resources/images/icons/monkey@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f92577dbd6da88c8c2666c83679fd60991ddb09e GIT binary patch literal 4822 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 literal 0 HcmV?d00001 diff --git a/resources/images/icons/monkey@3x.png b/resources/images/icons/monkey@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..d289db96e7e05a561996145b82b54fb187d897d5 GIT binary patch literal 9421 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 TDPG_f00000NkvXXu0mjf3tazJ literal 0 HcmV?d00001 diff --git a/resources/images/icons/pinterest@2x.png b/resources/images/icons/pinterest@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2ff837a3dca2a73f653115b2cc1aa24918106a9f GIT binary patch literal 1098 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 TDPG_f00000NkvXXu0mjf3tazJ literal 0 HcmV?d00001 diff --git a/resources/images/mock2/pinterest.png b/resources/images/mock2/pinterest.png new file mode 100644 index 0000000000000000000000000000000000000000..71de92646b7ec2689fc4bcfff177027a62585f06 GIT binary patch literal 1558 zcmV+x2I={UP)^Vn2ouiLAXkq7VB(AhVd~AX}LMPy{U{nm)(@7+z;u0Q<;CZv}qqv1`$DSOq z7N-!ANP>Sh2h0>I*Xd^tV+Y_^Pr?|DV(kPpSup!fr(oaSDX|PCII~RWq;sEyCR&2o zg>4wqXsHVe>85jEuZEF2$}U}t*GcRO)Z`7QYVPKP1%z#WDMz zxUr043dT^_L>4-Rsam>;-6xiz@xKz<>q1#Lj<`)6$YB5IQFQe8A(_cI-)*k0qP+YE z*6%Lj@%*odhA}l_6($3F1$C&o@)9)JH*y3|zw@T^Dx*T;*M6GA%GGNq-(Q9X;A{5#bfflqh~5oS(wd@iA=N-?I9lvu~m6SPqH=T3ITX#<+7(CY5DtswX$5If04#`SHiQHy6Z#Ot7>FZ^mCYeymqZ?9xw-z3jYC_cmHh zCStFz?tVOf3vnV#TFQdi{gx-*ZzvI&E}zvzZpve|JB~B#_T^>u80OVYQCmvXkZ@N2 z#pzuH$LrEdW6os2wT|Cv9N+#J=KlV%`oZ~+p#vGq61Aly$K68&xU6K@wL5*o5)0d0 zUBf@MWX2xg7t1xcj&&ItVeW|9gn}zD@&+gPh%}q{^G$g6f_R$kufbK}YZtW%V>pe{ z_lN;+*5%msPXoPh`@@T$I@84{@Ftw7O=w}BM9-W3v(VlFtg^>bNR$eTPU+~zxVyf^ zYg-)qJbY=6yI%6L6--$S69$bRb`BBn#;5HF>D5=;xtHlp-PwTuO%7bznlzmdY^3q3GHbs-~hA5g{n@QvqQ+D{Ytl zVh)_4#PC(v{#;STFs@3W>lvr*($Gbc(tP+ut1!*661IP<#qzbNh;@#D2J_~?Bn|Oe zdrt8YZntpTQP8CJGyuEzPVX5P>Ade&y-l6Sk1g>=xuG#{*2B)HkQk5h*iuXnrnTI~ zomxQ0h5f|#=wa2`n53+E8u8%>ClfuC9^5j8N`(sA_R!WI%nBuzUgAORZC#Z1SavB39?HI)3T^4)QBaKF zLGj>v5DB8jgXl%wJqU`5kzK@#nB9Y}Zj$l$dnR$RCNu9%X2ucc1KCYx-c073-~0XE z_q`b)CMG5(=EK84$PE7@_E`o->5I2o7P5wcngz@n7LLzPiV{K~G|}d?FzYKgLvOdD z|HV|3X^d3IMHK-Oif9(xSixnAsOi==4B-icfU01I+qHT`VE7hkie?te$nyK@!M9P8 zISd?wCUjwA_8d3=7N&eNgc|jN8U|os(e1)SAGGZmS)+mJ zCDGAr5D|mA`8w5TYe%|SM*$IJO+H9juiGHzi|^57HimZ>Nw^X)jAe+@e=!eH(RPC zT4z2yDC0loFtKfW=kvl+4f)bxEWKP-I$mWy?%KV>6rA7qWtU(^Tq-LIW~42p>y=a8 zKDdgeEHNkN%F`o454bcY5z=*S4cKuHy*3{K81~Hc^hE z*>b`oZBhLH|DOvq{;nE|M&8Y19-jOpx#B@IS3bVo0uSu}=DRLY6WemKLbJ7G1Hz80 z4GZQx_7fVGO7^8_J4v^L*Z-2MkoEkP-YOd5H#~Uu6dB6ruRi&-vu*9r5b|Ga>JrRM zoIi`3j~Cz<(v>wZR=Zf~SsYwN*UFXU^*eHBt%NN9%EH-2mG9rB3o!7*XJ%(R3%A1t z*%an!`QX?Do)>?!%m9s>PpTA+2V z{+D>-(oPS)z0ycP$h#UEaDKC|-o5$FZ`RIZUxp_OS5hxfsEUAALuI!yuwC~!o+fhc zPG7wuKl>(_;YGoWPIFC${}Tl&Yy;g@KmECJ^*AbtyGEU4ESZPA9M zH*|#sMOwLo$LroI&^lBkmw=lV=2Y8ii%z6aLIg=S5!@1RYbD|kB7~FA?uDnErezqx zb`KFi+Ro<~*Ez&$CHc% Date: Thu, 8 Jun 2023 13:12:04 +0330 Subject: [PATCH 02/15] finalize components --- .../reorder_item/items/item_placeholder.cljs | 2 +- .../settings/reorder_item/view.cljs | 34 ++++++++++--------- src/status_im2/contexts/quo_preview/main.cljs | 2 +- 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/src/quo2/components/settings/reorder_item/items/item_placeholder.cljs b/src/quo2/components/settings/reorder_item/items/item_placeholder.cljs index b38510d9d04..9afd26cabb4 100644 --- a/src/quo2/components/settings/reorder_item/items/item_placeholder.cljs +++ b/src/quo2/components/settings/reorder_item/items/item_placeholder.cljs @@ -8,7 +8,7 @@ [rn/view {:on-long-press drag :delay-long-press 100 - :accessibility-label :chat-drag-handle + :accessibility-label :reorder-placerholder-drag-handle :style style/placeholder-container} [text/text {:style style/placeholder-text diff --git a/src/quo2/components/settings/reorder_item/view.cljs b/src/quo2/components/settings/reorder_item/view.cljs index 0daef12c751..df04520d828 100644 --- a/src/quo2/components/settings/reorder_item/view.cljs +++ b/src/quo2/components/settings/reorder_item/view.cljs @@ -1,5 +1,5 @@ (ns quo2.components.settings.reorder-item.view - (:require [react-native.core :as rn] + (:require [quo.react-native :as rn] [react-native.platform :as platform] [quo2.components.settings.reorder-item.items.item :as item] [reagent.core :as reagent] @@ -22,21 +22,23 @@ "tab" [tab/view data default-active]))) (defn on-drag-end-fn - [data-js data] - (reset! data data-js) + [data atom-data] + (reset! atom-data data) (reagent/flush)) (defn reorder-item [data] - (let [atom-data (reagent/atom data)] - [rn/view - {:style style/container} - [rn/draggable-flatlist - {:key-fn :id - :accessibility-label :sortable-list - :data [] - :render-fn (fn [] [rn/view]) - :autoscroll-threshold (if platform/android? 150 250) - :autoscroll-speed (if platform/android? 10 150) - :content-container-style {:padding-vertical 20} - :shows-vertical-scroll-indicator false - }]])) + (reagent/with-let [atom-data (reagent/atom data)] + (fn [] + [rn/view + {:style style/container} + [rn/draggable-flat-list + {:key-fn :id + :accessibility-label :sortable-list + :data @atom-data + :render-fn render-fn + :autoscroll-threshold (if platform/android? 150 250) + :autoscroll-speed (if platform/android? 10 150) + :content-container-style {:padding-vertical 20} + :shows-vertical-scroll-indicator false + :on-drag-end-fn (fn [_ _ data] + (on-drag-end-fn data atom-data))}]]))) diff --git a/src/status_im2/contexts/quo_preview/main.cljs b/src/status_im2/contexts/quo_preview/main.cljs index 8fea5e5a1dd..adaf3171a3e 100644 --- a/src/status_im2/contexts/quo_preview/main.cljs +++ b/src/status_im2/contexts/quo_preview/main.cljs @@ -77,7 +77,7 @@ [status-im2.contexts.quo-preview.settings.accounts :as accounts] [status-im2.contexts.quo-preview.settings.settings-list :as settings-list] [status-im2.contexts.quo-preview.settings.privacy-option :as privacy-option] - [status-im2.contexts.quo-preview.setting.reorder-item :as reorder-item] + [status-im2.contexts.quo-preview.settings.reorder-item :as reorder-item] [status-im2.contexts.quo-preview.share.qr-code :as qr-code] [status-im2.contexts.quo-preview.share.share-qr-code :as share-qr-code] [status-im2.contexts.quo-preview.switcher.switcher-cards :as switcher-cards] From 0b02afce5706ca5282a3bbebedeb8b9d6b4ab72e Mon Sep 17 00:00:00 2001 From: Milad Date: Thu, 8 Jun 2023 13:12:04 +0330 Subject: [PATCH 03/15] add tests --- .../settings/reorder_item/component_spec.cljs | 34 ++++++++++++++----- .../settings/reorder_item/items/item.cljs | 2 +- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/quo2/components/settings/reorder_item/component_spec.cljs b/src/quo2/components/settings/reorder_item/component_spec.cljs index ea24820cfc8..7cc954f934e 100644 --- a/src/quo2/components/settings/reorder_item/component_spec.cljs +++ b/src/quo2/components/settings/reorder_item/component_spec.cljs @@ -1,14 +1,30 @@ (ns quo2.components.settings.reorder-item.component-spec - (:require [quo2.components.settings.reorder-item.view :as sortable-list] - [quo2.components.settings.reorder-item.items.item :as item] + (:require [quo2.components.settings.reorder-item.items.item :as item] + [quo2.components.settings.reorder-item.items.item-placeholder :as placeholder] + [quo2.components.settings.reorder-item.items.item-skeleton :as skeleton] + [quo2.components.settings.reorder-item.items.item-tabs :as tab] [test-helpers.component :as h])) -(def data [{:id 1 :type "item" :label "Item 1"} - {:id 2 :type "item" :label "Item 2"} - {:id 3 :type "item" :label "Item 3"}]) +(h/describe + "sortable list items tests" + (h/test "renders item" + (h/render [item/view + {:id 1 + :type "item" + :image-size 24 + :title "Item 1"}]) + (h/is-truthy (h/get-by-text "Item 1"))) -(h/describe "sortable list items tests" - (h/test "renders item" - (h/debug (h/render [item/view {:id 1 :type "item" :label "Item 1"}])) - (h/is-truthy (h/get-by-text "Item 1")))) + (h/test "renders item placeholder" + (h/render [placeholder/view "Item 1" false]) + (h/is-truthy (h/get-by-text "Item 1"))) + (h/test "renders item skeleton" + (let [component (h/render [skeleton/view])] + (h/is-truthy component))) + + (h/test "renders item tab" + (h/render [tab/view + [{:id 1 + :label "Item 1"}] 1]) + (h/is-truthy (h/get-by-text "Item 1")))) \ No newline at end of file diff --git a/src/quo2/components/settings/reorder_item/items/item.cljs b/src/quo2/components/settings/reorder_item/items/item.cljs index ee97eae2ce9..d18604ebea3 100644 --- a/src/quo2/components/settings/reorder_item/items/item.cljs +++ b/src/quo2/components/settings/reorder_item/items/item.cljs @@ -1,4 +1,4 @@ -(ns quo2.components.settings.reorder-item.items.item +(ns quo2.components.settings.reorder-item.items.item (:require [quo.react-native :as rn] [status-im.ui.components.icons.icons :as icons] [quo2.components.settings.reorder-item.style :as style] From 75283253a869b3230cab790770989b4c4d7730c5 Mon Sep 17 00:00:00 2001 From: Milad Date: Thu, 8 Jun 2023 15:46:32 +0330 Subject: [PATCH 04/15] fix dark mode --- .../settings/reorder_item/items/item.cljs | 11 ++--- .../reorder_item/items/item_placeholder.cljs | 4 +- .../reorder_item/items/item_skeleton.cljs | 2 +- .../reorder_item/items/item_tabs.cljs | 12 +++--- .../settings/reorder_item/style.cljs | 40 ++++++++++++------- .../settings/reorder_item/view.cljs | 5 +-- src/quo2/components/tabs/segmented_tab.cljs | 4 +- src/quo2/components/tabs/tab/view.cljs | 14 +++---- .../quo_preview/settings/reorder_item.cljs | 16 ++++---- 9 files changed, 57 insertions(+), 51 deletions(-) diff --git a/src/quo2/components/settings/reorder_item/items/item.cljs b/src/quo2/components/settings/reorder_item/items/item.cljs index d18604ebea3..7eb3d7adc14 100644 --- a/src/quo2/components/settings/reorder_item/items/item.cljs +++ b/src/quo2/components/settings/reorder_item/items/item.cljs @@ -2,7 +2,8 @@ (:require [quo.react-native :as rn] [status-im.ui.components.icons.icons :as icons] [quo2.components.settings.reorder-item.style :as style] - [quo2.components.markdown.text :as text])) + [quo2.components.markdown.text :as text] + [quo2.components.icon :as quo2-icons])) (defn view [{:keys @@ -16,8 +17,8 @@ {:on-long-press drag :delay-long-press 100 :accessibility-label :chat-drag-handle - :style style/item-container} - [icons/icon :main-icons/drag {:style style/left-icon}] + :style (style/item-container)} + [icons/icon :main-icons/drag {:style (style/left-icon)}] [rn/view {:style style/body-container} [rn/view @@ -40,5 +41,5 @@ (when right-text [text/text {:style style/right-text} right-text]) (when right-icon - [rn/view {:style style/right-icon-container} right-icon])]] - [icons/tiny-icon :tiny-icons/chevron-right style/chevron]]) + [rn/view {:style style/right-icon-container} [quo2-icons/icon right-icon (style/right-icon)]])]] + [icons/tiny-icon :tiny-icons/chevron-right (style/chevron)]]) diff --git a/src/quo2/components/settings/reorder_item/items/item_placeholder.cljs b/src/quo2/components/settings/reorder_item/items/item_placeholder.cljs index 9afd26cabb4..f374c01a103 100644 --- a/src/quo2/components/settings/reorder_item/items/item_placeholder.cljs +++ b/src/quo2/components/settings/reorder_item/items/item_placeholder.cljs @@ -9,9 +9,9 @@ {:on-long-press drag :delay-long-press 100 :accessibility-label :reorder-placerholder-drag-handle - :style style/placeholder-container} + :style (style/placeholder-container)} [text/text - {:style style/placeholder-text + {:style (style/placeholder-text) :weight :regular} label] ]) diff --git a/src/quo2/components/settings/reorder_item/items/item_skeleton.cljs b/src/quo2/components/settings/reorder_item/items/item_skeleton.cljs index 71d85243896..db6bd910857 100644 --- a/src/quo2/components/settings/reorder_item/items/item_skeleton.cljs +++ b/src/quo2/components/settings/reorder_item/items/item_skeleton.cljs @@ -5,4 +5,4 @@ (defn view [] [rn/view - {:style style/skeleton-container}]) + {:style (style/skeleton-container)}]) diff --git a/src/quo2/components/settings/reorder_item/items/item_tabs.cljs b/src/quo2/components/settings/reorder_item/items/item_tabs.cljs index 0fcd6e56f9b..64aab7401d4 100644 --- a/src/quo2/components/settings/reorder_item/items/item_tabs.cljs +++ b/src/quo2/components/settings/reorder_item/items/item_tabs.cljs @@ -1,9 +1,9 @@ (ns quo2.components.settings.reorder-item.items.item-tabs (:require [quo2.components.tabs.segmented-tab :as quo2] [quo.react-native :as rn] - [quo2.foundations.colors :as colors] [quo.components.text :as text] - [quo2.components.settings.reorder-item.style :as style])) + [quo2.components.settings.reorder-item.style :as style] + [quo2.components.icon :as quo2-icons])) (defn transform-data [data] @@ -15,7 +15,7 @@ [rn/image {:source (:image %) :style style/tab-item-image}] - [rn/view {:style style/tab-item-image} (:icon %)]) + [rn/view {:style style/tab-item-image} (quo2-icons/icon (:icon %) (style/right-icon))]) [text/text {:style style/tab-item-label :width :medium} @@ -28,8 +28,8 @@ {:default-active default-active :size 32 :blur? false - :container-style style/tab-container - :item-container-style style/segmented-tab-item-container - :inactive-background-color colors/neutral-30 + :container-style (style/tab-container) + :item-container-style (style/segmented-tab-item-container) + :active-item-container-style (style/active-segmented-tab-item-container) :data (transform-data data) :on-change #(println "Active tab" %)}]) diff --git a/src/quo2/components/settings/reorder_item/style.cljs b/src/quo2/components/settings/reorder_item/style.cljs index 0a52c3b2218..2bc6b445bd4 100644 --- a/src/quo2/components/settings/reorder_item/style.cljs +++ b/src/quo2/components/settings/reorder_item/style.cljs @@ -1,13 +1,13 @@ (ns quo2.components.settings.reorder-item.style (:require [quo2.foundations.colors :as colors])) -(def container +(defn container [] {:padding-horizontal 20 :background-color (colors/theme-colors colors/neutral-10 colors/neutral-100)}) -(def item-container +(defn item-container [] {:flex 1 :flex-direction :row :align-items :center @@ -15,11 +15,13 @@ :border-radius 16 :margin-bottom 24 :background-color (colors/theme-colors - colors/custom-color :white + colors/white colors/neutral-90)}) -(def left-icon - {:color colors/neutral-50}) +(defn left-icon [] + {:color (colors/theme-colors + colors/neutral-50 + colors/neutral-40)}) (def body-container {:flex 1 @@ -37,7 +39,7 @@ (def item-text {:font-size 15}) -(def chevron +(defn chevron [] {:color (colors/theme-colors colors/neutral-50 colors/neutral-40) @@ -50,7 +52,7 @@ (def right-text {:font-size 15 - :color colors/neutral-50}) + :color colors/neutral-40}) (def text-container {:flex 1 @@ -58,17 +60,17 @@ :justify-content "space-between" :margin-right 6}) -(def right-icon +(defn right-icon [] {:height 20 :width 20 :color (colors/theme-colors - colors/neutral-50 + colors/neutral-40 colors/neutral-40)}) (def right-icon-container {:justify-content :center}) -(def placeholder-container +(defn placeholder-container [] {:background-color :transparent :border-width 1 :border-color (colors/theme-colors @@ -81,13 +83,13 @@ :margin-bottom 24 :border-style :dashed}) -(def placeholder-text +(defn placeholder-text [] {:color (colors/theme-colors colors/neutral-40 colors/neutral-50) :font-size 13}) -(def skeleton-container +(defn skeleton-container [] {:background-color (colors/theme-colors colors/neutral-5 colors/neutral-95) @@ -95,18 +97,26 @@ :margin-bottom 24 :height 48}) -(def tab-container +(defn tab-container [] {:background-color (colors/theme-colors colors/neutral-5 colors/neutral-95) :padding 10 :margin-bottom 24}) -(def segmented-tab-item-container +(defn segmented-tab-item-container [] {:height 40 :border-width 1 :border-style :dashed - :border-color colors/neutral-30}) + :border-color (colors/theme-colors + colors/neutral-30 + colors/neutral-60)}) + +(defn active-segmented-tab-item-container [] + {:height 40 + :background-color (colors/theme-colors + colors/neutral-30 + colors/neutral-90)}) (def tab-item-container {:flex-direction :row diff --git a/src/quo2/components/settings/reorder_item/view.cljs b/src/quo2/components/settings/reorder_item/view.cljs index df04520d828..a50fda04524 100644 --- a/src/quo2/components/settings/reorder_item/view.cljs +++ b/src/quo2/components/settings/reorder_item/view.cljs @@ -28,9 +28,8 @@ (defn reorder-item [data] (reagent/with-let [atom-data (reagent/atom data)] - (fn [] [rn/view - {:style style/container} + {:style (style/container)} [rn/draggable-flat-list {:key-fn :id :accessibility-label :sortable-list @@ -41,4 +40,4 @@ :content-container-style {:padding-vertical 20} :shows-vertical-scroll-indicator false :on-drag-end-fn (fn [_ _ data] - (on-drag-end-fn data atom-data))}]]))) + (on-drag-end-fn data atom-data))}]])) diff --git a/src/quo2/components/tabs/segmented_tab.cljs b/src/quo2/components/tabs/segmented_tab.cljs index 04745acb599..fea90012d34 100644 --- a/src/quo2/components/tabs/segmented_tab.cljs +++ b/src/quo2/components/tabs/segmented_tab.cljs @@ -16,7 +16,7 @@ (defn segmented-control [{:keys [default-active on-change]}] (let [active-tab-id (reagent/atom default-active)] - (fn [{:keys [data size override-theme blur? container-style item-container-style inactive-background-color]}] + (fn [{:keys [data size override-theme blur? container-style item-container-style active-item-container-style]}] (let [active-id @active-tab-id] [rn/view (merge @@ -37,7 +37,7 @@ :flex 1} [tab/view {:id id - :inactive-background-color inactive-background-color + :active-item-container-style active-item-container-style :item-container-style item-container-style :segmented? true :size size diff --git a/src/quo2/components/tabs/tab/view.cljs b/src/quo2/components/tabs/tab/view.cljs index 95976ce7bd5..7d3467132de 100644 --- a/src/quo2/components/tabs/tab/view.cljs +++ b/src/quo2/components/tabs/tab/view.cljs @@ -51,7 +51,7 @@ active before item-container-style - inactive-background-color + active-item-container-style blur? disabled id @@ -81,18 +81,16 @@ [notification-dot/notification-dot {:style style/notification-dot}]) [rn/view - {:style (merge + {:style (merge (style/tab {:size size + :background-color (if (and segmented? (not active)) + :transparent + background-color) :disabled disabled :segmented? segmented? :show-notification-dot? show-notification-dot?}) - item-container-style - {:background-color (if (and segmented? (not active)) - :transparent - (if inactive-background-color - inactive-background-color - background-color))})} + (if active active-item-container-style item-container-style))} (when before [rn/view [icons/icon before {:color icon-color}]]) diff --git a/src/status_im2/contexts/quo_preview/settings/reorder_item.cljs b/src/status_im2/contexts/quo_preview/settings/reorder_item.cljs index 46b8b52ce4f..de20e1f4f69 100644 --- a/src/status_im2/contexts/quo_preview/settings/reorder_item.cljs +++ b/src/status_im2/contexts/quo_preview/settings/reorder_item.cljs @@ -2,34 +2,32 @@ (:require [quo2.core :as quo] [react-native.core :as rn] - [status-im2.common.resources :as resources] - [quo2.components.icon :as quo2-icons] - [quo2.components.drawers.action-drawers.style :as style])) + [status-im2.common.resources :as resources])) (def mock-data [{:id 1 :type "item" :image (resources/get-mock-image :diamond) :image-size 24 - :right-icon [quo2-icons/icon :i/world style/right-icon] + :right-icon :i/world :title "Trip to Bahamas"} {:id 2 :type "item" :image (resources/get-mock-image :status-logo) :image-size 24 - :right-icon [quo2-icons/icon :i/world style/right-icon] + :right-icon :i/world :title "Status"} {:id 3 :type "item" :image (resources/tokens :eth) :image-size 24 - :right-icon [quo2-icons/icon :i/world style/right-icon] + :right-icon :i/world :title "Ethereum"} {:id 4 :type "item" :image (resources/get-mock-image :monkey) :image-size 36 - :right-icon [quo2-icons/icon :i/world style/right-icon] + :right-icon :i/world :title "3045" :subtitle "Bored Ape Yatch Club"} {:id 5 @@ -53,7 +51,7 @@ :default-active 1 :data [{:id 1 :label "Everyone" - :icon (quo2-icons/icon :i/world style/right-icon)} + :icon :i/world} {:id 2 :label "Contacts" :image (resources/get-mock-image :contact)} @@ -65,7 +63,7 @@ :default-active 1 :data [{:id 1 :label "Everyone" - :icon (quo2-icons/icon :i/world style/right-icon)} + :icon :i/world} {:id 2 :label "Contacts" :image (resources/get-mock-image :contact)} From 6bfdb86dff8eebe7148bb1c97b553c0191de3f52 Mon Sep 17 00:00:00 2001 From: Milad Date: Thu, 8 Jun 2023 17:44:12 +0330 Subject: [PATCH 05/15] make it pixel perfect --- .../settings/reorder_item/items/item.cljs | 9 +++-- .../reorder_item/items/item_tabs.cljs | 2 +- .../settings/reorder_item/style.cljs | 33 +++++++++++-------- .../quo_preview/settings/reorder_item.cljs | 10 +++--- 4 files changed, 32 insertions(+), 22 deletions(-) diff --git a/src/quo2/components/settings/reorder_item/items/item.cljs b/src/quo2/components/settings/reorder_item/items/item.cljs index 7eb3d7adc14..284c48e7c63 100644 --- a/src/quo2/components/settings/reorder_item/items/item.cljs +++ b/src/quo2/components/settings/reorder_item/items/item.cljs @@ -3,7 +3,8 @@ [status-im.ui.components.icons.icons :as icons] [quo2.components.settings.reorder-item.style :as style] [quo2.components.markdown.text :as text] - [quo2.components.icon :as quo2-icons])) + [quo2.components.icon :as quo2-icons] + [quo2.foundations.colors :as colors])) (defn view [{:keys @@ -17,8 +18,10 @@ {:on-long-press drag :delay-long-press 100 :accessibility-label :chat-drag-handle - :style (style/item-container)} - [icons/icon :main-icons/drag {:style (style/left-icon)}] + :style (merge (style/item-container) (when subtitle style/item-container-extended))} + [icons/icon :main-icons/drag {:color (colors/theme-colors + colors/neutral-50 + colors/neutral-40) :width 19 :height 19 }] [rn/view {:style style/body-container} [rn/view diff --git a/src/quo2/components/settings/reorder_item/items/item_tabs.cljs b/src/quo2/components/settings/reorder_item/items/item_tabs.cljs index 64aab7401d4..19777f79df3 100644 --- a/src/quo2/components/settings/reorder_item/items/item_tabs.cljs +++ b/src/quo2/components/settings/reorder_item/items/item_tabs.cljs @@ -15,7 +15,7 @@ [rn/image {:source (:image %) :style style/tab-item-image}] - [rn/view {:style style/tab-item-image} (quo2-icons/icon (:icon %) (style/right-icon))]) + [rn/view {:style style/tab-item-image} (quo2-icons/icon (:icon %) (style/tab-icon))]) [text/text {:style style/tab-item-label :width :medium} diff --git a/src/quo2/components/settings/reorder_item/style.cljs b/src/quo2/components/settings/reorder_item/style.cljs index 2bc6b445bd4..8985c1587dd 100644 --- a/src/quo2/components/settings/reorder_item/style.cljs +++ b/src/quo2/components/settings/reorder_item/style.cljs @@ -2,7 +2,7 @@ (:require [quo2.foundations.colors :as colors])) (defn container [] - {:padding-horizontal 20 + {:padding-horizontal 36 :background-color (colors/theme-colors colors/neutral-10 colors/neutral-100)}) @@ -11,17 +11,17 @@ {:flex 1 :flex-direction :row :align-items :center - :padding 12 + :padding-horizontal 10 :border-radius 16 - :margin-bottom 24 + :margin-bottom 21 + :height 44 :background-color (colors/theme-colors colors/white colors/neutral-90)}) -(defn left-icon [] - {:color (colors/theme-colors - colors/neutral-50 - colors/neutral-40)}) +(def item-container-extended + {:height 50}) + (def body-container {:flex 1 @@ -29,7 +29,7 @@ :flex-direction :row :align-items :center}) -(def image-container {:margin-right 12}) +(def image-container {:margin-right 8}) (defn image [size] @@ -37,7 +37,7 @@ :height size}) (def item-text - {:font-size 15}) + {:font-size 14}) (defn chevron [] {:color (colors/theme-colors @@ -101,7 +101,7 @@ {:background-color (colors/theme-colors colors/neutral-5 colors/neutral-95) - :padding 10 + :padding 6 :margin-bottom 24}) (defn segmented-tab-item-container [] @@ -124,9 +124,16 @@ :align-items :center}) (def tab-item-image - {:height 20 - :width 20 - :margin-right 6}) + {:height 19 + :width 19 + :margin-right 3}) (def tab-item-label {:font-size 14}) + +(defn tab-icon [] + {:height 16 + :width 16 + :color (colors/theme-colors + colors/neutral-40 + colors/neutral-40)}) diff --git a/src/status_im2/contexts/quo_preview/settings/reorder_item.cljs b/src/status_im2/contexts/quo_preview/settings/reorder_item.cljs index de20e1f4f69..ac5cd391e34 100644 --- a/src/status_im2/contexts/quo_preview/settings/reorder_item.cljs +++ b/src/status_im2/contexts/quo_preview/settings/reorder_item.cljs @@ -8,32 +8,32 @@ [{:id 1 :type "item" :image (resources/get-mock-image :diamond) - :image-size 24 + :image-size 21 :right-icon :i/world :title "Trip to Bahamas"} {:id 2 :type "item" :image (resources/get-mock-image :status-logo) - :image-size 24 + :image-size 21 :right-icon :i/world :title "Status"} {:id 3 :type "item" :image (resources/tokens :eth) - :image-size 24 + :image-size 21 :right-icon :i/world :title "Ethereum"} {:id 4 :type "item" :image (resources/get-mock-image :monkey) - :image-size 36 + :image-size 30 :right-icon :i/world :title "3045" :subtitle "Bored Ape Yatch Club"} {:id 5 :type "item" :image (resources/get-mock-image :pinterest) - :image-size 24 + :image-size 21 :right-text "@sheralito" :title "Pinterest"} {:id 6 From 3c7f2f76e4ab382ed519aa74d44beabf0dc4ee36 Mon Sep 17 00:00:00 2001 From: Milad Date: Thu, 8 Jun 2023 19:04:18 +0330 Subject: [PATCH 06/15] remove status-im icons usage --- src/quo2/components/settings/reorder_item/items/item.cljs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/quo2/components/settings/reorder_item/items/item.cljs b/src/quo2/components/settings/reorder_item/items/item.cljs index 284c48e7c63..9b77fc4f6b6 100644 --- a/src/quo2/components/settings/reorder_item/items/item.cljs +++ b/src/quo2/components/settings/reorder_item/items/item.cljs @@ -1,6 +1,5 @@ (ns quo2.components.settings.reorder-item.items.item (:require [quo.react-native :as rn] - [status-im.ui.components.icons.icons :as icons] [quo2.components.settings.reorder-item.style :as style] [quo2.components.markdown.text :as text] [quo2.components.icon :as quo2-icons] @@ -19,7 +18,7 @@ :delay-long-press 100 :accessibility-label :chat-drag-handle :style (merge (style/item-container) (when subtitle style/item-container-extended))} - [icons/icon :main-icons/drag {:color (colors/theme-colors + [quo2-icons/icon :main-icons/drag {:color (colors/theme-colors colors/neutral-50 colors/neutral-40) :width 19 :height 19 }] [rn/view @@ -45,4 +44,4 @@ [text/text {:style style/right-text} right-text]) (when right-icon [rn/view {:style style/right-icon-container} [quo2-icons/icon right-icon (style/right-icon)]])]] - [icons/tiny-icon :tiny-icons/chevron-right (style/chevron)]]) + [quo2-icons/icon :tiny-icons/chevron-right (style/chevron)]]) From 0e6145409205a9a65d40cb939b53e92a2b5a55dc Mon Sep 17 00:00:00 2001 From: Milad Date: Thu, 8 Jun 2023 19:12:15 +0330 Subject: [PATCH 07/15] fix lint issues --- .../settings/reorder_item/component_spec.cljs | 38 ++-- .../settings/reorder_item/items/item.cljs | 17 +- .../reorder_item/items/item_placeholder.cljs | 8 +- .../reorder_item/items/item_skeleton.cljs | 4 +- .../reorder_item/items/item_tabs.cljs | 23 +-- .../settings/reorder_item/style.cljs | 175 ++++++++++-------- .../settings/reorder_item/view.cljs | 45 ++--- src/quo2/components/tabs/segmented_tab.cljs | 43 ++--- src/status_im2/contexts/quo_preview/main.cljs | 2 +- .../quo_preview/settings/reorder_item.cljs | 104 +++++------ 10 files changed, 238 insertions(+), 221 deletions(-) diff --git a/src/quo2/components/settings/reorder_item/component_spec.cljs b/src/quo2/components/settings/reorder_item/component_spec.cljs index 7cc954f934e..68e94354e30 100644 --- a/src/quo2/components/settings/reorder_item/component_spec.cljs +++ b/src/quo2/components/settings/reorder_item/component_spec.cljs @@ -6,25 +6,25 @@ [test-helpers.component :as h])) (h/describe - "sortable list items tests" - (h/test "renders item" - (h/render [item/view - {:id 1 - :type "item" - :image-size 24 - :title "Item 1"}]) - (h/is-truthy (h/get-by-text "Item 1"))) + "sortable list items tests" + (h/test "renders item" + (h/render [item/view + {:id 1 + :type "item" + :image-size 24 + :title "Item 1"}]) + (h/is-truthy (h/get-by-text "Item 1"))) - (h/test "renders item placeholder" - (h/render [placeholder/view "Item 1" false]) - (h/is-truthy (h/get-by-text "Item 1"))) + (h/test "renders item placeholder" + (h/render [placeholder/view "Item 1" false]) + (h/is-truthy (h/get-by-text "Item 1"))) - (h/test "renders item skeleton" - (let [component (h/render [skeleton/view])] - (h/is-truthy component))) + (h/test "renders item skeleton" + (let [component (h/render [skeleton/view])] + (h/is-truthy component))) - (h/test "renders item tab" - (h/render [tab/view - [{:id 1 - :label "Item 1"}] 1]) - (h/is-truthy (h/get-by-text "Item 1")))) \ No newline at end of file + (h/test "renders item tab" + (h/render [tab/view + [{:id 1 + :label "Item 1"}] 1]) + (h/is-truthy (h/get-by-text "Item 1")))) \ No newline at end of file diff --git a/src/quo2/components/settings/reorder_item/items/item.cljs b/src/quo2/components/settings/reorder_item/items/item.cljs index 9b77fc4f6b6..e19d23f6346 100644 --- a/src/quo2/components/settings/reorder_item/items/item.cljs +++ b/src/quo2/components/settings/reorder_item/items/item.cljs @@ -1,5 +1,5 @@ (ns quo2.components.settings.reorder-item.items.item - (:require [quo.react-native :as rn] + (:require [quo.react-native :as rn] [quo2.components.settings.reorder-item.style :as style] [quo2.components.markdown.text :as text] [quo2.components.icon :as quo2-icons] @@ -18,26 +18,29 @@ :delay-long-press 100 :accessibility-label :chat-drag-handle :style (merge (style/item-container) (when subtitle style/item-container-extended))} - [quo2-icons/icon :main-icons/drag {:color (colors/theme-colors - colors/neutral-50 - colors/neutral-40) :width 19 :height 19 }] + [quo2-icons/icon :main-icons/drag + {:color (colors/theme-colors + colors/neutral-50 + colors/neutral-40) + :width 19 + :height 19}] [rn/view {:style style/body-container} [rn/view {:style style/image-container} [rn/image {:source image - :style (style/image image-size)}]] + :style (style/image image-size)}]] [rn/view {:style style/text-container} [rn/view [text/text - {:style style/item-text + {:style style/item-text :weight :medium} title] (when subtitle [text/text - {:style style/item-subtitle + {:style style/item-subtitle :weight :regular} subtitle])] (when right-text diff --git a/src/quo2/components/settings/reorder_item/items/item_placeholder.cljs b/src/quo2/components/settings/reorder_item/items/item_placeholder.cljs index f374c01a103..f19fd9282a3 100644 --- a/src/quo2/components/settings/reorder_item/items/item_placeholder.cljs +++ b/src/quo2/components/settings/reorder_item/items/item_placeholder.cljs @@ -1,7 +1,7 @@ -(ns quo2.components.settings.reorder-item.items.item-placeholder +(ns quo2.components.settings.reorder-item.items.item-placeholder (:require [react-native.core :as rn] [quo2.components.markdown.text :as text] - [ quo2.components.settings.reorder-item.style :as style])) + [quo2.components.settings.reorder-item.style :as style])) (defn view [label drag] @@ -11,7 +11,7 @@ :accessibility-label :reorder-placerholder-drag-handle :style (style/placeholder-container)} [text/text - {:style (style/placeholder-text) + {:style (style/placeholder-text) :weight :regular} label] - ]) + ]) diff --git a/src/quo2/components/settings/reorder_item/items/item_skeleton.cljs b/src/quo2/components/settings/reorder_item/items/item_skeleton.cljs index db6bd910857..2a8fe738268 100644 --- a/src/quo2/components/settings/reorder_item/items/item_skeleton.cljs +++ b/src/quo2/components/settings/reorder_item/items/item_skeleton.cljs @@ -1,6 +1,6 @@ -(ns quo2.components.settings.reorder-item.items.item-skeleton +(ns quo2.components.settings.reorder-item.items.item-skeleton (:require [quo.react-native :as rn] - [ quo2.components.settings.reorder-item.style :as style])) + [quo2.components.settings.reorder-item.style :as style])) (defn view [] diff --git a/src/quo2/components/settings/reorder_item/items/item_tabs.cljs b/src/quo2/components/settings/reorder_item/items/item_tabs.cljs index 19777f79df3..ed1323c3750 100644 --- a/src/quo2/components/settings/reorder_item/items/item_tabs.cljs +++ b/src/quo2/components/settings/reorder_item/items/item_tabs.cljs @@ -1,4 +1,4 @@ -(ns quo2.components.settings.reorder-item.items.item-tabs +(ns quo2.components.settings.reorder-item.items.item-tabs (:require [quo2.components.tabs.segmented-tab :as quo2] [quo.react-native :as rn] [quo.components.text :as text] @@ -8,14 +8,15 @@ (defn transform-data [data] (map #(assoc % - :id (:id %) + :id (:id %) :label [rn/view {:style style/tab-item-container} (if (contains? % :image) [rn/image {:source (:image %) - :style style/tab-item-image}] - [rn/view {:style style/tab-item-image} (quo2-icons/icon (:icon %) (style/tab-icon))]) + :style style/tab-item-image}] + [rn/view {:style style/tab-item-image} + (quo2-icons/icon (:icon %) (style/tab-icon))]) [text/text {:style style/tab-item-label :width :medium} @@ -25,11 +26,11 @@ (defn view [data default-active] [quo2/segmented-control - {:default-active default-active - :size 32 - :blur? false - :container-style (style/tab-container) - :item-container-style (style/segmented-tab-item-container) + {:default-active default-active + :size 32 + :blur? false + :container-style (style/tab-container) + :item-container-style (style/segmented-tab-item-container) :active-item-container-style (style/active-segmented-tab-item-container) - :data (transform-data data) - :on-change #(println "Active tab" %)}]) + :data (transform-data data) + :on-change #(println "Active tab" %)}]) diff --git a/src/quo2/components/settings/reorder_item/style.cljs b/src/quo2/components/settings/reorder_item/style.cljs index 8985c1587dd..68c9c2f70b8 100644 --- a/src/quo2/components/settings/reorder_item/style.cljs +++ b/src/quo2/components/settings/reorder_item/style.cljs @@ -1,139 +1,150 @@ -(ns quo2.components.settings.reorder-item.style +(ns quo2.components.settings.reorder-item.style (:require [quo2.foundations.colors :as colors])) -(defn container [] +(defn container + [] {:padding-horizontal 36 - :background-color (colors/theme-colors - colors/neutral-10 - colors/neutral-100)}) - -(defn item-container [] - {:flex 1 - :flex-direction :row - :align-items :center + :background-color (colors/theme-colors + colors/neutral-10 + colors/neutral-100)}) + +(defn item-container + [] + {:flex 1 + :flex-direction :row + :align-items :center :padding-horizontal 10 - :border-radius 16 - :margin-bottom 21 - :height 44 - :background-color (colors/theme-colors - colors/white - colors/neutral-90)}) + :border-radius 16 + :margin-bottom 21 + :height 44 + :background-color (colors/theme-colors + colors/white + colors/neutral-90)}) (def item-container-extended {:height 50}) -(def body-container - {:flex 1 - :margin-left 12 +(def body-container + {:flex 1 + :margin-left 12 :flex-direction :row - :align-items :center}) + :align-items :center}) (def image-container {:margin-right 8}) -(defn image +(defn image [size] {:width size :height size}) -(def item-text +(def item-text {:font-size 14}) -(defn chevron [] - {:color (colors/theme-colors - colors/neutral-50 - colors/neutral-40) +(defn chevron + [] + {:color (colors/theme-colors + colors/neutral-50 + colors/neutral-40) :height 14 - :width 14}) + :width 14}) -(def item-subtitle - {:color colors/neutral-50 +(def item-subtitle + {:color colors/neutral-50 :font-size 13}) -(def right-text +(def right-text {:font-size 15 - :color colors/neutral-40}) + :color colors/neutral-40}) (def text-container - {:flex 1 - :flex-direction :row + {:flex 1 + :flex-direction :row :justify-content "space-between" - :margin-right 6}) + :margin-right 6}) -(defn right-icon [] +(defn right-icon + [] {:height 20 - :width 20 - :color (colors/theme-colors - colors/neutral-40 - colors/neutral-40)}) + :width 20 + :color (colors/theme-colors + colors/neutral-40 + colors/neutral-40)}) (def right-icon-container {:justify-content :center}) -(defn placeholder-container [] +(defn placeholder-container + [] {:background-color :transparent - :border-width 1 - :border-color (colors/theme-colors - colors/neutral-30 - colors/neutral-80) - :padding 12 - :justify-content :center - :align-items :center - :border-radius 16 - :margin-bottom 24 - :border-style :dashed}) - -(defn placeholder-text [] - {:color (colors/theme-colors - colors/neutral-40 - colors/neutral-50) + :border-width 1 + :border-color (colors/theme-colors + colors/neutral-30 + colors/neutral-80) + :padding 12 + :justify-content :center + :align-items :center + :border-radius 16 + :margin-bottom 24 + :border-style :dashed}) + +(defn placeholder-text + [] + {:color (colors/theme-colors + colors/neutral-40 + colors/neutral-50) :font-size 13}) -(defn skeleton-container [] +(defn skeleton-container + [] {:background-color (colors/theme-colors colors/neutral-5 colors/neutral-95) - :border-radius 16 - :margin-bottom 24 - :height 48}) + :border-radius 16 + :margin-bottom 24 + :height 48}) -(defn tab-container [] +(defn tab-container + [] {:background-color (colors/theme-colors colors/neutral-5 colors/neutral-95) - :padding 6 - :margin-bottom 24}) + :padding 6 + :margin-bottom 24}) -(defn segmented-tab-item-container [] - {:height 40 - :border-width 1 - :border-style :dashed +(defn segmented-tab-item-container + [] + {:height 40 + :border-width 1 + :border-style :dashed :border-color (colors/theme-colors colors/neutral-30 colors/neutral-60)}) -(defn active-segmented-tab-item-container [] - {:height 40 +(defn active-segmented-tab-item-container + [] + {:height 40 :background-color (colors/theme-colors - colors/neutral-30 - colors/neutral-90)}) + colors/neutral-30 + colors/neutral-90)}) -(def tab-item-container - {:flex-direction :row +(def tab-item-container + {:flex-direction :row :justify-content :center - :align-items :center}) + :align-items :center}) -(def tab-item-image - {:height 19 - :width 19 +(def tab-item-image + {:height 19 + :width 19 :margin-right 3}) -(def tab-item-label +(def tab-item-label {:font-size 14}) -(defn tab-icon [] +(defn tab-icon + [] {:height 16 - :width 16 - :color (colors/theme-colors - colors/neutral-40 - colors/neutral-40)}) + :width 16 + :color (colors/theme-colors + colors/neutral-40 + colors/neutral-40)}) diff --git a/src/quo2/components/settings/reorder_item/view.cljs b/src/quo2/components/settings/reorder_item/view.cljs index a50fda04524..ba1b0c87ed3 100644 --- a/src/quo2/components/settings/reorder_item/view.cljs +++ b/src/quo2/components/settings/reorder_item/view.cljs @@ -1,4 +1,4 @@ -(ns quo2.components.settings.reorder-item.view +(ns quo2.components.settings.reorder-item.view (:require [quo.react-native :as rn] [react-native.platform :as platform] [quo2.components.settings.reorder-item.items.item :as item] @@ -11,33 +11,34 @@ (defn render-fn [item _ _ _ _ drag] - (let [label-value (:label item) - type (:type item) - data (:data item) + (let [label-value (:label item) + type (:type item) + data (:data item) default-active (:default-active item)] (case type - "item" [item/view item drag] + "item" [item/view item drag] "placeholder" [placeholder/view label-value drag] - "skeleton" [skeleton/view] - "tab" [tab/view data default-active]))) + "skeleton" [skeleton/view] + "tab" [tab/view data default-active]))) (defn on-drag-end-fn [data atom-data] (reset! atom-data data) (reagent/flush)) -(defn reorder-item [data] - (reagent/with-let [atom-data (reagent/atom data)] - [rn/view - {:style (style/container)} - [rn/draggable-flat-list - {:key-fn :id - :accessibility-label :sortable-list - :data @atom-data - :render-fn render-fn - :autoscroll-threshold (if platform/android? 150 250) - :autoscroll-speed (if platform/android? 10 150) - :content-container-style {:padding-vertical 20} - :shows-vertical-scroll-indicator false - :on-drag-end-fn (fn [_ _ data] - (on-drag-end-fn data atom-data))}]])) +(defn reorder-item + [data] + (reagent/with-let [atom-data (reagent/atom data)] + [rn/view + {:style (style/container)} + [rn/draggable-flat-list + {:key-fn :id + :accessibility-label :sortable-list + :data @atom-data + :render-fn render-fn + :autoscroll-threshold (if platform/android? 150 250) + :autoscroll-speed (if platform/android? 10 150) + :content-container-style {:padding-vertical 20} + :shows-vertical-scroll-indicator false + :on-drag-end-fn (fn [_ _ data] + (on-drag-end-fn data atom-data))}]])) diff --git a/src/quo2/components/tabs/segmented_tab.cljs b/src/quo2/components/tabs/segmented_tab.cljs index fea90012d34..dc8f85b3ebb 100644 --- a/src/quo2/components/tabs/segmented_tab.cljs +++ b/src/quo2/components/tabs/segmented_tab.cljs @@ -16,19 +16,20 @@ (defn segmented-control [{:keys [default-active on-change]}] (let [active-tab-id (reagent/atom default-active)] - (fn [{:keys [data size override-theme blur? container-style item-container-style active-item-container-style]}] + (fn [{:keys [data size override-theme blur? container-style item-container-style + active-item-container-style]}] (let [active-id @active-tab-id] [rn/view - (merge + (merge {:flex-direction :row - :background-color (get-in (if blur? themes-for-blur themes) - [(or override-theme (theme/get-theme)) :background-color]) - :border-radius (case size - 32 10 - 28 8 - 24 8 - 20 6) - :padding 2} + :background-color (get-in (if blur? themes-for-blur themes) + [(or override-theme (theme/get-theme)) :background-color]) + :border-radius (case size + 32 10 + 28 8 + 24 8 + 20 6) + :padding 2} container-style) (for [[indx {:keys [label id]}] (map-indexed vector data)] ^{:key id} @@ -36,16 +37,16 @@ {:margin-left (if (= 0 indx) 0 2) :flex 1} [tab/view - {:id id + {:id id :active-item-container-style active-item-container-style - :item-container-style item-container-style - :segmented? true - :size size - :override-theme override-theme - :blur? blur? - :active (= id active-id) - :on-press (fn [tab-id] - (reset! active-tab-id tab-id) - (when on-change - (on-change tab-id)))} + :item-container-style item-container-style + :segmented? true + :size size + :override-theme override-theme + :blur? blur? + :active (= id active-id) + :on-press (fn [tab-id] + (reset! active-tab-id tab-id) + (when on-change + (on-change tab-id)))} label]])])))) diff --git a/src/status_im2/contexts/quo_preview/main.cljs b/src/status_im2/contexts/quo_preview/main.cljs index adaf3171a3e..ffc4632f41c 100644 --- a/src/status_im2/contexts/quo_preview/main.cljs +++ b/src/status_im2/contexts/quo_preview/main.cljs @@ -76,7 +76,7 @@ [status-im2.contexts.quo-preview.selectors.selectors :as selectors] [status-im2.contexts.quo-preview.settings.accounts :as accounts] [status-im2.contexts.quo-preview.settings.settings-list :as settings-list] - [status-im2.contexts.quo-preview.settings.privacy-option :as privacy-option] + [status-im2.contexts.quo-preview.settings.privacy-option :as privacy-option] [status-im2.contexts.quo-preview.settings.reorder-item :as reorder-item] [status-im2.contexts.quo-preview.share.qr-code :as qr-code] [status-im2.contexts.quo-preview.share.share-qr-code :as share-qr-code] diff --git a/src/status_im2/contexts/quo_preview/settings/reorder_item.cljs b/src/status_im2/contexts/quo_preview/settings/reorder_item.cljs index ac5cd391e34..51494840da9 100644 --- a/src/status_im2/contexts/quo_preview/settings/reorder_item.cljs +++ b/src/status_im2/contexts/quo_preview/settings/reorder_item.cljs @@ -1,75 +1,75 @@ (ns status-im2.contexts.quo-preview.settings.reorder-item (:require - [quo2.core :as quo] - [react-native.core :as rn] - [status-im2.common.resources :as resources])) + [quo2.core :as quo] + [react-native.core :as rn] + [status-im2.common.resources :as resources])) (def mock-data - [{:id 1 - :type "item" - :image (resources/get-mock-image :diamond) + [{:id 1 + :type "item" + :image (resources/get-mock-image :diamond) :image-size 21 :right-icon :i/world - :title "Trip to Bahamas"} - {:id 2 - :type "item" - :image (resources/get-mock-image :status-logo) + :title "Trip to Bahamas"} + {:id 2 + :type "item" + :image (resources/get-mock-image :status-logo) :image-size 21 :right-icon :i/world - :title "Status"} - {:id 3 - :type "item" - :image (resources/tokens :eth) + :title "Status"} + {:id 3 + :type "item" + :image (resources/tokens :eth) :image-size 21 :right-icon :i/world - :title "Ethereum"} - {:id 4 - :type "item" - :image (resources/get-mock-image :monkey) + :title "Ethereum"} + {:id 4 + :type "item" + :image (resources/get-mock-image :monkey) :image-size 30 :right-icon :i/world - :title "3045" - :subtitle "Bored Ape Yatch Club"} - {:id 5 - :type "item" - :image (resources/get-mock-image :pinterest) + :title "3045" + :subtitle "Bored Ape Yatch Club"} + {:id 5 + :type "item" + :image (resources/get-mock-image :pinterest) :image-size 21 :right-text "@sheralito" - :title "Pinterest"} - {:id 6 - :type "placeholder" + :title "Pinterest"} + {:id 6 + :type "placeholder" :label "Label"} - {:id 7 - :type "placeholder" + {:id 7 + :type "placeholder" :label "Label"} - {:id 8 + {:id 8 :type "skeleton"} - {:id 9 + {:id 9 :type "skeleton"} - {:id 10 - :type "tab" + {:id 10 + :type "tab" :default-active 1 - :data [{:id 1 - :label "Everyone" - :icon :i/world} - {:id 2 - :label "Contacts" - :image (resources/get-mock-image :contact)} - {:id 3 - :label "Verified" - :image (resources/get-mock-image :verified)}]} - {:id 11 - :type "tab" + :data [{:id 1 + :label "Everyone" + :icon :i/world} + {:id 2 + :label "Contacts" + :image (resources/get-mock-image :contact)} + {:id 3 + :label "Verified" + :image (resources/get-mock-image :verified)}]} + {:id 11 + :type "tab" :default-active 1 - :data [{:id 1 - :label "Everyone" - :icon :i/world} - {:id 2 - :label "Contacts" - :image (resources/get-mock-image :contact)} - {:id 3 - :label "Verified" - :image (resources/get-mock-image :verified)}]}]) + :data [{:id 1 + :label "Everyone" + :icon :i/world} + {:id 2 + :label "Contacts" + :image (resources/get-mock-image :contact)} + {:id 3 + :label "Verified" + :image (resources/get-mock-image :verified)}]}]) (defn preview-reorder-item From f3df6680ab33cae4b6e58a89f72dea1e71dd3a5b Mon Sep 17 00:00:00 2001 From: Milad Date: Sat, 10 Jun 2023 18:15:07 +0330 Subject: [PATCH 08/15] resolve comments --- .../settings/reorder_item/items/item.cljs | 19 ++- .../reorder_item/items/item_placeholder.cljs | 20 ++- .../reorder_item/items/item_tabs.cljs | 55 ++++--- .../settings/reorder_item/style.cljs | 14 +- .../settings/reorder_item/types.cljs | 6 + .../settings/reorder_item/view.cljs | 54 ++----- src/react_native/core.cljs | 2 - .../quo_preview/settings/reorder_item.cljs | 148 ++++++++++-------- 8 files changed, 152 insertions(+), 166 deletions(-) create mode 100644 src/quo2/components/settings/reorder_item/types.cljs diff --git a/src/quo2/components/settings/reorder_item/items/item.cljs b/src/quo2/components/settings/reorder_item/items/item.cljs index e19d23f6346..8ac060c803f 100644 --- a/src/quo2/components/settings/reorder_item/items/item.cljs +++ b/src/quo2/components/settings/reorder_item/items/item.cljs @@ -1,8 +1,8 @@ (ns quo2.components.settings.reorder-item.items.item - (:require [quo.react-native :as rn] + (:require [react-native.core :as rn] [quo2.components.settings.reorder-item.style :as style] [quo2.components.markdown.text :as text] - [quo2.components.icon :as quo2-icons] + [quo2.components.icon :as icon] [quo2.foundations.colors :as colors])) (defn view @@ -12,13 +12,12 @@ image image-size right-text - right-icon]} drag] + right-icon + on-press]}] [rn/touchable-opacity - {:on-long-press drag - :delay-long-press 100 - :accessibility-label :chat-drag-handle - :style (merge (style/item-container) (when subtitle style/item-container-extended))} - [quo2-icons/icon :main-icons/drag + {:on-press on-press + :style (merge (style/item-container) (when subtitle style/item-container-extended))} + [icon/icon :main-icons/drag {:color (colors/theme-colors colors/neutral-50 colors/neutral-40) @@ -46,5 +45,5 @@ (when right-text [text/text {:style style/right-text} right-text]) (when right-icon - [rn/view {:style style/right-icon-container} [quo2-icons/icon right-icon (style/right-icon)]])]] - [quo2-icons/icon :tiny-icons/chevron-right (style/chevron)]]) + [rn/view {:style style/right-icon-container} [icon/icon right-icon (style/right-icon)]])]] + [icon/icon :tiny-icons/chevron-right (style/chevron)]]) diff --git a/src/quo2/components/settings/reorder_item/items/item_placeholder.cljs b/src/quo2/components/settings/reorder_item/items/item_placeholder.cljs index f19fd9282a3..1526b3117be 100644 --- a/src/quo2/components/settings/reorder_item/items/item_placeholder.cljs +++ b/src/quo2/components/settings/reorder_item/items/item_placeholder.cljs @@ -4,14 +4,12 @@ [quo2.components.settings.reorder-item.style :as style])) (defn view - [label drag] - [rn/view - {:on-long-press drag - :delay-long-press 100 - :accessibility-label :reorder-placerholder-drag-handle - :style (style/placeholder-container)} - [text/text - {:style (style/placeholder-text) - :weight :regular} - label] - ]) + [item] + (let [label (:label item)] + [rn/view + {:accessibility-label :reorder-placerholder-drag-handle + :style (style/placeholder-container)} + [text/text + {:style (style/placeholder-text) + :weight :regular} + label]])) diff --git a/src/quo2/components/settings/reorder_item/items/item_tabs.cljs b/src/quo2/components/settings/reorder_item/items/item_tabs.cljs index ed1323c3750..11d510af265 100644 --- a/src/quo2/components/settings/reorder_item/items/item_tabs.cljs +++ b/src/quo2/components/settings/reorder_item/items/item_tabs.cljs @@ -5,32 +5,37 @@ [quo2.components.settings.reorder-item.style :as style] [quo2.components.icon :as quo2-icons])) +(defn render-tab-item + [item] + (let [tab-image (if (item :image) + [rn/image + {:source (:image item) + :style style/tab-item-image}] + [rn/view {:style style/tab-item-image} + (quo2-icons/icon (:icon item) (style/tab-icon))])] + [rn/view + {:style style/tab-item-container} + tab-image + [text/text + {:style style/tab-item-label + :width :medium} + (:label item)]])) + (defn transform-data [data] - (map #(assoc % - :id (:id %) - :label [rn/view - {:style style/tab-item-container} - (if (contains? % :image) - [rn/image - {:source (:image %) - :style style/tab-item-image}] - [rn/view {:style style/tab-item-image} - (quo2-icons/icon (:icon %) (style/tab-icon))]) - [text/text - {:style style/tab-item-label - :width :medium} - (:label %)]]) - data)) + (map #(hash-map :id (:id %) :label (render-tab-item %)) data)) (defn view - [data default-active] - [quo2/segmented-control - {:default-active default-active - :size 32 - :blur? false - :container-style (style/tab-container) - :item-container-style (style/segmented-tab-item-container) - :active-item-container-style (style/active-segmented-tab-item-container) - :data (transform-data data) - :on-change #(println "Active tab" %)}]) + [item] + (let [data (:data item) + default-active (:default-active item) + on-change (:on-change item)] + [quo2/segmented-control + {:default-active default-active + :size 32 + :blur? false + :container-style (style/tab-container) + :item-container-style (style/segmented-tab-item-container) + :active-item-container-style (style/active-segmented-tab-item-container) + :data (transform-data data) + :on-change on-change}])) diff --git a/src/quo2/components/settings/reorder_item/style.cljs b/src/quo2/components/settings/reorder_item/style.cljs index 68c9c2f70b8..5dde332a663 100644 --- a/src/quo2/components/settings/reorder_item/style.cljs +++ b/src/quo2/components/settings/reorder_item/style.cljs @@ -1,17 +1,9 @@ (ns quo2.components.settings.reorder-item.style (:require [quo2.foundations.colors :as colors])) -(defn container - [] - {:padding-horizontal 36 - :background-color (colors/theme-colors - colors/neutral-10 - colors/neutral-100)}) - (defn item-container [] - {:flex 1 - :flex-direction :row + {:flex-direction :row :align-items :center :padding-horizontal 10 :border-radius 16 @@ -24,14 +16,14 @@ (def item-container-extended {:height 50}) - (def body-container {:flex 1 :margin-left 12 :flex-direction :row :align-items :center}) -(def image-container {:margin-right 8}) +(def image-container + {:margin-right 8}) (defn image [size] diff --git a/src/quo2/components/settings/reorder_item/types.cljs b/src/quo2/components/settings/reorder_item/types.cljs new file mode 100644 index 00000000000..45635579812 --- /dev/null +++ b/src/quo2/components/settings/reorder_item/types.cljs @@ -0,0 +1,6 @@ +(ns quo2.components.settings.reorder-item.types) + +(def ^:const item 0) +(def ^:const placeholder 1) +(def ^:const skeleton 2) +(def ^:const tab 3) diff --git a/src/quo2/components/settings/reorder_item/view.cljs b/src/quo2/components/settings/reorder_item/view.cljs index ba1b0c87ed3..b48ad8f1459 100644 --- a/src/quo2/components/settings/reorder_item/view.cljs +++ b/src/quo2/components/settings/reorder_item/view.cljs @@ -1,44 +1,16 @@ (ns quo2.components.settings.reorder-item.view - (:require [quo.react-native :as rn] - [react-native.platform :as platform] - [quo2.components.settings.reorder-item.items.item :as item] - [reagent.core :as reagent] - [quo2.components.settings.reorder-item.style :as style] - [quo2.components.settings.reorder-item.items.item-placeholder :as placeholder] - [quo2.components.settings.reorder-item.items.item-skeleton :as skeleton] - [quo2.components.settings.reorder-item.items.item-tabs :as tab])) - - -(defn render-fn - [item _ _ _ _ drag] - (let [label-value (:label item) - type (:type item) - data (:data item) - default-active (:default-active item)] - (case type - "item" [item/view item drag] - "placeholder" [placeholder/view label-value drag] - "skeleton" [skeleton/view] - "tab" [tab/view data default-active]))) - -(defn on-drag-end-fn - [data atom-data] - (reset! atom-data data) - (reagent/flush)) + (:require + [quo2.components.settings.reorder-item.items.item :as item] + [quo2.components.settings.reorder-item.items.item-placeholder :as placeholder] + [quo2.components.settings.reorder-item.items.item-skeleton :as skeleton] + [quo2.components.settings.reorder-item.items.item-tabs :as tab] + [quo2.components.settings.reorder-item.types :as types])) (defn reorder-item - [data] - (reagent/with-let [atom-data (reagent/atom data)] - [rn/view - {:style (style/container)} - [rn/draggable-flat-list - {:key-fn :id - :accessibility-label :sortable-list - :data @atom-data - :render-fn render-fn - :autoscroll-threshold (if platform/android? 150 250) - :autoscroll-speed (if platform/android? 10 150) - :content-container-style {:padding-vertical 20} - :shows-vertical-scroll-indicator false - :on-drag-end-fn (fn [_ _ data] - (on-drag-end-fn data atom-data))}]])) + [item type] + (case type + types/item [item/view item] + types/placeholder [placeholder/view item] + types/skeleton [skeleton/view] + types/tab [tab/view item] + nil)) diff --git a/src/react_native/core.cljs b/src/react_native/core.cljs index b3f72f44b9e..79d18117226 100644 --- a/src/react_native/core.cljs +++ b/src/react_native/core.cljs @@ -6,7 +6,6 @@ [react-native.flat-list :as flat-list] [react-native.platform :as platform] [react-native.section-list :as section-list] - ["react-native-draggable-flatlist" :default DraggableFlatList] [reagent.core :as reagent])) (def app-state ^js (.-AppState ^js react-native)) @@ -21,7 +20,6 @@ (defn image-get-size [uri callback] (.getSize ^js (.-Image ^js react-native) uri callback)) (def text (reagent/adapt-react-class (.-Text ^js react-native))) (def text-input (reagent/adapt-react-class (.-TextInput ^js react-native))) -(def draggable-flatlist (reagent/adapt-react-class DraggableFlatList)) (def touchable-opacity (reagent/adapt-react-class (.-TouchableOpacity ^js react-native))) (def touchable-highlight (reagent/adapt-react-class (.-TouchableHighlight ^js react-native))) (def touchable-without-feedback diff --git a/src/status_im2/contexts/quo_preview/settings/reorder_item.cljs b/src/status_im2/contexts/quo_preview/settings/reorder_item.cljs index 51494840da9..6a631ccaf1a 100644 --- a/src/status_im2/contexts/quo_preview/settings/reorder_item.cljs +++ b/src/status_im2/contexts/quo_preview/settings/reorder_item.cljs @@ -2,77 +2,93 @@ (:require [quo2.core :as quo] [react-native.core :as rn] - [status-im2.common.resources :as resources])) + [status-im2.common.resources :as resources] + [quo2.foundations.colors :as colors] + [quo2.components.settings.reorder-item.types :as types])) (def mock-data - [{:id 1 - :type "item" - :image (resources/get-mock-image :diamond) - :image-size 21 - :right-icon :i/world - :title "Trip to Bahamas"} - {:id 2 - :type "item" - :image (resources/get-mock-image :status-logo) - :image-size 21 - :right-icon :i/world - :title "Status"} - {:id 3 - :type "item" - :image (resources/tokens :eth) - :image-size 21 - :right-icon :i/world - :title "Ethereum"} - {:id 4 - :type "item" - :image (resources/get-mock-image :monkey) - :image-size 30 - :right-icon :i/world - :title "3045" - :subtitle "Bored Ape Yatch Club"} - {:id 5 - :type "item" - :image (resources/get-mock-image :pinterest) - :image-size 21 - :right-text "@sheralito" - :title "Pinterest"} - {:id 6 - :type "placeholder" - :label "Label"} - {:id 7 - :type "placeholder" - :label "Label"} + [{:id 1 + :type types/item + :data {:on-press (println "pressed") + :image (resources/get-mock-image :diamond) + :image-size 21 + :right-icon :i/world + :title "Trip to Bahamas"}} + {:id 2 + :type types/item + :data {:image (resources/get-mock-image :status-logo) + :image-size 21 + :right-icon :i/world + :title "Status"}} + {:id 3 + :type types/item + :data {:image (resources/tokens :eth) + :image-size 21 + :right-icon :i/world + :title "Ethereum"}} + {:id 4 + :type types/item + :data {:image (resources/get-mock-image :monkey) + :image-size 30 + :right-icon :i/world + :title "3045" + :subtitle "Bored Ape Yatch Club"}} + {:id 5 + :type types/item + :data {:image (resources/get-mock-image :pinterest) + :image-size 21 + :right-text "@sheralito" + :title "Pinterest"}} + {:id 6 + :type types/placeholder + :data {:label "Label"}} + {:id 7 + :type types/placeholder + :data {:label "Label"}} {:id 8 - :type "skeleton"} + :type types/skeleton} {:id 9 - :type "skeleton"} - {:id 10 - :type "tab" - :default-active 1 - :data [{:id 1 - :label "Everyone" - :icon :i/world} - {:id 2 - :label "Contacts" - :image (resources/get-mock-image :contact)} - {:id 3 - :label "Verified" - :image (resources/get-mock-image :verified)}]} - {:id 11 - :type "tab" - :default-active 1 - :data [{:id 1 - :label "Everyone" - :icon :i/world} - {:id 2 - :label "Contacts" - :image (resources/get-mock-image :contact)} - {:id 3 - :label "Verified" - :image (resources/get-mock-image :verified)}]}]) + :type types/skeleton} + {:id 10 + :type types/tab + :data {:data [{:id 1 + :label "Everyone" + :icon :i/world} + {:id 2 + :label "Contacts" + :image (resources/get-mock-image :contact)} + {:id 3 + :label "Verified" + :image (resources/get-mock-image :verified)}] + :on-change (fn [tab-id] (println tab-id)) + :default-active 2}} + {:id 11 + :type types/tab + :data {:data [{:id 1 + :label "Everyone" + :icon :i/world} + {:id 2 + :label "Contacts" + :image (resources/get-mock-image :contact)} + {:id 3 + :label "Verified" + :image (resources/get-mock-image :verified)}] + :on-change (fn [tab-id] (println tab-id)) + :default-active 1}}]) +(defn container + [] + {:padding-horizontal 36 + :padding-vertical 20 + :background-color (colors/theme-colors + colors/neutral-10 + colors/neutral-100) + :flex 1}) + (defn preview-reorder-item [] - [rn/view - [quo/reorder-item mock-data]]) + [rn/scroll-view + {:style (container)} + (for [item mock-data] + [quo/reorder-item (item :data) (item :type)])]) From 1a57ad3dd70f96e14d97d46e395316df9b9bda9a Mon Sep 17 00:00:00 2001 From: Milad Date: Tue, 13 Jun 2023 22:30:59 +0330 Subject: [PATCH 09/15] resolve comments --- resources/images/icons/diamond@2x.png | Bin 1142 -> 0 bytes resources/images/icons/diamond@3x.png | Bin 1658 -> 0 bytes resources/images/icons/monkey@2x.png | Bin 4822 -> 0 bytes resources/images/icons/monkey@3x.png | Bin 9421 -> 0 bytes resources/images/icons/pinterest@2x.png | Bin 1098 -> 0 bytes resources/images/icons/pinterest@3x.png | Bin 1558 -> 0 bytes resources/images/icons/status-logo@2x.png | Bin 1284 -> 0 bytes resources/images/icons/status-logo@3x.png | Bin 1858 -> 0 bytes resources/images/icons/verified_cloud@2x.png | Bin 974 -> 0 bytes resources/images/icons/verified_cloud@3x.png | Bin 1325 -> 0 bytes .../settings/reorder_item/component_spec.cljs | 23 +++++++++--------- .../reorder_item/items/item_tabs.cljs | 22 ++++++++--------- .../settings/reorder_item/style.cljs | 2 +- 13 files changed, 23 insertions(+), 24 deletions(-) delete mode 100644 resources/images/icons/diamond@2x.png delete mode 100644 resources/images/icons/diamond@3x.png delete mode 100644 resources/images/icons/monkey@2x.png delete mode 100644 resources/images/icons/monkey@3x.png delete mode 100644 resources/images/icons/pinterest@2x.png delete mode 100644 resources/images/icons/pinterest@3x.png delete mode 100644 resources/images/icons/status-logo@2x.png delete mode 100644 resources/images/icons/status-logo@3x.png delete mode 100644 resources/images/icons/verified_cloud@2x.png delete mode 100644 resources/images/icons/verified_cloud@3x.png diff --git a/resources/images/icons/diamond@2x.png b/resources/images/icons/diamond@2x.png deleted file mode 100644 index de741979fc39455215e1a665a643be0c33081142..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1142 zcmV-+1d02JP)`;Mb)g zR+sCdp&94EoSgAl{6eHhN;k^vdi?naXx15=2hb0Vw6O&E=_qgT;DOm0|PkoK|-GJd0@cB6CF=@)o;rHd2kMcE#AeX;^Gce2z5f|Ei!}*rN1bYlm}#; zpF_rAo$}5op5$N|*`q>U;5pbuWD`o{A{SsY$S5*$iZTbpQDhcj8ZwS1D5rHfcBP4f z|J&a9eU;%`gGXNbWwnXVD=lxF|6pMJ-fz%{|4AM&p~;bREuVN|rO9Kj-#41~jaz@T zQ9DtGKI(;24-$UlY}3ncu7x)nhUz0Y^z1Nn&@#Z0p}MqSzz)0u z?kgC`@%W7n$Fb2^U-KO!@qa)154l$2XjW*i1NJhLM&u#3G~W*S8HN zo{Z2%+W>;XX!(wR=Jt-p&tz@Q@3KQr5BDXW=*s}2{+wgw{?@EhB2z*Kp~T&&*Szu6 z>uHs^{nEDq#QMV=st>n}*k1^HVfFi0?{5;XQ*ok5#Q(uy`7pV64TQ1`u11zM7TV6-nTzNtz@Avh-%Vi8! zsvdBmFj~EvS8D>rej4R64)SMDjfA97dBvV#6zYXk%4IZiV~asp*eMp zw5{?E8HIr@at={OMv*P3MQ$Tk#t!AdE>Py3Zr}nk1~mamyDFn{b88+MgF2Y>s|?s| z**G_m5#*kz*M9XDG6AE6lvm{)!n#q;m)wD80L2qE&@k9WSRIWXzE=ryi-3I|gK31) z7VH&gzR~^DZzX1nt&(i@|Kk3cbCdEj?&FW1KK76=#U**^CF~wjtg|46&uf3|5oEKu zY|EAon{mL7GS#EusSki0f8ka>YaQyE6WX+oV!Z07*qo IM6N<$g1I;ossI20 diff --git a/resources/images/icons/diamond@3x.png b/resources/images/icons/diamond@3x.png deleted file mode 100644 index 77161a2d0454907617c67a10cd31946f9b25c7f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1658 zcmV-=28H>FP)|+T1a<5H@arSxEocdNCGWoo#k#5rV#;S ztZg{Zg*cg|Y-OdsrRHKMuJtDp*wwDM zMOL~7ke!YQiLIOJkHeL?QE zjf5u1aHiRUdT9`<6%$s51hNx>6wm})#t?m782aOoHYSzV^G@qi(}BG5j)m7gC^xm2 zDgwV10;i)Szy4FivE?+ik9|9Wk&R)*1*tM=P#}tJ+%-Dmc#6Yp9U?Rr#!S!l;+u!C zW-5paGMu#0@K{D0EY91X9x1Qy9EY7ca#6V%Q-0Y(@vRc#K)VI8FxTF* zeEURkFBg@Yxo|vUp>(5FAitpO64kw2{M^iiUCo|o;g_pPYjrUW%Br~I(u#Yz__-Ow z!FpG7(AFl<>mQZ_#bH`;FP9)UV>s>Wj7KIk@%Mp&!dCDNJlQ^J*t4r7>u4zyWN;ZX{QzXbof$&p|YRqXF<1@@Wz_aZL+p+_7>YYf`{+(h}Ae;}Qv zIFd428`>Nd4}7l=mWFZpr>oG3R)K7C{jGHq6`$E97H4E2`o|V`3#eG?49ViW`rR8y zm9<3;iS|OVvMorY0XRN!a&~e6Q7P`JRZm%_6o*C9O)Ql(yV>>^>i;CyG*R4)E$66I zR9?UQF_PT}COw@A~Y;oWTa z`KD((i=#7Rc@e8Xj4J)}uwgtz;dfj*@C?qn)47V+1!7d`KTJ(@u-E)1Zyf1dMOy?? zrT?Is$hIpu+}}IZ7FRk~(H4Oiuk_F2To_eb5sSkj)%wSn&Q-KcAjT{GPmHQ9p|SRf zGo7nwt3XU+`d7{KG}b(0|6cPv^{Krb>0AX1lt%}sPyaLH%{7r*9JVW+ zD=2itf?VA6&%wIBCUR?^cBXR$ofW7){nrm*x%O#yI#w6M+<1q>WL1Hb#-GgV-<-NNq7SS_qZld zVntO1>{GilG>tJ9vpu&)J_`B!xzv^VhNkHb2jYG7r>pTAu^WwzO#-obQQBWbpF#Kh zk=Irgo)c!PIdhHbfY2L&bUW3!V}9j*&4-0-c}2kJ>9wpZ&b{2giu!s03t8)yfcOl( zx0b%Zp@hA~uTzBWapZ;rY4ikQgOgF1?QtSaCH8>Jk=57_R()Kmkyf_oB5UH^2}Cz7 z1eU_k)Xr+ujo;3)$y=J9No0jwF@1hFd8^J;7;CNWh^J+?o>xxO^b%FyMuuWl+Cgew zRD*i`Hi0MSTFC!@SluR&gvirp?@+Oqug;R1TDA%N586FsA>JegmjD0&07*qoM6N<$ Ef`jB0u>b%7 diff --git a/resources/images/icons/monkey@2x.png b/resources/images/icons/monkey@2x.png deleted file mode 100644 index f92577dbd6da88c8c2666c83679fd60991ddb09e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4822 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 diff --git a/resources/images/icons/monkey@3x.png b/resources/images/icons/monkey@3x.png deleted file mode 100644 index d289db96e7e05a561996145b82b54fb187d897d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9421 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 TDPG_f00000NkvXXu0mjf3tazJ diff --git a/resources/images/icons/pinterest@2x.png b/resources/images/icons/pinterest@2x.png deleted file mode 100644 index 2ff837a3dca2a73f653115b2cc1aa24918106a9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1098 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 Date: Tue, 13 Jun 2023 22:42:57 +0330 Subject: [PATCH 10/15] fix lint issues --- .../settings/reorder_item/component_spec.cljs | 6 ++--- .../reorder_item/items/item_tabs.cljs | 26 +++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/quo2/components/settings/reorder_item/component_spec.cljs b/src/quo2/components/settings/reorder_item/component_spec.cljs index a352e67e8a8..2da525ad3bf 100644 --- a/src/quo2/components/settings/reorder_item/component_spec.cljs +++ b/src/quo2/components/settings/reorder_item/component_spec.cljs @@ -23,7 +23,7 @@ (h/test "renders item tab" (h/render [quo/reorder-item - {:data [{:id 1 - :label "Item 1"} - ]} types/tab]) + {:data [{:id 1 + :label "Item 1"} + ]} types/tab]) (h/is-truthy (h/get-by-text "Item 1")))) \ No newline at end of file diff --git a/src/quo2/components/settings/reorder_item/items/item_tabs.cljs b/src/quo2/components/settings/reorder_item/items/item_tabs.cljs index 4bf5bbe66f3..35ce6d6f1ff 100644 --- a/src/quo2/components/settings/reorder_item/items/item_tabs.cljs +++ b/src/quo2/components/settings/reorder_item/items/item_tabs.cljs @@ -11,8 +11,8 @@ (item :image) [rn/image {:source (:image item) :style style/tab-item-image}] - (item :icon) [rn/view {:style style/tab-item-image} - (quo2-icons/icon (:icon item) (style/tab-icon))])] + (item :icon) [rn/view {:style style/tab-item-image} + (quo2-icons/icon (:icon item) (style/tab-icon))])] [rn/view {:style style/tab-item-container} tab-image @@ -27,15 +27,15 @@ (defn view [{:keys [data default-active on-change] - :or {data nil + :or {data nil default-active 1 - on-change (fn [] nil)}}] - [quo2/segmented-control - {:default-active default-active - :size 32 - :blur? false - :container-style (style/tab-container) - :item-container-style (style/segmented-tab-item-container) - :active-item-container-style (style/active-segmented-tab-item-container) - :data (transform-data data) - :on-change on-change}]) + on-change (fn [] nil)}}] + [quo2/segmented-control + {:default-active default-active + :size 32 + :blur? false + :container-style (style/tab-container) + :item-container-style (style/segmented-tab-item-container) + :active-item-container-style (style/active-segmented-tab-item-container) + :data (transform-data data) + :on-change on-change}]) From 15b5c66f4dd2d27b6baa07b90590bd2919b8d0eb Mon Sep 17 00:00:00 2001 From: Milad Date: Wed, 14 Jun 2023 17:53:59 +0330 Subject: [PATCH 11/15] remove lefthook.yml --- lefthook.yml | 34 ---------------------------------- 1 file changed, 34 deletions(-) delete mode 100644 lefthook.yml diff --git a/lefthook.yml b/lefthook.yml deleted file mode 100644 index af073d45502..00000000000 --- a/lefthook.yml +++ /dev/null @@ -1,34 +0,0 @@ -# EXAMPLE USAGE -# Refer for explanation to following link: -# https://github.com/evilmartians/lefthook/blob/master/docs/full_guide.md -# -# pre-push: -# commands: -# packages-audit: -# tags: frontend security -# run: yarn audit -# gems-audit: -# tags: backend security -# run: bundle audit -# -# pre-commit: -# parallel: true -# commands: -# eslint: -# glob: "*.{js,ts}" -# run: yarn eslint {staged_files} -# rubocop: -# tags: backend style -# glob: "*.rb" -# exclude: "application.rb|routes.rb" -# run: bundle exec rubocop --force-exclusion {all_files} -# govet: -# tags: backend style -# files: git ls-files -m -# glob: "*.go" -# run: go vet {files} -# scripts: -# "hello.js": -# runner: node -# "any.go": -# runner: go run From 81e1108c3cd6a65b591a252ca4560988ddf4479c Mon Sep 17 00:00:00 2001 From: Milad Date: Wed, 14 Jun 2023 18:19:46 +0330 Subject: [PATCH 12/15] resolve comments --- .../components/settings/reorder_item/items/item_tabs.cljs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/quo2/components/settings/reorder_item/items/item_tabs.cljs b/src/quo2/components/settings/reorder_item/items/item_tabs.cljs index 35ce6d6f1ff..7a668b5150f 100644 --- a/src/quo2/components/settings/reorder_item/items/item_tabs.cljs +++ b/src/quo2/components/settings/reorder_item/items/item_tabs.cljs @@ -27,9 +27,8 @@ (defn view [{:keys [data default-active on-change] - :or {data nil - default-active 1 - on-change (fn [] nil)}}] + :or {default-active 1 + on-change (constantly nil)}}] [quo2/segmented-control {:default-active default-active :size 32 From 42609c68cbd170f0f332aaea42e90de212d55955 Mon Sep 17 00:00:00 2001 From: Milad Date: Thu, 15 Jun 2023 19:28:11 +0330 Subject: [PATCH 13/15] rollback core.cljs --- src/react_native/core.cljs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/react_native/core.cljs b/src/react_native/core.cljs index 79d18117226..5ea42c5c856 100644 --- a/src/react_native/core.cljs +++ b/src/react_native/core.cljs @@ -20,6 +20,7 @@ (defn image-get-size [uri callback] (.getSize ^js (.-Image ^js react-native) uri callback)) (def text (reagent/adapt-react-class (.-Text ^js react-native))) (def text-input (reagent/adapt-react-class (.-TextInput ^js react-native))) + (def touchable-opacity (reagent/adapt-react-class (.-TouchableOpacity ^js react-native))) (def touchable-highlight (reagent/adapt-react-class (.-TouchableHighlight ^js react-native))) (def touchable-without-feedback From 48408b4460394ceaa7966a3dd4e547b96c74aaec Mon Sep 17 00:00:00 2001 From: Milad Date: Thu, 15 Jun 2023 19:53:55 +0330 Subject: [PATCH 14/15] resolve comments --- resources/images/icons/drag@2x.png | Bin 200 -> 0 bytes resources/images/icons/drag@3x.png | Bin 234 -> 0 bytes .../settings/reorder_item/items/item.cljs | 4 +--- 3 files changed, 1 insertion(+), 3 deletions(-) delete mode 100644 resources/images/icons/drag@2x.png delete mode 100644 resources/images/icons/drag@3x.png diff --git a/resources/images/icons/drag@2x.png b/resources/images/icons/drag@2x.png deleted file mode 100644 index 4faf45986950010340574755c2175aca822eabc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEoCO|{#S9E$svykh8Km+7D9BhG zdlVR$=NL3F z>}fEbaACU6>1}WRpY!Fn4PjzXaPMl__BSTvK&|Zh(`UFm`%i6P_RWeZIG8VLpiy^0 qbT@-N$Cp0&lB0SD_?Z|2uJgOw2&t~vbNm3%A_h-aKbLh*2~7aFramSB diff --git a/resources/images/icons/drag@3x.png b/resources/images/icons/drag@3x.png deleted file mode 100644 index 8218232e32399baf8e85e882da06967c1f0cb4b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1|+Ti+$;i8oCO|{#S9FJ79h;%I?XTvD9BhG z z@$+Mv>!2ReWGFj>J7;d*vc}j<^9oL&o-fOn9Qs&d*(3QqGSIW~&bsH-|F(Fx8qR-f zQZ!xE*LqJ-qDT5Fy%?iC%cs|+x$c)`VlZ*_KEH6O^rEGV4M#IxT5c(E-eLkYsN@0n X!*V00@_)B?0C^0au6{1-oD!M<7W_?Z diff --git a/src/quo2/components/settings/reorder_item/items/item.cljs b/src/quo2/components/settings/reorder_item/items/item.cljs index 8ac060c803f..cd3d9b0cfa3 100644 --- a/src/quo2/components/settings/reorder_item/items/item.cljs +++ b/src/quo2/components/settings/reorder_item/items/item.cljs @@ -20,9 +20,7 @@ [icon/icon :main-icons/drag {:color (colors/theme-colors colors/neutral-50 - colors/neutral-40) - :width 19 - :height 19}] + colors/neutral-40)}] [rn/view {:style style/body-container} [rn/view From 55f013c054f663fe631aa8b18983d9fd02e3f013 Mon Sep 17 00:00:00 2001 From: Milad Date: Thu, 15 Jun 2023 20:42:12 +0330 Subject: [PATCH 15/15] make it pixel perfect --- .../settings/reorder_item/items/item.cljs | 6 +-- .../settings/reorder_item/style.cljs | 37 ++++++++++--------- .../quo_preview/settings/reorder_item.cljs | 2 +- 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/src/quo2/components/settings/reorder_item/items/item.cljs b/src/quo2/components/settings/reorder_item/items/item.cljs index cd3d9b0cfa3..25edec13076 100644 --- a/src/quo2/components/settings/reorder_item/items/item.cljs +++ b/src/quo2/components/settings/reorder_item/items/item.cljs @@ -18,9 +18,9 @@ {:on-press on-press :style (merge (style/item-container) (when subtitle style/item-container-extended))} [icon/icon :main-icons/drag - {:color (colors/theme-colors - colors/neutral-50 - colors/neutral-40)}] + {:color (colors/theme-colors + colors/neutral-50 + colors/neutral-40)}] [rn/view {:style style/body-container} [rn/view diff --git a/src/quo2/components/settings/reorder_item/style.cljs b/src/quo2/components/settings/reorder_item/style.cljs index 7cdf0bf7d69..79074fdb731 100644 --- a/src/quo2/components/settings/reorder_item/style.cljs +++ b/src/quo2/components/settings/reorder_item/style.cljs @@ -6,21 +6,22 @@ {:flex-direction :row :align-items :center :padding-horizontal 10 - :border-radius 16 - :margin-bottom 21 - :height 44 + :border-radius 14 + :margin-bottom 23 + :height 45 :background-color (colors/theme-colors colors/white colors/neutral-90)}) (def item-container-extended - {:height 50}) + {:height 52}) (def body-container {:flex 1 :margin-left 12 :flex-direction :row - :align-items :center}) + :align-items :center + :margin-right -6}) (def image-container {:margin-right 8}) @@ -53,7 +54,7 @@ {:flex 1 :flex-direction :row :justify-content :space-between - :margin-right 6}) + :margin-right 8}) (defn right-icon [] @@ -98,20 +99,22 @@ (defn tab-container [] - {:background-color (colors/theme-colors - colors/neutral-5 - colors/neutral-95) - :padding 6 - :margin-bottom 24}) + {:background-color (colors/theme-colors + colors/neutral-5 + colors/neutral-95) + :padding-horizontal 4 + :padding-vertical 6 + :margin-bottom 24}) (defn segmented-tab-item-container [] - {:height 40 - :border-width 1 - :border-style :dashed - :border-color (colors/theme-colors - colors/neutral-30 - colors/neutral-60)}) + {:height 40 + :border-width 1 + :border-style :dashed + :margin-horizontal 2 + :border-color (colors/theme-colors + colors/neutral-30 + colors/neutral-60)}) (defn active-segmented-tab-item-container [] diff --git a/src/status_im2/contexts/quo_preview/settings/reorder_item.cljs b/src/status_im2/contexts/quo_preview/settings/reorder_item.cljs index 6a631ccaf1a..801c91ef416 100644 --- a/src/status_im2/contexts/quo_preview/settings/reorder_item.cljs +++ b/src/status_im2/contexts/quo_preview/settings/reorder_item.cljs @@ -79,7 +79,7 @@ (defn container [] - {:padding-horizontal 36 + {:padding-horizontal 38 :padding-vertical 20 :background-color (colors/theme-colors colors/neutral-10