From be8a18964eb9e1f016c19c3aff2c1eaf971cdc88 Mon Sep 17 00:00:00 2001 From: David Langley Date: Fri, 5 Dec 2025 19:56:04 +0000 Subject: [PATCH] Update polls UX to match EX Mobile and improve accessibility (#31245) * Remove poll ended event UI. * Add better aria labels for screen reader and change ui to match mobile UX. - Checkmark and progress bar are only green if the poll is ended. - Updated the Poll icon for open and ended state and added labels - Right align total votes count and update text * Update jest tests * Fix total votes alignment * Fix screenshots * Update snapshot * Update e2e tests * fix more e2e tests * Clean up CSS * Add back text for undisclosed poll (total should be hidden) * Update checkmark and progress colours to more closely match mobile * Don't compute optionNumber on each render * "Total votes" working doesn't really work with the current web behaviour Web doesn't show the votes for undisclosed polls(mobile does). reverting and that behaviour change should be addressed in a different PR(or on mobile.). * Fix e2e test * Update screenshots * Move positioning of total votes label back to the left side as we are no longer changing the copy to match mobile * Don't concatenate label * Fix translation order * Remove unneeded translations * remove O(n^2) code * fix snapshots * Fix check style in poll option * prettier --- .../Polls-Timeline-tile-no-votes-linux.png | Bin 16434 -> 16442 bytes ...iew-with-a-poll-on-bubble-layout-linux.png | Bin 24343 -> 24491 bytes ...View-with-a-poll-on-group-layout-linux.png | Bin 24185 -> 24335 bytes res/css/_components.pcss | 1 - .../components/views/polls/_PollOption.pcss | 48 +- res/css/views/messages/_MPollBody.pcss | 32 +- res/css/views/messages/_MPollEndBody.pcss | 14 - res/css/views/rooms/_EventBubbleTile.pcss | 5 - src/components/views/messages/MPollBody.tsx | 9 +- .../views/messages/MPollEndBody.tsx | 108 -- .../views/messages/MessageEvent.tsx | 4 - src/components/views/polls/PollOption.tsx | 81 +- .../polls/pollHistory/PollListItemEnded.tsx | 10 +- src/i18n/strings/en_EN.json | 12 +- src/shouldHideEvent.ts | 5 +- .../views/messages/MPollBody-test.tsx | 22 +- .../views/messages/MPollEndBody-test.tsx | 193 --- .../__snapshots__/MPollBody-test.tsx.snap | 1216 ++++++++++++----- .../__snapshots__/MPollEndBody-test.tsx.snap | 129 -- .../pollHistory/PollListItemEnded-test.tsx | 49 + .../__snapshots__/PollHistory-test.tsx.snap | 27 + 21 files changed, 1095 insertions(+), 870 deletions(-) delete mode 100644 res/css/views/messages/_MPollEndBody.pcss delete mode 100644 src/components/views/messages/MPollEndBody.tsx delete mode 100644 test/unit-tests/components/views/messages/MPollEndBody-test.tsx delete mode 100644 test/unit-tests/components/views/messages/__snapshots__/MPollEndBody-test.tsx.snap diff --git a/playwright/snapshots/polls/polls.spec.ts/Polls-Timeline-tile-no-votes-linux.png b/playwright/snapshots/polls/polls.spec.ts/Polls-Timeline-tile-no-votes-linux.png index 71afa92721e1293f50b8717b459099d44557d973..39e39de9440e141b713a80ad5a11cb2f610ddbd4 100644 GIT binary patch literal 16442 zcmeHuWmH^2n`S2@NU$VW@Faxb+PJ$*aEIXT?vNlsJGe{G;O;ae5Fj{>yVJP4_Flek zX3p8!ncY2S=j^ZPKlj|a_13MbTlK!r^VHj6pA;l9Ul6?jfk2qjQew&=5E2^*^n?fX zDNv#q9N-B8y#z^%39EXf?=7I~j%_@k9GMeb5ceVfMMm{_BKDCQHQXqcfGa#P+*GE> zgO%S?R=&TwdZ3z>jzPA@KZi0EMe4bVG&%Qeu-m+FUvP;^YZQr`D-BXb`Xg72<`DwiQGZ>c#U|Q{^ao%^}py=2&d%d z&qigZd$*>YdYQ7ZZM0waS3df@@5Y97Etu-yPEF4adRX3I`^OMw#Jh2 z)Q*yTJrY}9%`i08v1JE0liS{DMeO;;oN-ICd(&@B%UZJ$nL4k>FS!+gi7ycI+YecV zGb9aRJ*)fxp%b_R7G+ON9TF-`al5xw$74-xQc-ZT5t9!!vDlOTr)F^xkJOI^-j`Sj3=eMQ{%Lp7WnZs!oHjp%4&T z_}8+*iCF7rv=gL5qkg>iOI?nsbK0ZSsZRU#4VMKyrZ^ywMN41*1O~-hP}F-|)`mVc zpz^CBi@LoY%l6R#aWW)KH=t*nIY-DKP+6C4LUYFVcc3T{f6uLomw_^_K{a^4SE6*R z*Pb9l4L88Vz;dWn;>jQ@F%!y#8IaM3xog<^ONHiwPio3zKRR8nCm2_0`HJvK#q}*- zTQ4POkmJ=q#}Pu05sB_%*3Y69k5)T%1i#xQGWp>J;{*}z+^Pi{% zH6PUO=Xwri+IMQO>1P`#h@r zF4pCyfgdURdy4^Z=N3NEw{7%?%RdCjHpViym!CETfQ_dYzKZCjVc?V3_9 zRFmR2;`3wz)&cHjH*nnik-`1AhC3)zLE9@oH-xw^fntMVA_mrecrUPC<=1A zl?o>qwAdis)x}XA{#b9{kg-uyvhNQx@ul*mx468IN{C5;9`p<{>hbDmam+ZK;)T5M zk~XMm(OFoL^E~}ngrT-x#s7Vvc%)i4Ngd8(A?lo%DyKh-Yj=d>L-`Cf4nHW+RiQt5&wExIWu|^!4dj%h?UJ4?L{Roo! z>$X4dzjLm^6+D;;Osvp#KAqf`T%^R;^11GPJ&Ic#OIVfy<#9DKAZOCpWL)xTud>>B zrsb|dewg`ewwb6?YdfDfk1$@hRY5yM+mTB}`kUIf3Nee;!NZ-ovi7cgJ#%y?yS_cz zwCScg@M6~y{qr+kd}DK!l&)v{d-SMH(yBy&JAp9K-O@wP4ovyp+E}Z~IrYIbIz;a8 zeYOTWB^7NVzvWf!E#Vk6{`mB8HCCVf4vCn>aCbT^PVIOD5`^Hd7Up$6C9II!S$WVj zPx9J5*E$myI4SQ@^i#87y@lV(1N&!NQq|StSyTdo==D)gAOc1p=-%DWX9rc-SBdL? zE`C<++rryJry51SNr2A}|B+2o)T3x(a&vJoQ=w?DtYvg}4{2}YJ2?6!toFPMg-B?h zxeSQ(sTyk8+lzxK`Z6{=Bk5wha%%1{Iyk(exc7F0b|S@j)7z87Ok_fKO>{kfY6z~M z%+5d1Vh-7HS5s9@A8t95b=hmiOcV4v#I!EyR+Ox1h#MszwPDlVPd(&>VH?iIk39JL z7ITm(4&R+tOp4>m?qe$G$&LPK$iA2OVV1MmYot+amjKJiG9Lc~bdP7WiPJ`GkY@V=P@ZsdO zg;vBO+sjUZr8}XXBArdoT_oY~iAFK7*3C(%j^N>FIX0on8ZYxDu@T43e9>$)6c#eR(5Q6T}`D4*u!6 zj`EU#_qZL?gY5UcmoK~hRi2lR+H!$vAWJVOb?0ag_amCzQ5`^IiZ{#~R>;pKs#Pz3dhjlq`O?_mhpcL~mm(#C2VHApB3KMxvA?N%k~ z1i%@`^)Op@XpZt#S6lY(iEN$bqG0YB)NOn|Sz(Cbg?e2iv)i7mQGt#4z);6GH0%t} z0^|m}q`2;!y5Sx4N@+?`{Ve{nMC4B`M4c(#LK*^{Q$=a4Jx9;^Zff&VT=uG{s(O&- zECh5KntGa1(oVdGGxIWhFAKQNb`e2~P}4Efg&}Tieqi|#Nt?jhDj-uUxm1}uOG$8W zD#z6+POf zief`Er%wZCz6&E2+l~4(?N8}JEe1=&VhPVXIkVK-rFTuvP6j=}sFjLQD+6t5fBF_h z{Hh|^NUc$-#+$m-v!8=N^=}aKHEdDA_78`(G)$vD_*_>sH_n&(+HBf2esS_By9C_= zvZ+|4f8=-_!zVX~GTNokRTiOqHyAxUb@1W#Sfk6m%i|ND^8{&#r_IM&<+?#epNqlYI`{{Z*4A3vnpy2;YxC@R z0v=}bFneqOW_QwJd0uZYF4G-akdyx4+~uDKse=ulJ;DER}5cgrRI-~v9W z_tlo;;|li|TtXY>w}$2QMyh7MjC=UrqvD!pC?0G$AyQMalrplu} zHOA1jt&yrY_O94LT5*-IH(X?b@lQHUmDb6}tt!u^MY`JKvy7^UdT>ebHIP(CeX_ zYjMVk-)l>J;DhvU1h-M0s$ft6M|sBgrZQ!m0Er*%eEUIfETOpvhJ!om{0-cP7Jj}V zT!U}gtPu(o_Sh7_aG$=Y=)302EX&Iuf}z;?4KVXIij7=} zob0trD50bMM27@e)n}{KUcjH?@Wmw@V_MgGeE4wiK3^sHx6h5j~Z}m|I`8iGxgPY z8oQWDCV_W`i}Tm#Hmz>^?xGu z3G$4xm|Kx^%+w|2D2MWRpVBe;X0Eip z^_p|hvX0;gKRxbcOYvlwzOqeD`eu36pG4JqJ9?*iKElpB`K)f1Iah%E93BaYOZfBK z-U8GcCd+?x%}06KfAfi8{M8dsHizwg04PI&(^Gl6SEaBO+WNlUrp>F4OAx`jz!)Q? ztEN5W&mlPbnH8_z)jvkub4BC72O+q3O zCw0i>c@~k%&mu2XVYl({CZ;!8w$tc`-6m6YN&X{Bu%ug$o7T$rA6FNWLa%Pm2rouk z)x2x)CdeKRN)oWiIc_H0JJ*KktUNDwz67Z`8!)$N4eLL2>L<6*{>Yw{)i4ijUkAJB z+t9r0YxET5_brgf)F?rZt-HHQ{UHHB1A1v>Nk`ubO|1Z`(=75sB@-!qhz zO5wa}x#}fBrTI%YGIGGRI!JgZ`DY`nRWj%q7hRl@U>1vW9SeC8x=~_lvxV`zXScVB z)OU1gh#t4`!4AcXwaSHX&h}{8ga~M8NaPs~9$A!Tt;K#!ON`Vy2`MFxHQK+=l z_|zdxZs8A4C-lYWaB2`3B|s_C6R7s1umwjd3y(PeUHS<;mP@r_-uY z&O%bz4b)7GclSw4kv#sFzVLf8G75K85<$ve!VZ^Bc+b6)1`*Uh#sjfDnNS-!$>zzpD;<0dCV*sp#3OxFE}GkB-UbU3}n@<$iEG38yqFa}DAP<&OU z(HJS7NmQjg);_vdOmIF&zZmkigasyl%VSQVXFL%q`gw>Vs3s3qCedQIwDNEf>v(3* zl&@ zQ8A>kQS4lPyRv*T%y*JO_hOxG(1oz{RsM)jaeeMXX_gRJ&wS z9@D*;MkG(G%PMF5XVP0b?_C|<9B(KZjIiYikh63C__Tc9rzpt4JT$IiZlB4reVTj( z{ee_?2X-D#9wN!fJyEVnc$f3ki>9&)_O~YP6xT0yZ=4U)@e;lE$HebOk+rdhBk}LK zjz)-L!nn>j3Zqd;`qtCAao5?@GW1(QL@%ynP89KYe$g(RDT1Mv@M^LlqC{RIudB(l zMnLh?>=pE6o2mxMfe#3PQ}QZ=L0QLY5WVsYkqW3RX_vjccD+H)_Z>|udH zd%5O}u@s(czew*bT$Uik{IvmaR>}6NCpqImOPf)BN9aefp4b=|7%oNL6n@DlqT)IlGjWU8?oV9Z8N+ zjY`eNFki7z*WXOSUA%Koi9h4ZAKC-`^!@yv1Pa$dUAnHvNqCMlh*+$Jo;4jlx7xaO zaKO!%C{JzYQDjWo+<;*#XRBLFiH4aVWzZS4jlOC6_R)BaYbk2tGNJJ2h2b~TCw?4C zRfI*G8?kxgPh*zStNJjN&a$dTSi%Hme;5RSsqE3AW;idm_B}S=3H#}Ff*DOrl8Q?f zOTU(8MKs=6fBNWuukW-m|ECMbWa2=HAg`N}=DB_aVky;np-8KCY@vTAK*P;W!OnOmqMGUg8do_>|bds_ZtbZs=DHgT-MThd%IRU$sW zmT00P%b?v)Ke{$Z5W(o9TLhIn{AJZPY!b-(Q&_PvC>cEqYy~IuQc(imfRF`754Jcjh$af3GQ#d zw_G|P7fHALK}++lqC06wDxFk}t(IDxu{&vVO7WvIJ{;CekvpUy(=22oQ94t9-rr@f z=-;jL$ygniu;)9v)4DrWyVQ`%Dbi{km+h z^%fin!R_{IrDr@`{J@tKgPz1_z&A-eg8>5V6v?X%9gw|r*inTqAU)j*AcXekK!fuW z)VAxa^Bm(ny*Yh+GnMeo3dyCRLOt8_RHeE+lbRVPSZVC65BH4|r<xb^eE3j2nJ=I{#W7Z@wt3)`iX z#fzCy*f8*wq;akpRQI#bw>v2t-RN%X--&PS!&ubKK1h~EeM0%h`o4{W?1z@x9S(Qn zn?s&v!>-K}w78yTk6scf{h`DpDl^F0Yf~!9DOCgGbR4i5*_ z3NLcWt-c(;{Q7<72b&R%^=yOCI-lG2Xk@Er6&jsDc)TyTOS2pZ+UeZKxw$fzz3q2r z98ZY=w~2y<`m=C!{U<~3ACC}F#joQr(awX+cL9zhx4qb6XN!G5HI0!1Pe&RAuRqI} z3eu;Y3@XMR4YHs~$LPqg*V2MlzjoOZQzgft8I;3HHA%?`h;2!PYK~Knx^B@ko9wUY zq<`&k2NIG~evm9n;Pqm{o4D#oPQ5$%JuC6X~z^nCt z!!$;cCh0V&tVKe+FFYR^KED7Dp|A+-9o<2CR#J_*{c&!<{X`L)|E zG<#*XSq`Po)R+&yFIXFz$s#GZuXcS`%n4|ev&-|TWw9+S#L&FoB?3|2=R4v+2n1;s zMFrLP-|rd#*p!^drE%v&THPDwUrSR{Nso^!m5B)_0ZtZB|DrSXvEb;>f8l9wZIOc+ z^BYwnQt0?D9W4ejAl{ESkYI%luQ_oCy-J4dKFc<(%Wx=w?etA((<$+S1r&u4YmUHi zqfjTz{;F0HwsU6MHwTX-+*d&rLjNcCRV*1(d-Kf}VEc+H1$$c0M`4gew zItgn_L+uGb*s(Bl(Ugx`C9I8CCm%Y)Lw-^K^jgUI^^xaI_=~3_@3rq=Q75cm^uT~p za1LpdKEzPo;$4}*NgW+y$$)6Z-Fo{=f46F-&vqGLCBpZDFP3 z1S4*!r9G8vZ3E`fVdti?Ar@fhVI+6P)e||8&eS$%!ialuxC<940Ys92Y61Lf8=r2* zmKu_pxKFQB$ra5qigsZ;{VirUE$3NKy7n7&HTcajzjx%r-W4V=0?>$5*~6brPP;_+ z1Br!XE3}%5MCPg z{$z;hN6~x@Oph@mUV^rEGLFYpC;(UI`KL5~EJV*-ghHAC<5AMV2KGe{%Wp(XEP3@l7)xPqI_BMBe z%$FII%B%cjL>$lT2qv%C4<08G9ja`QqZ+UQ>iX0WzmJ5RZYyQJruc!40jKks3N(YK z#fy*K%FRROaY=w0A(p{4d7YNRUvH)gO-J7P&o)keG+L6DEog#ER6Lk!Tyfrxf5m4c zo0OJnpu;N5vn#t5}PPRFXd04umx@eSc zCw?2;SKCF#9h)7!Rb+KMDc{$M)9s>ks;fn;TjuiFqNUu4pDn+Bp8(7+D8NdNE?ti% zac)j#XRJCmqjt+`!IVJVV3=tt!~-vJ}*=wskK!7kjuUvJ~^n6jRj4a-lOko$W? zXq>Y-OvpXZ**P(0Jo25TQ^Msv&?0EU@YSp&_zeaLR^fr0hy=aao2q!jhnbuLr2)sg zRZ1M)uFF&w^EF!avAz_BsL#c*{asc%!z+g5cC-Fx4cNZ8mbVJj zfb0wU#SeUZl6_m*iYeA=b3@$E4N^#P4j~rkD+)Cd}8bY zRTH~(LO!R})vfscBxmgVW*S-z3b$Bhz-57!$;MuoKY8$dkh=rE0zyvCbG9AZ5~JJs zgmV|4E59rmkI%v3h`6QqC}9^LyMfYZSVO&>h~Z&(K^h4ei@bd=dt(ctF?`WeZ2`3Q zDWf;z-LlDKN@@E1$fm^PsM%aJzdqSPX0_d;X7zgL<6bOppUs&LqUayp9S| z>VVgUgD5M&9s{U4a3Pat2irqyj!FJ?0!NnqMSq%eGsZtN>o#e>Z&$xCU;VKuiTN*; zyKohK^u;Tt5KJ4IhDwgGiPu=6#()Rdu^?Vv3hifavI4%`I9g|_;`bs<>(m1tb3QWr zzrXw*#~mPFiOK+6|KAdGl0R|LX;|a-IYlYhGrxJ%M%e+*etkUij$nu!T{c z*Z@HKv4fg_R72PYulRtQqn9o(e{mGN9-?O$_&2NC8;9-{hqIe-p0pJ7=c8EfyCW6n z0GXB9vz9kI%=KJWtorkXY$|Xv`n-lkirbDQe$$$dO_H^IEgHMIf z`U_S01fm#L!K%%VRr>@KV3s$r{fYZ4{@6|@A;oeMjUCW#fSF1Gec=M;6N^{2hC?ab z#_B%u!azS$g&m8&0A9NqgQ0*SG8=v1N*9YpSO5tWP$0oez?dY;OZ0R^dG@b;8evui zZ0FGfh7D}H-e?4+qye6l%gguqzDg~RZ^{WrS&HF1HVZ@B%@Po%$=P9{Zhn*L$Vhw1 zi}Ym@;CL#ye`Un}>P&fF{~Jus!qc``K^74dq)GoM4Qqojavrb$WrV!S|Ey)mJQ5uO`bW6MKt>`RjDP?5=(Mu#)mU_QK+(X6vbHam zigj%weu3KlGf)7&MCimgb*AuRM3*x#eEFI7u{%^xvI;AHz6CMlOppgE6An3$JT4B3 zS=iS3o5>*j(H-Nc-=BXK1E^r6)I#zrxA}~@+7`k3SownYzTPQm;H--4W5Ahs z@d^8>YGM}--4pEfSJW%{+VzV;1i;1-j~-QME!k*e?@#ZTxf4@c%ksnyaZ8iSwnX#U z;TmZZxI8DPqouHvZ1@92zn*p4c<`IT4I_+YG$r9BOu>V8=*h`0weL+62Q0&hZeyDZaw;c~U zCKYu4R{Oa>JOPF5g?^VmL(0YMjkChq;`PDpaKZVCD|0OI+^AoXVgtVUzSx6sDUTWN{<+QbE#duR|ELaNJ7aa{D%T7IHuEv&@ z`iu`fP8>d$=~XTv1~OKtN=1Q4;d0j@gaym4d{|5mAgmxV05*WVdAAe1COT1VC5Yp0 zUbzun42>F&mfDir^){>U;j~~mm@<;{=$$D3*poO|kqaL0?39)QY(Z8g+A9OF#rm_G zsGHh&gO-D7SmHPV>AddAibdFa15c`SnA7Z@<7hl3x`vIQ1NFwQ^7F&iD(MwL|7J+? zV+-R0wH;ak{#k-Jh;qe#K^&FLi$l?!VXnq&b%#3bwERPz6$5#bi*`JG9-6&6`=M)k zY=ny{)%YM_o2{PC+Ql%My3nY#*pw@OKbJMY6PFN2d^7)7d)8*Is;9qmL1i)usHxhl zs%m9vsIV+u`3RQ(tYe{WZNT*4@ROwsZ)+=|IIUqaJ1H}u=8;(PY7;xuyZO{(e#4*) z+h^8*w(7uwiv10SMtS1jiiGCd0v&Gp~Duax@-39)TXiiUSw0 zVG5(`fdJj8OV0#sHSCT`IF5-`XKH~acS*3_$w z|Bh$>9nb#1#k2BGL0-SLK=1HNCXc>}B4{?yY;PsYcP0Eo(q z!sQuR_%rY6S+AghOl~1x2Mw7=ju)W*x3(iiy<`C@Se0m^9t^KZh8}xC+a}d9*4U`0 z)f}mB9F7IkRImNT%vq3-FY%Z9&B6!t$cM2A*I_Bqt`}s8p$j=4Eba704-3c&dBHsC zYxZcfi#>kZsf^S#9_!mxw6A>gy1pR_x-T<5v|Q~`fb%(dGT2g`Gj`T190Gf3ngVw; zJ*v{#TDw$5wfh4JX}hXa!#~t%K<{d0w1@vD04}xv@jn6pr;5cYe2%$ekd-L>_0Dol zJMAah8jn#cgva#OAgKiIQRIAiC_qKZ;rH##jF0N%pKenCW~Ln z>(@C+Wm2i)w|Y>@yDgWI*2u5IXVKaocbu5>*6Y0BbyiB2@8w{}%4#hh*xa5^pKusA zR9!KnZ8gYa;7(1@uganFY9zeKnZvB87@D^#x=YY@-0A3uU?Ed}#93wEEeE;j{vBtw z>f*YFoKTWWQo$i9d$g@FcrA1qJMDi}e2(lQ6pY(uI5h_~!-KnZ$cjbV>G}L}#5UHz ze(Adv?IZ7CPek+nT>bLdUKU5PK`SDOI`c5xD0aV#N~l~G&NNwF-`ek?y2kiaD7LSG z;(y-X%#uJ@zEiF@SM$;HN*#YN9J?%?Z==u$k~Hae{_sz5rA-0A9gXmfi~87`+C2*@ zhGy-{S_YnKZa?N4<{QX7fo?{1{UM!WD)XXfsemRFtyeK}(d%k{BX)i*6wwz87U(V$ znKFDww#&K4qt9o;6<6nN(8hM9veuYah0!g=7uxvX92q$6DrLW2Q3yVrAlvD*YiN+x zu&U=z&G#|H>}Ntc2HL;y9JZ05$d_;R~1qFi8p&NGqI( zwPV!Vv5`)Lb?1@M^LIaQIe4J+@_ulvJKQr|2wGqKz^wN0!?&j^j>Gn<(kU`F{*PVJ zfMx;@CK>1Fg`SoR#5)Bg4+Ua4?cJu5l_%Vwi8Dlsjy&h@{jONpbgx<;vk}B@b>T%- zPrwreHOvSwjx%A=eg=w6Xj_dR_2X`w9IVAcb*OD%fcoVMFlh>#LnQ`;O3i zpQasptmv|(eS0us;RMVA!`MIDKGUzg=JU?+Sca@FS=5xO)}s2!7)mXM+|ntb}G8iA}G`fwYhtliekJU62`&h7nK zcjeR->;PfT+Oo#Bhl~juaIKu91FDvEJ&H5?*9#YTqLn8=qGE|2Ep1&bGu6=t&G6Y* zDn?G`{{bW%%p6d?P6>4jtys+50aDsPpabTv-2V%RsGV)*=7~5tuDBQW$wcgx zgk^HIJ@)y*(5W-kef#_dkxv3R2F7OXjunT!{X7LyTco>Nho+Aj@&MiAG1NRoW34lk zAJf~6>{-JkoQ6D(w-OEi2hjWfl)n9|%=#Z^Tm9=(oEPRBR#75a<*;o`WF%mrjRAVZ zGoMUN6T2Z)R8U%SpXY~uwbWQ^nL72*$0I`AeJqPYp%&y>;g=u|mIMc2zPSN24^$r1 z&%`Q(ljA#Qz{*&DxAiu_)-*ELpCY8kkb})SqGDGRU4_s`gk2tI z?LU*v|M%bX|Ke#tkL!xEu;0oAT^A(@R?njP>NKp}+FWv!x=b*grl!G%AYtq{<$2tV z8#CB$L_gesoW|eF%fjAz^h0eQI#snxdD}v9W_$itc#VQ??e}Zf`nN!Lf2jjG(q*vr zgn0eJsj@QqZBw%gZZDby7t}Q7?i^p+w zPA%E(>ZkM6Vg`e@O9Rl@Cwr?XGiQ@M%&x&7PwstM`HFLrPvB+7+bO-F5JW43nb$Nr z28G3l^9g?YDVgO2+esvj2Jg9Zqf@EW>S7s^D6QQ(>0s+ZS3@C`n}&(Ij?>G0eCTRD zy+mw&=C{PJ+fB#t(tQKl-nfecMi#TIG^%=^_Wf!Vd-H?*_{OrBDi*YD0=xQ}T@!14 zT*Lx)?=@!ynIez&eD9R3!^Vg`FGc;~jQ6??&C=wAv>bUER~GK^SiNlvj!LymBdK1q zraGjx*;>nA(hd@Rw?ESR#mTwoEA*RU{B@{bMD(|L=vLGpmhfIc$!V#ymenoVoAHMb zuhP(784p*zNXpa`n=kHR5fL_=ty1P?!X_4I@`GQt%Qj0a)Pg2$4r^Pb~>Upi+;#cxsG1-_VfQ;WXe{`SrV`){8mIEj?&4bgD8UnVZ{x#}J;J2)Ih_Tn@IEGIR%61$0X$itKj2jr6%XY|RsRYY^Y7;$;rd zyOZ&aiyGOP!6+R@cgMc!4hBafiEb)jeb+ihTT=ehuBBV>o+oFlNR`LPZl7(r%W@25 z)|mQHIowdl>di0eZz;S*nu{n;^l3kCpD{o6x{OarIj$Mbq{4)`MNhKDU68;NnkWQX zoZE{rc@mWKaa><5ct(g=ziQW&2IF2+U81&}?Z{l1;M11HYiWoCvHg?tlOqTBd`{k3Y1#ED;xGW)|!1QFk|9T>?nxt_IDD;U2Dd4`}MgSMPx z4%dBWO{N+ll}iEP=}K8gN@DQxUJ%r^uv?l-S^r2zhwIrqCM*G#RwS1;baJ|ICB>AM z#LlEW9PbJ4rU!RxhKy|wl(wAjYbN6Q7dNI$G&oo7PCdk{OH|kxkhk%d$XO436%oj? zcVlWoBlYr3-K6}O(JqZ{_FVFP`z;NNhIrZ*twDD2vdPJhem3;jlhfm+iY0(jNM?1U z8-xiEXZ`FeCO80w79jqCV^Um0W($u=@e=UBZhH@>D<*FFnv8Xp(+--%+;0P7&J)$t zYu?a#|K2dBstAMLc+Ti(bGK;fN{2@<$kG|MU3$2v`f6U5Np!HJ z^*5JuUzdc|>7uK!{|Ur(`-sB>ti zp8OR6I0fN#D9{IG&b0{u)u1xbUeIL8AOOC#E|a=Y;HYoA!Y9m3pT5EZ2=2A~zF78NV>8^g2? zH$?&!+H{TJF(7q|g!~XqNB+9vl_HX_etEL>FiYMXNywIRz8ExV^rxItv@--k^=r&ZPvZg7!L52c~^)3gEx+lI!yG z|DhMlv;58ma1VC@z7)`0w%SY9r$nmX!dS@4q|rn87_sIaIRO5T6(Eyg^@^Cj)+2%LzqmPnuaEyn4QX)&v2u~mU;YRC6W*5q literal 16434 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 literal 24343 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 TQ%WFx&lwFB-B%Sa-+cHl*D^)k literal 24185 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 P=L~dApVU8o{`TJhIkMS6 diff --git a/res/css/_components.pcss b/res/css/_components.pcss index bb0f769b68..66eed09083 100644 --- a/res/css/_components.pcss +++ b/res/css/_components.pcss @@ -238,7 +238,6 @@ @import "./views/messages/_MLocationBody.pcss"; @import "./views/messages/_MNoticeBody.pcss"; @import "./views/messages/_MPollBody.pcss"; -@import "./views/messages/_MPollEndBody.pcss"; @import "./views/messages/_MStickerBody.pcss"; @import "./views/messages/_MTextBody.pcss"; @import "./views/messages/_MVideoBody.pcss"; diff --git a/res/css/components/views/polls/_PollOption.pcss b/res/css/components/views/polls/_PollOption.pcss index 42ec7c8dac..4fecce4752 100644 --- a/res/css/components/views/polls/_PollOption.pcss +++ b/res/css/components/views/polls/_PollOption.pcss @@ -50,8 +50,43 @@ Please see LICENSE files in the repository root for full details. } .mx_PollOption_checked { - border-color: var(--cpd-color-border-interactive-hovered); + .mx_PollOption_popularityBackground { + .mx_PollOption_popularityAmount { + background-color: var(--cpd-color-icon-primary); + } + } + /* override checked radio button styling to show checkmark instead */ + .mx_StyledRadioButton_checked { + input[type="radio"]:checked + div { + position: relative; + border-width: 2px; + border-color: var(--cpd-color-icon-primary); + background-color: var(--cpd-color-icon-primary); + + &::before { + content: ""; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + mask-image: url("@vector-im/compound-design-tokens/icons/check.svg"); + mask-size: 12px 12px; + mask-repeat: no-repeat; + mask-position: center; + background-color: var(--cpd-color-icon-on-solid-primary); + width: 12px; + height: 12px; + } + + div { + visibility: hidden; + } + } + } +} + +.mx_PollOption_ended.mx_PollOption_checked { .mx_PollOption_popularityBackground { .mx_PollOption_popularityAmount { background-color: var(--cpd-color-icon-accent-tertiary); @@ -61,17 +96,8 @@ Please see LICENSE files in the repository root for full details. /* override checked radio button styling to show checkmark instead */ .mx_StyledRadioButton_checked { input[type="radio"]:checked + div { - border-width: 2px; border-color: var(--cpd-color-icon-accent-tertiary); background-color: var(--cpd-color-icon-accent-tertiary); - background-image: url("@vector-im/compound-design-tokens/icons/check.svg"); - background-size: 12px; - background-repeat: no-repeat; - background-position: center; - - div { - visibility: hidden; - } } } } @@ -94,6 +120,6 @@ Please see LICENSE files in the repository root for full details. width: 0%; height: 8px; border-radius: 8px; - background-color: $quaternary-content; + background-color: var(--cpd-color-icon-primary); } } diff --git a/res/css/views/messages/_MPollBody.pcss b/res/css/views/messages/_MPollBody.pcss index 1a7b8731fa..b30807dd59 100644 --- a/res/css/views/messages/_MPollBody.pcss +++ b/res/css/views/messages/_MPollBody.pcss @@ -6,8 +6,10 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Com Please see LICENSE files in the repository root for full details. */ +$poll-max-width: 550px; + .mx_MPollBody { - margin-top: 8px; + margin-top: var(--cpd-space-2x); min-width: 0; /* Override fieldset default min-width: min-content */ width: 100%; /* Ensure fieldset takes full available width */ border: none; /* Remove default fieldset border */ @@ -18,8 +20,16 @@ Please see LICENSE files in the repository root for full details. font-size: $font-15px; line-height: $font-24px; margin-top: 0; - margin-bottom: 8px; + margin-bottom: var(--cpd-space-2x); letter-spacing: var(--cpd-font-letter-spacing-heading-lg); + display: flex; + align-items: center; + gap: var(--cpd-space-3x); + + svg { + flex-shrink: 0; + color: var(--cpd-color-icon-primary); + } .mx_MPollBody_edited { color: $roomtopic-color; @@ -28,22 +38,6 @@ Please see LICENSE files in the repository root for full details. } } - legend::before { - content: ""; - position: relative; - display: inline-block; - margin-right: 12px; - top: 3px; - left: 3px; - height: 20px; - width: 20px; - background-color: $secondary-content; - mask-repeat: no-repeat; - mask-size: contain; - mask-position: center; - mask-image: url("@vector-im/compound-design-tokens/icons/polls.svg"); - } - .mx_MPollBody_totalVotes { display: flex; flex-direction: inline; @@ -67,5 +61,5 @@ Please see LICENSE files in the repository root for full details. display: grid; gap: $spacing-16; margin-bottom: $spacing-8; - max-width: 550px; + max-width: $poll-max-width; } diff --git a/res/css/views/messages/_MPollEndBody.pcss b/res/css/views/messages/_MPollEndBody.pcss deleted file mode 100644 index 655f444e35..0000000000 --- a/res/css/views/messages/_MPollEndBody.pcss +++ /dev/null @@ -1,14 +0,0 @@ -/* -Copyright 2024 New Vector Ltd. -Copyright 2023 The Matrix.org Foundation C.I.C. - -SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial -Please see LICENSE files in the repository root for full details. -*/ - -.mx_MPollEndBody_icon { - height: 14px; - margin-right: $spacing-8; - vertical-align: middle; - color: $secondary-content; -} diff --git a/res/css/views/rooms/_EventBubbleTile.pcss b/res/css/views/rooms/_EventBubbleTile.pcss index 1a38477503..24cd126728 100644 --- a/res/css/views/rooms/_EventBubbleTile.pcss +++ b/res/css/views/rooms/_EventBubbleTile.pcss @@ -355,11 +355,6 @@ Please see LICENSE files in the repository root for full details. /* Keep height equal to text for shield alignment, additional 2px because of 1px padding on text */ height: calc($font-18px + 2px); } - - .mx_MPollEndBody { - /* Prevent the poll end body from exceeding the tile width */ - width: 100%; - } } &:not(.mx_EventTile_noBubble) .mx_EventTile_line:not(.mx_EventTile_mediaLine) { diff --git a/src/components/views/messages/MPollBody.tsx b/src/components/views/messages/MPollBody.tsx index 15f2efce4b..983a4d5147 100644 --- a/src/components/views/messages/MPollBody.tsx +++ b/src/components/views/messages/MPollBody.tsx @@ -22,6 +22,8 @@ import { import { RelatedRelations } from "matrix-js-sdk/src/models/related-relations"; import { type PollStartEvent, type PollAnswerSubevent } from "matrix-js-sdk/src/extensible_events_v1/PollStartEvent"; import { PollResponseEvent } from "matrix-js-sdk/src/extensible_events_v1/PollResponseEvent"; +import PollsIcon from "@vector-im/compound-design-tokens/assets/web/icons/polls"; +import PollsEndIcon from "@vector-im/compound-design-tokens/assets/web/icons/polls-end"; import { _t } from "../../../languageHandler"; import Modal from "../../../Modal"; @@ -324,14 +326,18 @@ export default class MPollBody extends React.Component { ({_t("common|edited")}) ) : null; + const PollIcon = poll.isEnded ? PollsEndIcon : PollsIcon; + const pollLabel = poll.isEnded ? _t("poll|ended_poll_label") : _t("poll|poll_label"); + return (
+ {pollEvent.question.text} {editedSpan}
- {pollEvent.answers.map((answer: PollAnswerSubevent) => { + {pollEvent.answers.map((answer: PollAnswerSubevent, index: number) => { let answerVotes = 0; if (showResults) { @@ -346,6 +352,7 @@ export default class MPollBody extends React.Component { key={answer.id} pollId={pollId} answer={answer} + optionNumber={index + 1} isChecked={checked} isEnded={poll.isEnded} voteCount={answerVotes} diff --git a/src/components/views/messages/MPollEndBody.tsx b/src/components/views/messages/MPollEndBody.tsx deleted file mode 100644 index 622071be08..0000000000 --- a/src/components/views/messages/MPollEndBody.tsx +++ /dev/null @@ -1,108 +0,0 @@ -/* -Copyright 2024 New Vector Ltd. -Copyright 2023 The Matrix.org Foundation C.I.C. - -SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial -Please see LICENSE files in the repository root for full details. -*/ - -import React, { useEffect, useState, useContext, type JSX } from "react"; -import { MatrixEvent, M_TEXT } from "matrix-js-sdk/src/matrix"; -import { logger } from "matrix-js-sdk/src/logger"; -import { PollsEndIcon } from "@vector-im/compound-design-tokens/assets/web/icons"; - -import MatrixClientContext, { useMatrixClientContext } from "../../../contexts/MatrixClientContext"; -import { _t } from "../../../languageHandler"; -import { textForEvent } from "../../../TextForEvent"; -import { Caption } from "../typography/Caption"; -import { type IBodyProps } from "./IBodyProps"; -import MPollBody from "./MPollBody"; - -const getRelatedPollStartEventId = (event: MatrixEvent): string | undefined => { - const relation = event.getRelation(); - return relation?.event_id; -}; - -/** - * Attempt to retrieve the related poll start event for this end event - * If the event already exists in the rooms timeline, return it - * Otherwise try to fetch the event from the server - * @param event - * @returns - */ -const usePollStartEvent = (event: MatrixEvent): { pollStartEvent?: MatrixEvent; isLoadingPollStartEvent: boolean } => { - const matrixClient = useContext(MatrixClientContext); - const [pollStartEvent, setPollStartEvent] = useState(); - const [isLoadingPollStartEvent, setIsLoadingPollStartEvent] = useState(false); - - const pollStartEventId = getRelatedPollStartEventId(event); - - useEffect(() => { - const room = matrixClient.getRoom(event.getRoomId()); - const fetchPollStartEvent = async (roomId: string, pollStartEventId: string): Promise => { - setIsLoadingPollStartEvent(true); - try { - const startEventJson = await matrixClient.fetchRoomEvent(roomId, pollStartEventId); - const startEvent = new MatrixEvent(startEventJson); - // add the poll to the room polls state - room?.processPollEvents([startEvent, event]); - - // end event is not a valid end to the related start event - // if not sent by the same user - if (startEvent.getSender() === event.getSender()) { - setPollStartEvent(startEvent); - } - } catch (error) { - logger.error("Failed to fetch related poll start event", error); - } finally { - setIsLoadingPollStartEvent(false); - } - }; - - if (pollStartEvent || !room || !pollStartEventId) { - return; - } - - const timelineSet = room.getUnfilteredTimelineSet(); - const localEvent = timelineSet - ?.getTimelineForEvent(pollStartEventId) - ?.getEvents() - .find((e) => e.getId() === pollStartEventId); - - if (localEvent) { - // end event is not a valid end to the related start event - // if not sent by the same user - if (localEvent.getSender() === event.getSender()) { - setPollStartEvent(localEvent); - } - } else { - // pollStartEvent is not in the current timeline, - // fetch it - fetchPollStartEvent(room.roomId, pollStartEventId); - } - }, [event, pollStartEventId, pollStartEvent, matrixClient]); - - return { pollStartEvent, isLoadingPollStartEvent }; -}; - -export const MPollEndBody = ({ mxEvent, ref, ...props }: IBodyProps): JSX.Element => { - const cli = useMatrixClientContext(); - const { pollStartEvent, isLoadingPollStartEvent } = usePollStartEvent(mxEvent); - - if (!pollStartEvent) { - const pollEndFallbackMessage = M_TEXT.findIn(mxEvent.getContent()) || textForEvent(mxEvent, cli); - return ( - <> - - {!isLoadingPollStartEvent && pollEndFallbackMessage} - - ); - } - - return ( -
- {_t("timeline|m.poll.end|ended")} - -
- ); -}; diff --git a/src/components/views/messages/MessageEvent.tsx b/src/components/views/messages/MessageEvent.tsx index fc800b72b0..6d124c88a8 100644 --- a/src/components/views/messages/MessageEvent.tsx +++ b/src/components/views/messages/MessageEvent.tsx @@ -15,7 +15,6 @@ import { MatrixEventEvent, M_BEACON_INFO, M_LOCATION, - M_POLL_END, M_POLL_START, type IContent, } from "matrix-js-sdk/src/matrix"; @@ -34,7 +33,6 @@ import MVoiceOrAudioBody from "./MVoiceOrAudioBody"; import MVideoBody from "./MVideoBody"; import MStickerBody from "./MStickerBody"; import MPollBody from "./MPollBody"; -import { MPollEndBody } from "./MPollEndBody"; import MLocationBody from "./MLocationBody"; import MjolnirBody from "./MjolnirBody"; import MBeaconBody from "./MBeaconBody"; @@ -75,8 +73,6 @@ const baseEvTypes = new Map>([ [EventType.Sticker, MStickerBody], [M_POLL_START.name, MPollBody], [M_POLL_START.altName, MPollBody], - [M_POLL_END.name, MPollEndBody], - [M_POLL_END.altName, MPollEndBody], [M_BEACON_INFO.name, MBeaconBody], [M_BEACON_INFO.altName, MBeaconBody], ]); diff --git a/src/components/views/polls/PollOption.tsx b/src/components/views/polls/PollOption.tsx index a8de8fb6ef..277ebc3395 100644 --- a/src/components/views/polls/PollOption.tsx +++ b/src/components/views/polls/PollOption.tsx @@ -36,50 +36,67 @@ const PollOptionContent: React.FC = ({ isWinner, answer, interface PollOptionProps extends PollOptionContentProps { pollId: string; totalVoteCount: number; + optionNumber: number; isEnded?: boolean; isChecked?: boolean; onOptionSelected?: (id: string) => void; children?: ReactNode; } -const EndedPollOption: React.FC> = ({ - isChecked, - children, - answer, -}) => ( -
- {children} -
-); - -const ActivePollOption: React.FC> = ({ +const ActivePollOption: React.FC & { children: ReactNode }> = ({ pollId, isChecked, + isEnded, + optionNumber, + isWinner, + voteCount, + displayVoteCount, children, answer, onOptionSelected, -}) => ( - onOptionSelected?.(answer.id)} - > - {children} - -); +}) => { + let ariaLabel: string; + + if (displayVoteCount && isWinner) { + ariaLabel = _t("poll|option_label_winning_with_total", { + number: optionNumber, + answer: answer.text, + count: voteCount, + }); + } else if (displayVoteCount) { + ariaLabel = _t("poll|option_label_with_total", { + number: optionNumber, + answer: answer.text, + count: voteCount, + }); + } else { + ariaLabel = _t("poll|option_label", { + number: optionNumber, + answer: answer.text, + }); + } + + return ( + onOptionSelected?.(answer.id)} + > + + + ); +}; export const PollOption: React.FC = ({ pollId, answer, voteCount, totalVoteCount, + optionNumber, displayVoteCount, isEnded, isChecked, @@ -92,13 +109,17 @@ export const PollOption: React.FC = ({ }); const isWinner = isEnded && isChecked; const answerPercent = totalVoteCount === 0 ? 0 : Math.round((100.0 * voteCount) / totalVoteCount); - const PollOptionWrapper = isEnded ? EndedPollOption : ActivePollOption; return (
onOptionSelected?.(answer.id)}> - = ({ voteCount={voteCount} displayVoteCount={displayVoteCount} /> - +
diff --git a/src/components/views/polls/pollHistory/PollListItemEnded.tsx b/src/components/views/polls/pollHistory/PollListItemEnded.tsx index 4c5805562a..39d2d0e07d 100644 --- a/src/components/views/polls/pollHistory/PollListItemEnded.tsx +++ b/src/components/views/polls/pollHistory/PollListItemEnded.tsx @@ -28,6 +28,7 @@ type EndedPollState = { winningAnswers: { answer: PollAnswerSubevent; voteCount: number; + optionNumber: number; }[]; totalVoteCount: number; }; @@ -40,10 +41,12 @@ const getWinningAnswers = (poll: Poll, responseRelations: Relations): EndedPollS return { totalVoteCount, winningAnswers: poll.pollEvent.answers - .filter((answer) => votes.get(answer.id) === winCount) - .map((answer) => ({ + .map((answer, index) => ({ answerIndex: index, answer })) // keep track of original answer index + .filter(({ answer }) => votes.get(answer.id) === winCount) + .map(({ answer, answerIndex }) => ({ answer, voteCount: votes.get(answer.id) || 0, + optionNumber: answerIndex + 1, })), }; }; @@ -100,13 +103,14 @@ export const PollListItemEnded: React.FC = ({ event, poll, onClick }) =>
{!!winningAnswers?.length && (
- {winningAnswers?.map(({ answer, voteCount }) => ( + {winningAnswers?.map(({ answer, voteCount, optionNumber }) => ( { expect(runFindTopAnswer([])).toEqual(""); }); - it("shows non-radio buttons if the poll is ended", async () => { + it("shows disabled radio buttons if the poll is ended", async () => { const events = [newPollEndEvent()]; const { container } = await newMPollBody([], events); - expect(container.querySelector(".mx_StyledRadioButton")).not.toBeInTheDocument(); - expect(container.querySelector('input[type="radio"]')).not.toBeInTheDocument(); + expect(container.querySelector(".mx_StyledRadioButton")).toBeInTheDocument(); + expect(container.querySelector('input[type="radio"][disabled]')).toBeInTheDocument(); }); it("counts votes as normal if the poll is ended", async () => { @@ -551,8 +551,8 @@ describe("MPollBody", () => { const ends = [newPollEndEvent("@me:example.com", 25)]; const renderResult = await newMPollBody(votes, ends); - expect(renderResult.container.querySelectorAll(".mx_StyledRadioButton")).toHaveLength(0); - expect(renderResult.container.querySelectorAll('input[type="radio"]')).toHaveLength(0); + expect(renderResult.container.querySelectorAll(".mx_StyledRadioButton")).toHaveLength(4); + expect(renderResult.container.querySelectorAll('input[type="radio"][disabled]')).toHaveLength(4); expect(endedVotesCount(renderResult, "pizza")).toBe("2 votes"); expect(endedVotesCount(renderResult, "poutine")).toBe("0 votes"); expect(endedVotesCount(renderResult, "italian")).toBe("0 votes"); @@ -646,9 +646,9 @@ describe("MPollBody", () => { expect(endedVoteChecked(renderResult, "wings")).toBe(true); expect(endedVoteChecked(renderResult, "pizza")).toBe(false); - // Double-check by looking for the endedOptionWinner class - expect(endedVoteDiv(renderResult, "wings").className.includes("mx_PollOption_endedOptionWinner")).toBe(true); - expect(endedVoteDiv(renderResult, "pizza").className.includes("mx_PollOption_endedOptionWinner")).toBe(false); + // Double-check by looking for the checked class + expect(endedVoteDiv(renderResult, "wings").className.includes("mx_PollOption_checked")).toBe(true); + expect(endedVoteDiv(renderResult, "pizza").className.includes("mx_PollOption_checked")).toBe(false); }); it("highlights multiple winning votes", async () => { @@ -731,9 +731,7 @@ describe("MPollBody", () => { }); pollEvent.makeReplaced(replacingEvent); const { getByTestId, container } = await newMPollBodyFromEvent(pollEvent, []); - expect(getByTestId("pollQuestion").innerHTML).toEqual( - 'new question (edited)', - ); + expect(getByTestId("pollQuestion").textContent).toEqual("new question (edited)"); const inputs = container.querySelectorAll('input[type="radio"]'); expect(inputs).toHaveLength(3); expect(inputs[0].getAttribute("value")).toEqual("n1"); @@ -951,7 +949,7 @@ function endedVoteChecked({ getByTestId }: RenderResult, value: string): boolean } function endedVoteDiv({ getByTestId }: RenderResult, value: string): Element { - return getByTestId(`pollOption-${value}`).firstElementChild!; + return getByTestId(`pollOption-${value}`); } function endedVotesCount(renderResult: RenderResult, value: string): string { diff --git a/test/unit-tests/components/views/messages/MPollEndBody-test.tsx b/test/unit-tests/components/views/messages/MPollEndBody-test.tsx deleted file mode 100644 index 7015e3d1d9..0000000000 --- a/test/unit-tests/components/views/messages/MPollEndBody-test.tsx +++ /dev/null @@ -1,193 +0,0 @@ -/* -Copyright 2024 New Vector Ltd. -Copyright 2023 The Matrix.org Foundation C.I.C. - -SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial -Please see LICENSE files in the repository root for full details. -*/ - -import React from "react"; -import { render, waitFor } from "jest-matrix-react"; -import { type EventTimeline, type MatrixEvent, Room, M_TEXT } from "matrix-js-sdk/src/matrix"; -import { logger } from "matrix-js-sdk/src/logger"; - -import { type IBodyProps } from "../../../../../src/components/views/messages/IBodyProps"; -import { MPollEndBody } from "../../../../../src/components/views/messages/MPollEndBody"; -import MatrixClientContext from "../../../../../src/contexts/MatrixClientContext"; -import { type RoomPermalinkCreator } from "../../../../../src/utils/permalinks/Permalinks"; -import { type MediaEventHelper } from "../../../../../src/utils/MediaEventHelper"; -import { - flushPromises, - getMockClientWithEventEmitter, - makePollEndEvent, - makePollStartEvent, - mockClientMethodsEvents, - mockClientMethodsUser, - setupRoomWithPollEvents, -} from "../../../../test-utils"; - -describe("", () => { - const userId = "@alice:domain.org"; - const roomId = "!room:domain.org"; - const mockClient = getMockClientWithEventEmitter({ - ...mockClientMethodsUser(userId), - ...mockClientMethodsEvents(), - getRoom: jest.fn(), - relations: jest.fn(), - fetchRoomEvent: jest.fn(), - }); - const pollStartEvent = makePollStartEvent("Question?", userId, undefined, { roomId }); - const pollEndEvent = makePollEndEvent(pollStartEvent.getId()!, roomId, userId, 123); - - const setupRoomWithEventsTimeline = async (pollEnd: MatrixEvent, pollStart?: MatrixEvent): Promise => { - if (pollStart) { - await setupRoomWithPollEvents([pollStart], [], [pollEnd], mockClient); - } - const room = mockClient.getRoom(roomId) || new Room(roomId, mockClient, userId); - - // end events validate against this - jest.spyOn(room.currentState, "maySendRedactionForEvent").mockImplementation( - (_evt: MatrixEvent, id: string) => { - return id === mockClient.getSafeUserId(); - }, - ); - - const timelineSet = room.getUnfilteredTimelineSet(); - const getTimelineForEventSpy = jest.spyOn(timelineSet, "getTimelineForEvent"); - // if we have a pollStart, mock the room timeline to include it - if (pollStart) { - const eventTimeline = { - getEvents: jest.fn().mockReturnValue([pollEnd, pollStart]), - } as unknown as EventTimeline; - getTimelineForEventSpy.mockReturnValue(eventTimeline); - } - mockClient.getRoom.mockReturnValue(room); - - return room; - }; - - const defaultProps = { - mxEvent: pollEndEvent, - highlightLink: "unused", - mediaEventHelper: {} as unknown as MediaEventHelper, - onMessageAllowed: () => {}, - permalinkCreator: {} as unknown as RoomPermalinkCreator, - ref: undefined as any, - }; - - const getComponent = (props: Partial = {}) => - render(, { - wrapper: ({ children }) => ( - {children} - ), - }); - - beforeEach(() => { - mockClient.getRoom.mockReset(); - mockClient.relations.mockResolvedValue({ - events: [], - }); - mockClient.fetchRoomEvent.mockResolvedValue(pollStartEvent.getEffectiveEvent()); - }); - - afterEach(() => { - jest.spyOn(logger, "error").mockRestore(); - }); - - describe("when poll start event exists in current timeline", () => { - it("renders an ended poll", async () => { - await setupRoomWithEventsTimeline(pollEndEvent, pollStartEvent); - const { container } = getComponent(); - - // ended poll rendered - expect(container).toMatchSnapshot(); - - // didnt try to fetch start event while it was already in timeline - expect(mockClient.fetchRoomEvent).not.toHaveBeenCalled(); - }); - - it("does not render a poll tile when end event is invalid", async () => { - // sender of end event does not match start event - const invalidEndEvent = makePollEndEvent(pollStartEvent.getId()!, roomId, "@mallory:domain.org", 123); - await setupRoomWithEventsTimeline(invalidEndEvent, pollStartEvent); - const { getByText } = getComponent({ mxEvent: invalidEndEvent }); - - // no poll tile rendered - expect(getByText("The poll has ended. Something.")).toBeTruthy(); - }); - }); - - describe("when poll start event does not exist in current timeline", () => { - it("fetches the related poll start event and displays a poll tile", async () => { - await setupRoomWithEventsTimeline(pollEndEvent); - const { container, getByTestId, getByRole, queryByRole } = getComponent(); - - // while fetching event, only icon is shown - expect(container).toMatchSnapshot(); - - await waitFor(() => expect(getByRole("progressbar")).toBeInTheDocument()); - await waitFor(() => expect(queryByRole("progressbar")).not.toBeInTheDocument()); - - expect(mockClient.fetchRoomEvent).toHaveBeenCalledWith(roomId, pollStartEvent.getId()); - - // quick check for poll tile - expect(getByTestId("pollQuestion").innerHTML).toEqual("Question?"); - expect(getByTestId("totalVotes").innerHTML).toEqual("Final result based on 0 votes"); - }); - - it("does not render a poll tile when end event is invalid", async () => { - // sender of end event does not match start event - const invalidEndEvent = makePollEndEvent(pollStartEvent.getId()!, roomId, "@mallory:domain.org", 123); - await setupRoomWithEventsTimeline(invalidEndEvent); - const { getByText } = getComponent({ mxEvent: invalidEndEvent }); - - // flush the fetch event promise - await flushPromises(); - - // no poll tile rendered - expect(getByText("The poll has ended. Something.")).toBeTruthy(); - }); - - it("logs an error and displays the text fallback when fetching the start event fails", async () => { - await setupRoomWithEventsTimeline(pollEndEvent); - mockClient.fetchRoomEvent.mockRejectedValue({ code: 404 }); - const logSpy = jest.spyOn(logger, "error").mockImplementation(() => {}); - const { getByText } = getComponent(); - - // flush the fetch event promise - await flushPromises(); - - // poll end event fallback text used - expect(getByText("The poll has ended. Something.")).toBeTruthy(); - expect(logSpy).toHaveBeenCalledWith("Failed to fetch related poll start event", { code: 404 }); - }); - - it("logs an error and displays the extensible event text when fetching the start event fails", async () => { - await setupRoomWithEventsTimeline(pollEndEvent); - mockClient.fetchRoomEvent.mockRejectedValue({ code: 404 }); - const logSpy = jest.spyOn(logger, "error").mockImplementation(() => {}); - const { getByText } = getComponent(); - - // flush the fetch event promise - await flushPromises(); - - // poll end event fallback text used - expect(getByText("The poll has ended. Something.")).toBeTruthy(); - expect(logSpy).toHaveBeenCalledWith("Failed to fetch related poll start event", { code: 404 }); - }); - - it("displays fallback text when the poll end event does not have text", async () => { - const endWithoutText = makePollEndEvent(pollStartEvent.getId()!, roomId, userId, 123); - delete endWithoutText.getContent()[M_TEXT.name]; - await setupRoomWithEventsTimeline(endWithoutText); - mockClient.fetchRoomEvent.mockRejectedValue({ code: 404 }); - const { getByText } = getComponent({ mxEvent: endWithoutText }); - - // flush the fetch event promise - await flushPromises(); - - // default fallback text used - expect(getByText("@alice:domain.org has ended a poll")).toBeTruthy(); - }); - }); -}); diff --git a/test/unit-tests/components/views/messages/__snapshots__/MPollBody-test.tsx.snap b/test/unit-tests/components/views/messages/__snapshots__/MPollBody-test.tsx.snap index cc8c2b3cc6..1b57a0aa0f 100644 --- a/test/unit-tests/components/views/messages/__snapshots__/MPollBody-test.tsx.snap +++ b/test/unit-tests/components/views/messages/__snapshots__/MPollBody-test.tsx.snap @@ -8,6 +8,21 @@ exports[`MPollBody renders a finished poll 1`] = ` + + + + What should we order for the party?
-
+ +
+
+
-
- 0 votes +
+
+ Pizza +
+
+ 0 votes +
+
-
+
+
@@ -49,25 +84,45 @@ exports[`MPollBody renders a finished poll 1`] = ` class="mx_PollOption mx_PollOption_ended" data-testid="pollOption-poutine" > -
+ +
+
+
-
- 0 votes +
+
+ Poutine +
+
+ 0 votes +
+
-
+
+
@@ -81,28 +136,48 @@ exports[`MPollBody renders a finished poll 1`] = ` class="mx_PollOption mx_PollOption_checked mx_PollOption_ended" data-testid="pollOption-italian" > -
+ +
+
+
- Italian -
- -
+
+
@@ -116,25 +191,45 @@ exports[`MPollBody renders a finished poll 1`] = ` class="mx_PollOption mx_PollOption_ended" data-testid="pollOption-wings" > -
+ +
+
+
-
- 1 vote +
+
+ Wings +
+
+ 1 vote +
+
-
+
+
@@ -163,6 +258,21 @@ exports[`MPollBody renders a finished poll with multiple winners 1`] = ` + + + + What should we order for the party?
-
+ +
+
+
- Pizza -
- -
+
+
@@ -207,25 +337,45 @@ exports[`MPollBody renders a finished poll with multiple winners 1`] = ` class="mx_PollOption mx_PollOption_ended" data-testid="pollOption-poutine" > -
+ +
+
+
-
- 0 votes +
+
+ Poutine +
+
+ 0 votes +
+
-
+
+
@@ -239,25 +389,45 @@ exports[`MPollBody renders a finished poll with multiple winners 1`] = ` class="mx_PollOption mx_PollOption_ended" data-testid="pollOption-italian" > -
+ +
+
+
-
- 0 votes +
+
+ Italian +
+
+ 0 votes +
+
-
+
+
@@ -271,28 +441,48 @@ exports[`MPollBody renders a finished poll with multiple winners 1`] = ` class="mx_PollOption mx_PollOption_checked mx_PollOption_ended" data-testid="pollOption-wings" > -
+ +
+
+
- Wings -
- -
+
+
@@ -321,6 +511,21 @@ exports[`MPollBody renders a finished poll with no votes 1`] = ` + + + + What should we order for the party?
-
+ +
+
+
-
- 0 votes +
+
+ Pizza +
+
+ 0 votes +
+
-
+
+
@@ -362,25 +587,45 @@ exports[`MPollBody renders a finished poll with no votes 1`] = ` class="mx_PollOption mx_PollOption_ended" data-testid="pollOption-poutine" > -
+ +
+
+
-
- 0 votes +
+
+ Poutine +
+
+ 0 votes +
+
-
+
+
@@ -394,25 +639,45 @@ exports[`MPollBody renders a finished poll with no votes 1`] = ` class="mx_PollOption mx_PollOption_ended" data-testid="pollOption-italian" > -
+ +
+
+
-
- 0 votes +
+
+ Italian +
+
+ 0 votes +
+
-
+
+
@@ -426,25 +691,45 @@ exports[`MPollBody renders a finished poll with no votes 1`] = ` class="mx_PollOption mx_PollOption_ended" data-testid="pollOption-wings" > -
+ +
+
+
-
- 0 votes +
+
+ Wings +
+
+ 0 votes +
+
-
+
+
@@ -473,6 +758,18 @@ exports[`MPollBody renders a poll that I have not voted in 1`] = ` + + + What should we order for the party?