From c4638d177361eb7625ddac17227f78195703a773 Mon Sep 17 00:00:00 2001 From: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> Date: Thu, 23 Apr 2026 17:04:09 +0100 Subject: [PATCH] Promote "Share encrypted history" from labs (#33281) * Promote "Share encrypted history" from labs * fix lint * Update labs.md * update snapshots * Update unit tests * update playwright screenshot --- .../e2e/crypto/history-sharing.spec.ts | 1 - .../send-your-first-message-view-linux.png | Bin 26638 -> 27172 bytes .../views/rooms/RoomHeader/RoomHeader.tsx | 3 +- apps/web/src/i18n/strings/en_EN.json | 3 - apps/web/src/settings/Settings.tsx | 24 -------- apps/web/src/stores/RoomViewStore.tsx | 4 +- apps/web/src/utils/MultiInviter.ts | 6 +- .../__snapshots__/RoomView-test.tsx.snap | 56 ++++++++++++++---- .../rooms/RoomHeader/RoomHeader-test.tsx | 21 ------- .../__snapshots__/RoomHeader-test.tsx.snap | 8 +-- .../unit-tests/slash-commands/invite-test.ts | 7 ++- .../unit-tests/stores/RoomViewStore-test.ts | 14 ++--- .../unit-tests/utils/MultiInviter-test.ts | 24 +++----- docs/labs.md | 8 --- 14 files changed, 72 insertions(+), 107 deletions(-) diff --git a/apps/web/playwright/e2e/crypto/history-sharing.spec.ts b/apps/web/playwright/e2e/crypto/history-sharing.spec.ts index 29676036ba..cefa38b580 100644 --- a/apps/web/playwright/e2e/crypto/history-sharing.spec.ts +++ b/apps/web/playwright/e2e/crypto/history-sharing.spec.ts @@ -13,7 +13,6 @@ import { createRoom, sendMessageInCurrentRoom } from "./utils"; test.use({ displayName: "Alice", - labsFlags: ["feature_share_history_on_invite"], }); /** Tests for MSC4268: encrypted history sharing */ diff --git a/apps/web/playwright/snapshots/invite/invite-dialog.spec.ts/send-your-first-message-view-linux.png b/apps/web/playwright/snapshots/invite/invite-dialog.spec.ts/send-your-first-message-view-linux.png index 9b14c9e11bac48bc6976546b315c7a21ba804d86..7e795251a8a09ad511c4d654ec90406a4365c624 100644 GIT binary patch literal 27172 zcmd43XH=72voMT$TWKmP0s<=1n{??aBGQo-IwDO7y^}ytQIM{*&_U@Xq1OOWL3-~Y zgh&YxAVfMOguL-N=Q)4RdCU6N_lK}D*R}V|?CCQ*Q3iS%j91vN(9zK`YQA`8NJn>0 zi;nK>$fdKiZ|+I53e(YDrPF-gEx6LZ)YGwueDsG z=~ten?xgikN@^qUgFr;1M+2%zRL-(a8rr%x>7}Wo{^Oy#72WwC=Z$YaV|(UgeER}H zUMla~yR)vi++ni1Y=3%f{J=DpcrrYb)ibK7SjJ1+{?ga>e`p`?t`cc~KRj(cN5kdH zHWMA)V}VXZ+E-uyM}X)!zr*Z71!$8Bp(mc@n19&%5x~k#AeFn$2rc9GdUd8u6Y+cM zG+a5eStgaXsuy}a`(G#&BJ6ipky}R)>_=bqLS85Yv1eI0K2dHv+|}@;!-)kbQCI3-9Z9bF#Z)=Uqop6EuwA=*|J z*K=F~wbeiV%2dJFi3xG;z1F`>TVvAKxh&8}|6sZ>D)1pXyv;xHMpQvvpQgS%1Deb>RL?~V*-cs5|zFxBK4RF+1)m}-k75uv^yNBGo zJH-cT^(twrW|tHrf!+KUJB1s;7{n^ZnHq51n5pw>T=va+!x;j>BV^7hNR0YPMaq@f zrH(IV921>vELC0Y)E-mr{9LVUv&z2rDig7veV4XtN)v1yGwi#xj-E(zRUd8Aj3J{{ z{#5=+zeZ`paLoCTK>Hi+$HRK189HqA8sG+Z%Y|ZJYeW}?K1fxfvFLY#ujRJKYE7p$ zFBJIa{rIX+!Wu63seaEmAla^0{rZ4yhdnyn7XH3mMnUQFf2rr$Z}1Vl}i++?qj z3!{!s?;>r&*1Do}*|sg2Qmj$KX-)T35M@mzK0aeJS`B&@afU4$@vAmg?Aglr@q(Ac zEwIZI*NGe{+98*eyM|#9wdSj0Il}N>VJ+scrp;R7E)1amvV}re=;ikJt5aE+$=9Xd zm*{}Ko<6Q+9md_xXqw1F;boS(sme=*$qe0#av~ry1{bNd2%rY7c~kRdWp#ABA;&IZ zQ3X2;K7F5tU(DU91lPqi)X)_(Ww50v7`1@stw1wHkT$?+B_;-2G=%kf3MmM;TcZ}~g&NqK*NplVE;{w0DILfzM*IqDO3|z50|4@A+B`?%0pwA^#wYdk9bJk( zH6#zVYERE>9r~;KXw6t2bIi;>sV}U_yRAwwRHuk}?#BG^IoC)a( z3Nxq7v*g>NtPU*H76JMnl($DCf~=!X3SL4Ra2rVKQZ1&@?Y`%nuhV#YYghu|p~PN$ z7o+=7wj8UC0Aa>r-zNys6LyhZEW=q$D~V<~IgQ9cQ1AoWGMV~(?D)A0hoZtL{9#Dw zAHV$wr7W#V)Z>q8wp2=W_fIacNL^Ut6RH`^moa#KJe?UKDEh>m5=lHQNRnpOvu&0N z4qM+!sXPySKuKlBTIa5k)-LX1!zR=q%|%#YEX8x%GTgfV{hMHCQ=ffeh5vZO5u)#S zYeXOI-)I%6c5>2))D!+PuYU`nS>&r1F(()>X ze8^8Z>E-e9(y=<)E}O_4Y|@R1aFjc3dqDZ^ogcE4i!B&P%QZZBHLMqprHqI9&y`Lj zt^Sox=)~z9f@X{i2WRT2Yba`nA4Y8@Nh9C+v`%IHsf@E-1^#JVi(1rln~LJ_)#U+N6^YExY+i7sL}RldHj$0L<@hnUul)WKQIhtpTms-w+#DO@jQR z7qy^z2sPEVhI_i98AW%c4&`B0|hDk$*{fcQGsk z9|bUV%+w*NDad17>YmIB#{ud!K0~wCwfrLYQdkFdS_o4^6+nYeP@KA+O*pq-{eg2M zH^PN7kXP#U#{~4{G^G^uQ5T*(@wmxv&~l+!%OplQPc_kZVf3PSZzUC$wyK~NQP>4{Yl`-rM09-`59f>$uoe*c1_HBel|01~P!+Ou5&ah@CB&aBqn) zTQplCRYK-GOO7g>Uwk$d6ik_lb(Xx%==iH%INN-%gPT|v0PcqbK;(PIMs(YP!=`%6 zZ2`fOOX9o8`J9&lgcNR@+|va9Q(_czm_$iEMZ`pbLaJo#hE9qzB2@2i&V}vmeI$FD z4u>=WeUpxNST`hvRRs83ag`V9d}{7w9KYlr%93Kd>?(GK?rlrK!KC79!=PRvW}ejp zg_^MyOcrDZ0Cls_kF;dG*YY(&;M@at95+<@u$qPn$_g?e`z+Vkkgamx`n%apqUI$J zjK|_htNHV({ywhx{wZUA$P=(1m0HK9O6|`d2%X8!euUw#f#`r^h?4 zi4KDV(M_1m#eR2d_6X&X#lb>6bATVio9UzVrLTvI{b5|a^3+P=`13<=ciccq+!?wO zOIO>r-6kyT-M0hrMsH84ASY(`;L7?()Zf9oFdIW`QF}vqrm=Pd{PahMb4cq}zvleZ z#PY=Mq+@?kJ7Z{66Sh2iM|21_vh!i8`j0F#ZRME`-%x_re&|!0>3w5UPAliupTUV>#Sl5q37^o!<+slT44RwwfWq( z-mSebNGN}x(F}HhJ?H0q5!M%Tj(g+5-@qHRHB<5lVuaA%FG#Blv=tCY-1;YyFCa8G zG>@3<@i$>8Bj_=KQiR=gttQHC(8g}knvEK$k%Q{M3x1cE6zgeExUK|Lf)ByXk^5Mc zZRGB;x_ZRx(v{6gtrVk%EfSLcwV7}5am_9eE>^+~UsSC3EgTES2o<{pLFhy&x z^xIV)2LFj7|0QUm4-*~e*Z{eSwBK&0d0*KE#xe!|N;@NPZK*L~qKb@d*$Y;9K@+9# z?oEho_(1cWjvs>>HHp6dg3b)ZajZk;84Zk?Gcq1uefC|pR?y$@eVyUpi!}ZqFD=qM%v*y`fwZlk-unx@^f8DAxqIWk0k|zwhn6}1u6pUmb)rSR zUo!3AyZ>a={_igIzrXeWlQ%dnUmY#fhH4KKLd7gk4rr<9{<`M=#;x>)tKq$#m_wC z1*jEhkU_g80npWks!U24W>h`rM3j9I#@hlT4hIonrJit2Da|m6qB?oCjYVqH}9}h$b z6ExMv<`#UYfk$M`;Ph)tIFyR4qEB!65;$<<&WPv4ggnRCGQ3J`C;gNq)k({+H@=Y+ zh*#mU2vdU^<=&77cdh+URy_9GP+o6N$I*-1f(}=2X^265-|wT&EIDi7h48EFW3mI; z5|9_eL)i+4cOITj^5W2i2_QYlrEClR&!kB1kGSou>9OLbeC&P#D|hB?W$c2eRS9;uPLM zg*j}C@&-fTQlz_jZkx&9*w7;Wga>k*QH5mse4Ed$eNwr-xBoddU9mm0 z{_YUF=AL(LZZL@=bD5Xx2am>{_b4nlZ0BeiexWq+1Fv>c0lA|qesgR8m06WmpMJcS z0KHR0T?q`IxUBdlueil+c8}K+l399Xb9~xJ3w=PK*B^+U5LAxTWgxu5-&CAe-RbT9 z%2gI!?x1BUxr7fBjp{Q#X1sH2(=OI>_jG*N_)<<6Y*)qXOX<#@8%(k8$IwJj=*Jk+%8cBSdakrJz2i# zVj1WhzrDwBhr9)S2hx32#S2{zVN7VR5*55R{;(vZO9T!}!{&ljQC?5_P;%3o z1-$pg!_2*VWH>d{0p+;U>KqRO4JQ5qUubjVU`w~U-yBPMv(W!z$6`aaRhINo;4By2 zRiXiZx|SFw6RgSv7%l_Q>o95#7%|)ZIy*UT!du7@*LA%)9{SlS`A#_b zsM&(w5ERk2ZJy>IH&(&?=A3fn(32&_ipuT`-c%Ciq2o}-nvUkAv)RY59AZ8x10W4N z`=b#+y?vyZa<_m>nT3&&o=;*Hz2Y9@fk@`Za@&$zSM*e!a(dTD4WJp+VkW0vy6rXj z0v!8X?U!DuW^RMxc;Xvp#^x~7kKO(xVZ8CuH&IJ)N_laYX`l3(E?+;B*JuI3Mgr*F zqE|UwSCL;JnPTOVKMOjzEXHy0b#HC7dpGHWgLTCG#A?@M>bD}M*s>}E^qn>d4V$_< z`QW|n$z(zVJT!zezk%k(R<9A?q76_Z(OU4>*TN>2AI(b@KScPONy-JQS=G2(Sj8{j zW_QvJG_hG+KBx@!*_F6I^Qc;gGP^~So7`>9raWIn<4GMxe2P}{lFM?wjYnTbuy(DQf_^*A-?Oe zDB&?7q*>0aRFGMoyQa@X;!W@4M2$Z$kkR$cOWvdSsp)jT%N$8@iSFjxFp;wq6#+rf zNfk}4gm_`(KRIH8LcIc|N<`!-Lz|GGNoq!p!vJ(6+8S{ofUv$HgqOss+n6S zanE+^lDOsRF4(J51ycXfsSN<7Sw)m;`J;Hg_ALr-^oQt@}gZ7DgCqX$c~{zR*mi1+P7MS>K{2xR1gtd$Wwj&Dqu9LWc@JP{Qx3@A@|AYSAZKWf6?Kt?j!REb_i( z?UBWj{9-vP+`_&T%#$4~6}l_kyNIsKO=h5Qjb zjkxj<+l)8CCK<+zuGl|c4mH}4&Qk@Wm&4D>MAWUxfPJhkKyJ-+*Y?L z;@Px1JA0q@{+W+Iepq0us+hj`jzb61iny1{$M_#SV55bz+e}T$$BL#R7;geRW;8I3 zI9LP-3_U2XoRqR9zeY#*F~F~!P+T_XUZynOG@A^!egV+>DYm%7LxG(U~_ecBe%EBX8DdS%qeKh&kTY7*)i zdZoQ#u)0Idj)hxt2o?m&f?=D&_B6=>TZv0r%-E6D+$_l{$+QkHj2IZ7sm^&z+`L)F z1D6=mJB5QZzf>$N=UpeoQPzQz{Pg!5o{MS*;I}(#S*%wE{zhn@|F%XNUGV~E4%?qD z{c_a{RwBE({jAQ^87T*5PQeEYkaTKu0~)zD_M6+4+$!9qqQZ&kk~}#OH`Dk1Nva~5 zTY$KQHad^8>b@suJD=_|`F|N}_%X;|RZH2Wx~55fOMS-o;FmePK+?yGTNEpFfv$vW zk#qf9>QEd-$y$Fyn0s`@Djzvm4NRdF!fLn-E!CM+^S!lL0`a{? z2mdBdzwKprgBHsF&-z6F)mh3jWw=~>F>nVjd+&aS@wOc%qEtClVIS;YZbRyqdLVjR z_0`Gy2OThe8T_K@vrb0~*~#SQpp&u?i<}0)jPLDS zBt{@S6{(YMneU_Y{+x9(j`{YOY%6uHWIkIlkXy;c)WOhP^NAimQJ;OTtyaG{rz1C= z#htP&iC?;+?ixO~K}X^qoNQW7+$Hws3p(9{-B-!nX#3Dx6p8g8R---(1)mm5R_a^H%a5 zth2%JJzGicsTAprB`-!q#kpLgPvtX9^&0WHXrUjH z*@F4~wvK1YuemrTtS6ba%0nK@aW@-~W-`C*giluv)CX_K4%~hi67c@(=7BFpkvR+t zveIF@#zKmt$_{!t+80`m^M>qX`R{ijNrWxok37M;PO5SRZb_?dFUX<2wTYL@=BoK9 zTfCKh=t=oke+u*i`cpc!rhXR0WIa6k=$_uI%^j9UX3$pd`&@0e75lOc;lHI4GFI`a zKuFk_FZAc496!Srs?-@YX+4L=b&1 zqA9&2ayZsZsoy70)bm%#j!*#a#c9I~f*hm_H;8iITOwZvy*bCSz6E8f*|)KbAJQDW+Th9Ong|t1G5U1RWj^auVpYP_R;=|w ztMf`UFL=*qSZt9Zo+z`x?H-HS!z<#It?$|Z_;acRrVeBHP=?}>*7T9b}1 z5~5{$yYB~3F4`F`11sU5mulxgkljHU!!>ldeVC23@W0+I2cVjA zFdZR<%OyKVsTRx^mxgzC?^3^23WhF4$8r(j^9{$l{IK%uiWYBX;{!hAJ|CU`HJZy~ z6hc1!~?3#G_t@6nj8|K~d9$G0guJ3bFsodK2 z`-vtCNgW7_RW@1q2_tiwh}84ue6?SOB0vXhauQ}RwC{L8TAx(K&(3r(9GE;G@|C14 zyr}boC6{5UEJbVj_bSrjbWpW|ML-6^)5Wxt?5yx+^R}vyQ{vEF7gB5WNf@{8W`4bl zrYj(>K!4l>l{k5Hu>FvafBE*Fi+8%%*9Az|Kl0dKyqM9=+h*Z@{DPd}{CfC}(wD%K zr@5hHQqF@Bb*%$1pk%#0AJa|}_v8g;4py_os;{rpdyM!0L1L??qLg!z6H*-)+x7J} zfl&jgZqnpxk8DN%h7&(-8UBS9V-fDfPan!7=f(H9my~?(^NjCEnkr3;=lP<_NxCWh z=@E4|IT)1r`V@6@5YD;P3pu2Jfa|c$s~lrfZVyR%S+`wLR>M_MEa0ZOD!JvQdQ15? zi=W^Y8%%6+V=}%=9vjEeTDq@-%(!9Y<+d})Uo7mOJGJBaF3NeuhIq+nZM?g(VV8NU z-qIOWQc&WDhIc5zh*t~y)r^WF&8HvuEp|S(pUc<~@-}Jh^=!NRINO2eOo>e49lwZX z9cz~24VJ8i``UY9)R``_ zn>=NNny7y_nic9_brr7tM-R`J8A|D#)_`Y<84rbC&?J<K}JCN0O-`dC9JLMd_x1g<8q4~mr|FNus;5YyZ-z2@Rdd|uTO)f+utiJph zLo20u#LU(Y-%TjICM?^Bqt{*A_4(YigZehw(z17nyuRx#ml|IeZbNnY>>!^av_q?a z4JBJab@ymZ4@!CaIP9I%fmCIii_dY0+1zGuM3uN)+-{QUiQkvu*n~PUT}Q2v{#=k_ zZl=%9!>JH+nG%P|=p8z=w059lN(BS_n|G$h4ulsFvk8yY+b2*nM`JQ(0o z-F3=EYeB!ig7S`X?3}lkE zBe}jNAx{Mc>Z2V2D(?hq$D(B5uHznUS*I0f_X%g4C<(3lmcH=((XxW*NR{pyr}zdW zI8JluEoVd#a5(RGo~`_$o?x!8X1vl~C&u{}Sp{*S1hdV>Khi&Fx-cpo*g>CG<69e16QwkLS63oO=pk-6l zDS7g<0NwJcH=d(-Vvc*tWR~=+598>(E*j+Y=cw7lMyt5xB7nd)r;#5M9Xl5M;h^~- zkWV$Z+W+n+$Gp+^|Cs!FXgjzM&a06NPRYDGygX=rZL)cj`R@HiPA`P?yN>rVd?v5V zrZ<3!8SUZ_=}{iL1N&@R^bV3j+0QLM)Gr*9@_XGR~PvvBag_kqO3ldt1oZaIe(nadlab1oM&Kx~l)j-rCJp-a^?ELLh%j*Whgd{bP&w z8da4=5&dP>c4`E+0|(o2Xu<)=?Fp!NkiTv6Del&CvFAUl0~|MhFOA!~zVF@(%Stlt~9%yDlDmDVYXlxpA?`H6Q@D(6V4t_?8G zpHB;aG0WkDZr91J0NaDDlP90x;+_Q|7C7X!B@9RKhuAO(#`O{Q~YmU>st9bR7Wqi zpN`hPTgMXKVUfM%v;QQiNQr@fRx8TB+4p}Bl?C3{z?K!}|1(Fv631Go@GF^Zdrs=* zk6eiIP*T8+Ex`y(t;X<}zWLtEH|BfNor57E@q~>S8zRZsD!uC8nPn4nEfA@SZ*CrC zyO4BGO6>JkqO?g>EQ^O?EJ($4p|{@Y&BlRLDY44nbb z$^6^Tp8~IHgp(K_(0U^f&&Mx16+h)aIX6E{=Nf_KxO&|a_^HG6M`IOT3ERJ+5DF+j z>*GIkllH}RDPf*3-g?oNh#oT?%~K(|(lzo?;RdsYE#YZLcR##gmr15R(PL!(KG=ig zUB=$Lepldh;p~}SQHzhd;n#ifh5fgX6uvW$+dzgC(mw86HtdA{{k5A{*|(WqCx!*0 z<*HI>V`t!_Rr>$4X4?Ogj@EzEu>1e#9&QgN48DvepX@Hgeh{HV`L61*#RjvA-MH1C zAm`>*?BhC9P&nJ0A9Vl;#Gc{YWJl2^Z0W)(K>R*?Fbf5(rj)t-W7?$LJOz19-X-{o zWBB4OuUxtrQ-G6EX*tw)x;sRX@y)bVKi37?YgZRBFq~r!g(%FSU%1M)&pPm{PzD5p zg@3b?0t56{shON*&6TCJezOdF`6f@FA=XRzCp`^_FyxzkG`g)jV!)7WXUleXwx`~W zwb`3;cptoHSYW6Ity|ob|0!^~M;V0`(+(@3wVXYb{?L?z&TI85u`g5xqW%tUKBR>E67#8)>*QGVl%(Y%l2XZNfO?w10bWH{f6RoZTMsAuQGt-4Q`>Gg6Y( zBfyR00KYE_`j#|m?p|Nat~>d~Sh%A4)dMhEIM%P)TJ_{F67K%W^RyFCt~&1FmM}h8 zfg~l$7OgsG|3%*;A^MFYDlB_H6Uu(#w2sL)ju~aq*|rYRw^+{t0nj*>X3g zAVW}4Qk=Z1Zv=?_J0|O)mJOfBagFEd45e({P(*aWERK}M-2FOhiO=>AeLW5G0sZG& zlX{DH;&W+w`uF+xz}}aUF~itn&y*DTIV{1Gd!ASXAB`!vACCWC#6zoweRnSzA4FlO zie9}|WO}yDggcnprL6i|pgnP}K>acBaAi8je~n|JQDgS-rA$-mJnwFywQwR?=Sm`N z3)k|kF2wzO{DfVb9|r^Y;PmKe%ffo7qZ*O*C%?Y0Q8LzZOvTuq+r%tC=}(Q39@I)2 ztsp?_roXi)MGT^rbD4#cWt5b+R&-bmk=QRmq}g)^aUAjjh3qc{+!N(E|C0T$J?yvn zV}_wG0!{6_N9$d4jE&9Q;0vXpMfAKHOZtCLs@^0pv-a3L@RY-epxChOg#-~px~8nc zjqOQG=V^34cAvxq1#TIOew)@6z&r)Vo;;kvz)v7sJGnghu1R-?aqNGEe6|d+Jye3c zi{a{ixxgJ;w(Px&pX>De#)DKzwJnc<-yWLVivBy6R6!%0el@xfu^6)TV{S8PRa~py zZ^23z`GT>#89B$uYZkj1}<4ArOKQ4WG; zQKlcn8~Q0>|Mw;4aP4fjbx zGBbys{qjka{CUt5L(wdA!sX z;hoEfBL&b-27Z4YV*#0J#)*536y~%W7+4uPz(;{Nk1n$5=g8Xc#vwfl??mHHd~J#ywJt>x8;F)Pcu zkqNvGz3+%~g5e7TA88u>U;~<2n$02WUK+6Tri`$@C6^bTb@uP^tKRyLizTsH=l_px znfzDxfX0IV&3?oG-5Uu0n?)6%U!G~Osn6)@|gv3w*g7b`Y&xx-;gp%!Expmj_*W)(`DJg03ur;9Ft=L zv&d?3C+5j&^}}Sd5zT^s*<0@RpeK3uYd$y?_rS=etKAxXXu0vGXkv04yScKPtAQaD zC{`ZL4AmnTZgM@`w78i>S(|BS90G2gQ;EgwzE0I7Z0R)7E&xr_Tzd2QxX@EuX6bgH z#z)}6@&r|~YIewYRhVz|0=yHkxOtR9))r};RZ{w;=smBH?Vx3K4ea*JlISW5t4>1v zBTvWorl|MCg5sDY~*<}}Sp7z4{<6B(lBf1`Dq7b4 zEa-rn{4+5d#V|n=WgCrsxDTIN!&i}s=HTY?O4-M{<`UdG$K-F6X^S#mRQGjUZhil) z_@KZAFwd-U;{YH;#L4}e|7D@v`FVE*sGqk*b~bydxow&=2+0{k6mBkwPNc5+bt$}QJ82**d&k$6 z$ggV6wvA67YH+OF;iCLV{NyN1-PK`T1@;T5G(eV4YmV#i1cF2H0g(W!nIAq1c6Wt! z{akU+3>8I}qW@v!R6gzP?u&U}M2WFUZ)z1I{C{!1HK|x`->>0k0qL;!$R;ypOZt-N8img{x26T#{z`UKB)-(Xg|xO| z5Z0kAmTF+pCil}N+p`g_4y%{lF>TylfL!lHAcQy3VPkWN`u&`o@jgQ-P!3wGNQ79= zB`0PZLC?(h%>*^)1iFovg&MUeFN;jR@a`*VNm{upAX71OcBNeKXeV zo8Rjg)*#2Zmn*T5Cs`39t0$$1wkn@fDV3=|3T~YrsJR zP2`e!6G26?nd`txHb6YqhYvy!YuitCTH76m|Elbox3|gp?cU}xi&R-LlMyR0Olxs6 zdX5?tQv+M%=Z?Y9zjspI4i4(cKnqnV+L2;Ct!rv_>j2MfIkHBN-Z?u_SHs0u#L4pO z<=0Xrno)`XkH#TusaJjZD$^}heGQau=BgrER1gz*ZUCnzf^{KVDO@OI6UXP&s9bLLu&e4cJewnua!5!_krW0J%pB@ znMTmB2?5Owo2|*4H4@yUl%*C}g`ZP!Fe;d@H(MJ{(`x`Og^QDMRC2!0F{}iFhlI;kYv}@o$9Np-VKcwX7la!=za|u0bOz` zJfFJz%G%Py-nnq6h-HPXz)~Vh0;5oHmNt3Hw`hGc3&FTi zNjcDN{%DbSJti-Cgr=6%9#gNZ*k;L%xazV4`=3!0b> zSXxJSjlRuct>NzI2};re%LuOwr$q3LuJVx3T}ZawwW56?oiOYkP;|U|{S< zaD<2T1;2(VVypyKY|eZ^tN)iEeYf8sQTETMAQ7h8H%XhLZ*m^Zs_%=pl{|#G1J*qv z?9tO6eN8^m84ZUcHNsf=eaKGweCB+E6$h{X@k~`L?N(scgYjzXa)@3%q%qA<(W&ou z1J3lwEAMmV~+k?Er($s zomK1I18CZTIQzAXM|;&j&T)CA7*30)9VYE3LZa3^*!khnXX(Bx#{@Y$_L-5bpF8T$ zsQlTvILJVr3y?PE--)ob&K@)D;gI-xNUbn`DDI65j7n7K zCg;}LzG7hMmfVX+%6mIB*W3qpvr24n z33mOsnmnIB54QI@F5F}f%skzWj6mvJX1JO+*4y@}P8YfD&RpEJ+3IRErKuG0o4n;s zv@9lqs`z?0Q7~KBfwK@y41>j5$U5(IFb4rE!Ufzgvq#LKuU8Ub8>=?dIEMfgmUgp~ zsWcm!p!PWTsFd}`nm2D~wQ!s~#yR8V{nz} zmyA!d+4Sb0*v}tH^6e1b-RxSJt>;uyd_A5R*v(8ZZ3pSOw}MnL#f%8$?DJg)L3&lPMD0Eg_0H0`S(%`(>A+8YVCdZe`Io*bmI`ccFLY*8rEU>2&3YYCDA?Hzo$1U#ryOmeP}o+D}NcNz=M-9vyFd z-F1}HPT()jg87LFCFIfNlIt*Fzc(QlB`4h7_OrK(D{1m#?cW4)7JKnY-t7Rij4M9r zyYldzb)9G`OkXu;8Z)T=S@Q8031rW6w0INL)2QE?cyGLwckav;sLfLD8tFk&Fr|G$r0>_=QJacdHdp;J?CQ#Kj`O`#21RHJB8xh`W5DrsoVb4VvZ$rUE)jzoQnskL{`MT`>g z5Fl(Y4cc{n)~w-vq5tQh8+No5@IQVppc~(InO{rs)P44btxMQMi~lwos_Qj}Nq>A> zWbD?eN4(_`DViaer$#l*7hIbc)_(LN5;!Roe7buJ2WEE3ZVWxNYl{QFTKoKNP!Apx zt*PW~V_45{N8z=Ofw`7g-z*2q&7>@!Z{I6?*6%i6Q$x5+P7!+MZ(h5WSt2YTRPXDy zA*U4LmFJk7rcba&iU{#84ICSii@0psx?(q1Jj~$|JStB1I%7{T$A-N_`5WK=EMWR% zr)tpouLHSydg`|hwhT{Pvm0B5mvfp>pRaM;+y&OOTFb^C))P_U4>}uP2S{uPqn_`U zE{kr+78kAU46LVew!V+}aN&)oK(Gz)k_FR`O@YjJUtyAqi!Ay#1TyN0GCrMNo`^E$ zy~q3ScvH_w$ULI-dp6{z7%`k|W+dAm}16f@caICQ-IKocXI2c;YjV9v9F znK!_X8e1i>CT*ccMZ{OEoNspM@GouYdKnwu1M!Fm3gHBpsJ8Vvy7B ze&!qjf%?)Tz*tL;WxxZjUa90h^z9p5Di00(*AIms16bd_VppOLvvQQX1`iFj!QQzW zInL*}Bi&+$n`TN}Vw`k2g&>=`^NQ5nlwMf^iD{kk>Y}qz*N_Zyx&9AvxlBL@)hs1A zzIO6zt)xojbdW*Q(%$e!4raE5-Abu>rTpW@emsV}&)kev@0+XMe*C1g#l7;Pg`9_% zdnwZal$kh}J6>S)Y9k^wa(5hZBG?T1UKOc0dnfK>OV#pLu zY0qQ!yVuDyrsetRlkDt1Lx(3jLj~_wvbi_&B=L!jMER^rCU!YUXU7v*7Kd=9h!$!L zx%wHd$3~7YpD7N`j}a_yKiPH| zzZjt`Qny`^ZDQ*Ktpm zf99gztRGl9#8`Fsc?%_zWyhLAvEnTFxtzi+GUx2Ua(fmDUR@cBI-1etzjH#t7#AgN z+!9HUs%PX-207@<8G+{XqxKapGz5(B57=JK#Fia4ZL6uFtyNm2WQRtCdJr$|PWqa! zMRJ^Hx=iH0y*&PK7rJ&t4+~#@@v;Fu{OH2|28$0eGnox3%1eBjKh?%Xy9VhqR3wfx z_qVz!pgL)S?g@HCTJ1c0sMoI72aL=&`Ob(oOKT-9sgrfNFu2%JR3T(2XOM$gcJua3 z+0Q3+oe{~|DblMY_=jI ze`9K^SFpOd^6+~*Y=`9_Tdc)kc@u43o(gE*)7crKUB~|xTpW4!4&$^(V^c`T_?&*2 zidUDx0~sGTA9-77N)10g*0-3hc<}=-b^r>sK{k78$Q8Z}Jo@wFpW|#{?yYjL{^&&G z;l5=y@(?i$C=zHR9d4j7{o9Mzg3I;gNnnJc@!XQnC!~UTZo9QbN>TSo6UC1{%oFhI zI5~TJN0n<+@t??ptu@fG@y;nFU8~==w;!dr8d|^bfiLKPwRfITO|5MjRxBJ*umVy7 zBGTJYn!tgGd=#ZgmlA>k(u1^60*Q)%f`D|DCM95~QbGu!D7_;fflvZS0t5)5hZ10N z=9^hFv)25WZ)UAov(}uy`IDV@KYQnW?)!eO_itn2-{}~$eD7lk>%j`x0_%Z2hK1=t zUNQug5hWB(#t*myF7ctA=PJE(Mf3y2zS6(FJlW5YsG_VPTWnqKmedpT2knW(ta%**5vU1QE2sL$O-Sm+)23cLc`JTKcRg zXFa{{Mw;pPnLuwbn)<@~A1_|ZB@GX7ohgcadz*&?)M3Oo{C)f+ebYxK^YGAKpU(tj z{@7_aSO2-3Hx~MfU&DF=)2U-*#T~4uuSTfJ&-d z={t6C&V|t0^S+yfY;{kiCkN+NS6Dp{YT7XQjht!S)m0cU+`gk>b3kg%EqSdK+yH^X zU)@%J=3P@iX#Ygccm;22;{SX^Ifi3QPrJQ&m?srEfe{3Tc?Rl6Bxfsl_iwanRq(~{ zrf_FTO)Z7thB!|e$0G9c&;@*pBc`9K{(yq*9h#z-pU*h~Y%xCtBx_YUx*LZtVV}CF zIDx9;!2MDOQYfGESv!&0gdE0nxy-u<=RD+n*&C(+A}21{f&^8HpRZiHQ=p|6q^aXO zRF0!V_Kx@(wpLDqCG@Qvezf(&Rcd~<${6vL9%Cx3CelXDt|{&8C_M`&nA-gy+f{p$ zhgZ5gK7=R5+vb6dkKrGSb~FL}sUjj7tFy%V8zM*fKSSOiC04RG@+a8QXr7nNH{OL`!%P~Rnrc5q?UP#B z!5caTB$D6o4|FL$E8U#|OO@F!zlwQ=>RvyotwJdj=^(CJi9L746I@7`(BTf<(@(BLNR<)@$iteBpa?97+{*51>_g3B7Y-lXLH+y zLf$pW3R}U;J}UhfN$lrzFGYCZTD97&qx$W(4i62w)v6MU!5#B#5xEu)wz$?)Z66Of z7IvU0-&%Uxs}_Rqt7;!wK3de_ATHkMV9})K?BX2eajLz4&|vzpjrkLa$f~wysOSbU z@9n`qv^OC#KdqE|k$J_2Ppvh~COs>^-QZr{?>r_bLRQV;o!55U(XmeAlG8oNGjG%9 zD*Lkr2Kx1YCXbx*oE6TzsQX;jf%A)TL$nj} z(OrckeYs$Z0dl(;^_o%&B3BW@Hy7_xqZ?JwXc5bSp!+$l%x(r>U9x6g;@jbsr z+qOQfXV}&Hu4)`*AMJ^m?X-ClF5^4{J^kY=jxUVPmmNav4K&X)NA+vqM<5nPAftBQ zlfZabZ10bXEjoNZt3D|upp70Dgo5JvIQ$O=sosr?MbiN(%)45Yhe7@}I#`TsAe&0? z460SC+v+PibdCkLhCmA-bGFBmK~x`*>8r9R*m9A*2u9GLy`KjVAxCFb-P8CS1FF_$VXowAyV@oNl-+NQsOZRNOY6Cl9#fKS z%!cFgU7veT8mrUV(>t^IaZ9+(9o=9~ZaU;#dS=KOnIz#7qgvE+_8tkzFDG8gNFp@g zyoX0DDh7WIt{DzlJP1>@lHk1w3=^&jdC6X!@ z&9)JXL=FK02EU}i@=C+*ld@-3OnedYd!)9{1sIrRL6{l+nbJojbd~7bXB}K@RFG|9 z-BI~LZa!PNI8*IxL^p7@3s{d{eE#d>rBV+R@zMBLg@prf&*gbYt4p@P!@fQ%OK8+H3#D=0iPc!2NpfW^cZ6mWYvWgN1@V!#x}_*A*QAiQ_}8ZIDc2!Qnf^j zu@E}7x3rXW@=)lsD z1qog(#><^3L^n94;GCkO)vpOcImV}sT0E9XQUNIw+AolRWpYaBA5Ed!Qhzu;dZp;{FPGS7m2AsYxs#Kz!? z?uJm~i@idstvbCLci-g>eF7WOMWgSK4!>%#@!xU!Y?a42bz99iO|{y>TFu+HM50?A z^x4~TY3A|f?YqndT`T+w7vrus%0~~F%@vtEa(VeG^0V7;lxvJBcc1mgS-j)cd&nwM zEYI=I1-3LUNfkd&Mv!Krs;gem8_OL1Xbtlls0{uUi#Ydm25A?JQ`olR&Tnng6_k|q zf>__5!%wlKhl$ak9SNrn0q3ubmc^?J2lAB~2S;3RJ1}g`C2Qw2z-nr`#w*~1sr=MM z3A0yaf)c?~N=ob(&P9X1LXO-wzZn^FY8Td&$0%dMoE$u0D5WxhYlo~>_0qKQ4P`p# zvndJeoV3^n4vU6mN!;Xv)i|;@pfY1U6;?B*Dn`%Jl;Ojvu+u8&Re<0LAVRDSi`px3 zZv7HA@m|Q+#qx=HG4&QDbTzKco5IkEqk*dBT6{}^3-)GZ?6tCbAC4)EQ*DH<2i8JD z7M{sPj(TqfaypZ>61*8|H4zQgi1|>|&&~>Tm7|Bnbj<^)xM$J_E9w5soa0=SjQZBI zlSvZ+uGZU@IM#^W4mogjCnSir<4y^EXkh*-b|CpPpV5(7E$jBA{v{?rx4#Vh#tLC>du$2c7xQLT%~qfdmLRGZ6~O#N7TzbJp0O&9A=2u zIBTX>7J3jJv8N4%fLJ*w)x!6!_NskrSBN1!m0E_Z_Bi*~%?+ViQp-#2k;jrJ~yfsh6jrR!I& zHembfX`H%KP#S=2Eb$2{sBUS~;7g%zN|)*$q|z@UZvL^@ zUhE(a8Ec0MnH`DB*l_J31J2m^2Rn6lzObSD^<3OaD2P98v5&m60|<%Q6$I@O(${6~ z7ce|rIcaqdIXOx8VS%XXQyuYa=x2}inE7EiIaelXbAV($idZuf###4R6~*P`9CcWU zW~pbx7*3Y>+1|WVyRqh;!Zx&`$I_s-2jT{Lv3K?~=&P{>9~nYT;c7;Yygeun#5!DIMh9SWz|+z4kO+~?=d4(oOq!cox_Rv!|w^y zvVFZ_Iqo4qXaABWBuyx6HbW#TJ?fnxL94h^tyXTngEYjIGv0)!=dzqwW6cerM^%N+ zey?AYHw?Sq+#W?t@LnsKE15R9#Cfnh$f7^j*WQI#6wZUW{`0rQ{4<&)d7qiaIC1*F z3$^@TQmL78`ago&{OhXzA&ALetNXtjmHF@SWB)4Zzl!>QfFJ&=eEvU_&vP2qpJKYo z)4=ef3^`Mba6uK~VsryHiU@_soT6lUj>2$eNHag2@<75(tkSnz0A*E93|p1WR0|H+ zfXGcLsVE**t0=AC`xH8Xx4iB2O-m!o3khTYGnF{W*UxqBh~B}z&tOU8>c4n;ALF@t ziwVi}&*I;PGu(RmU$?I5-sdZ}81i~UY?P8x3+(O8k;za*QFN_JCw}Hvbfca9C|Mg; zZv!Jb=#a^JsdZP&oY*A1l!Jq7d|VtGrC(h2`Z}S0PP5#AMuitLSz#xR9=mM0G}+cH zZIF8|(rKJC3x3<{arRUa@am4>WVOs{dYhD3TyTloRkXP+D+hpb{3wtb2HBt<9I6SZ zKyNA@j;V9gj@TB6AGcwM4~K+0f0V`aY@X-^c3-)1HAH{nm}eC;jCbRK$g|B23t(5~ zaAA9F$p>l~+sdQ~yeL2a)~^nB-_yzN%gqrnMLO(B90jF>OES|b9xo%#&M~=X3-GxcBF%Vz+8V=KPT@1&pUj2Q`a$PxSaX2yeA6V=~^qU z2>nWAf`NE}sL_;#?t_}B$_=Cr#2%iLBlHroGt`!J*{@Nb&O21BAQ3V>Yv(77k4aw zFF$9h8b7|)wgS3*x#Dfzt6WpHjv9DN3oENq8u*C@I`FXaOY%GU1$}CINYFN~d}TV$ zc{7%0{WhOtBF9pH+C!)Sh&A#etstPbrbg|e6Uj!o2zRZ?WQ>&z1v$HwU(29!d-c6CyW$DN%%i+W z4#0Rwr((TKh1%7N0&J^z?V^@{aRT}CfhMOW3cBmnC*XwZ**+B}!(4rzRLwg@=7(Vm zh{ijF0?@Q(gW$@HXZIL(KCPbXDASHJLP9N2)R{L^@B)An-_i6@$j!qby1B}h&mufV zY%~=8yn$E&YdR956)WoZ zU^44@`p1dWkvlXZ7VCdg13G+;6@gGrp^)m%^voG}wdlkP5Qh7b1?Xl^8{%G;0=CX= za<|T7mee7PA3vaJ@vHA*<*V5?Am-Pbd?Br~Ixn@F4_MFcDfBW#RFCd2-=GylSH`N& zUH@5b+<6Ewea5Isu0J1ZLl5~3nmemaNth0;+0KAH>TJ0Ptus!*xb)zYhiax&?J&$i zgvmT#-+@~zz#sTL3*B<4wszaJw0$sX?5$F%t)iuJVs_sUxy-KWwg}aAR5sJoi_@A= zNTQr#gpnpp``V5^&5RCK{jh1+q%8*DntP3{uFl+P%sltjx7KsfL2e|P|G_aXq$R8M z8oDTe_Az{$z!Tt&;44s7<9$eR-Gz?d7Rc$%m(yFO+i$f1V?d z0l4J{3AMAVvL6XlQyniYlAmU6_U%l|;d3l@x6;l&ENXW?1MGMOzPO?X1dSgCYN>i= zG_XRcKZZ2jd9EZ@(s0Sp?^6?9%k%tKc;Bx%`|cBR@1bws7H!E{9&>Y4Rj8?N9_T>( z@6cgajajSBxjDHA)r(gqdnT-fRHBUWJ2I6C%kKZq7rH|EPko^)|K1nUG34hYmU-sc zJn);>PAkn865hFoI$nHWeCDx!{7Iq>CEYlQ{_J)2(pup>GY-G{8}_#3ad0*+hEbTA zS&2=`n-ptMh2L)!N?Rq(hya~4d$-5dOX?X_8{tFX_PT6GSsNIRFAtGW{B9&PAAck% z?7|rbxZm#o+c~*TJ)`{qI#FgCk(ZX0IU}XJ!4fVD-RY^|6odHGl>i`)OfC zjIZjuC*{eKuk1Kx!wo6|R=c}btGK`IkBpJ&OH|7#JkK^jauVq3PD?LDrfm5zt&bgY z!hp^bVY%-4ZuJzToTOZpxZL5^-elf+@EB-4Al8>1nP^-5o>-~@I_O*OlCiDDR?|1m zujHajlK-pLNB6S7bKWPbu`hpGAF1iw#x71-GM&dqhb~R!U!TKLG~rQy9{xaY+~1bb zI>W2*RRKwgTp6BgkBIN73}8L>%}FJULI4>E0oWS73Z2j_v{ zk5BX1x4fn+q5|nqZjFjfEI6;~tt$m@`SJH1QW_1PwLD=*bi z(QYBfKfX_8mIDkU!i%)2x)G;Nta0CDy}LIsDL<;QPZufdZm_|=m6(=Q$N)kaPTXKx zWudRJt*8`isXXskOWm@3+76nxAOCYaTaeaU7#ODNa@Z!2WY06c^pH)Ssqwq%JQ;1a z5CJ6e+Xjkz^go=Jr|3qHxWiE0CTO;Rssgr_uH-6hzzE(T=(Zd=NRvWiv7cSfPtLV$ zDU7E&^DN!~{gGv2vz$=3V>p#ga7rD=!qOC7$SXm24okXKO^1T#7l0)5jZC77 zVoeo1Mw&H{okV1K;9l+f<~a&>$B<9HnuSSf#qxQ07xt=`%HceI&jKI&y|e3GUL;tS z`62TG2_6B|YI+LtTgGs(Zyw%y*kE63eccn*f&rT^B-k8m%Du~VU6uc;KRhWj9agO% zDx`QgLj)D4$$-NqiA|VzohQ>d)AtZ=G{%`_xVmq_nt#a8+z3HLlkDtP->b)SP|c&h zja=^1cjM{s-xVd?+v@)2C~_OGS?VjU%EOoRDFyt#LRs|b2yxOBm3mFKA@VFiaNmbG z1Y$Mj+t!83FgDVIFZ)Cq`W!{WugFXYZs+sSl&yUcL9z^IW!5RG>g4!#6 zopPNI*OqG-yOgx^++O|S)f@(U^M}SwZ-I^k@VtDJ?EY2*@DC`k$&E+l7Cr_12{R8zgGq;ql0Pch|>KY*PU@BuULjnr=X zD;tr2$T~4D%~gIOdsDw&$htnH_HC}$9#uoa8vdL9>ZtLb=&!A*<;RPk9ymftSl>T$6vg+)}_-s;#s!ki^7~ap; zqZ4s~R+-0;crZ(Ztz2^>Ge($!Ik9Ok(qKUA>sbw7!1~ic9;{C3?~mnLTxC#`-WQD>(WD<_%G?zLjyw*q1qbfv z{_FJo>n07q1ZyAXcTwb5q1m$Cw8M>`GpPzsPM!#OVfWGYG7s|6*o7eR+L&xQ`@rf0 z0|I|li>EArTcadE$_iD3_nJ%%TiVL^5$02<#m_RHjO-^~+1xdW*Q38_`W8TY1c=;< z5M(SMqLy$TAilILBO;d4K@Bzx*SbHBs;vc__$>S5F4J=50BEGb6*gVx-&VN{aB`*_ zEl|iuD>dL>80~>@#>(p!?)w)j=m=*T0E-6_S3-FCk|Je}{HUB(Qh<+V=ERPM!E6-6=7%_Qjg{$%zNrMt>{2@9^rM03zJOegFUf literal 26638 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 state.getJoinRule()); const historyVisibility = useRoomState(room, (state) => state.getHistoryVisibility()); - const historySharingEnabled = useFeatureEnabled("feature_share_history_on_invite"); const dmMember = useDmMember(room); const isDirectMessage = !!dmMember; const isRoomEncrypted = useIsEncrypted(client, room); @@ -532,7 +531,7 @@ export default function RoomHeader({ )} - {isRoomEncrypted && historySharingEnabled && historyVisibilityIcon(historyVisibility)} + {isRoomEncrypted && historyVisibilityIcon(historyVisibility)} diff --git a/apps/web/src/i18n/strings/en_EN.json b/apps/web/src/i18n/strings/en_EN.json index 3f628fc958..6405d2fe7b 100644 --- a/apps/web/src/i18n/strings/en_EN.json +++ b/apps/web/src/i18n/strings/en_EN.json @@ -1577,9 +1577,6 @@ "report_to_moderators": "Report to moderators", "report_to_moderators_description": "In rooms that support moderation, the “Report” button will let you report abuse to room moderators.", "room_list_sections": "Room list sections", - "share_history_on_invite": "Share encrypted history with new members", - "share_history_on_invite_description": "When inviting a user to an encrypted room that has history visibility set to \"shared\", share encrypted history with that user, and accept encrypted history when you are invited to such a room.", - "share_history_on_invite_warning": "This feature is EXPERIMENTAL and not all security precautions are implemented. Do not enable on production accounts.", "sliding_sync": "Sliding Sync mode", "sliding_sync_description": "Under active development, cannot be disabled. Currently, not compatible with Element Call.", "sliding_sync_disabled_notice": "Sign in again to disable", diff --git a/apps/web/src/settings/Settings.tsx b/apps/web/src/settings/Settings.tsx index 4b05f7320c..67d0a31e14 100644 --- a/apps/web/src/settings/Settings.tsx +++ b/apps/web/src/settings/Settings.tsx @@ -212,7 +212,6 @@ export interface Settings { "feature_mjolnir": IFeature; "feature_custom_themes": IFeature; "feature_exclude_insecure_devices": IFeature; - "feature_share_history_on_invite": IFeature; "feature_html_topic": IFeature; "feature_bridge_state": IFeature; "feature_jump_to_date": IFeature; @@ -522,29 +521,6 @@ export const SETTINGS: Settings = { supportedLevelsAreOrdered: true, default: false, }, - "feature_share_history_on_invite": { - isFeature: true, - labsGroup: LabGroup.Encryption, - displayName: _td("labs|share_history_on_invite"), - description: () => ( - <> - {_t("labs|share_history_on_invite_description")} -
- {_t( - "settings|warning", - {}, - { - w: (sub) => {sub}, - description: _t("labs|share_history_on_invite_warning"), - }, - )} -
- - ), - supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED, - supportedLevelsAreOrdered: true, - default: false, - }, // Defaulted to true Feb 26, intention is to remove entirely, all being well, // as this fixes bugs where display name / avatar are missing and also makes // Element Web consistent with Element X. diff --git a/apps/web/src/stores/RoomViewStore.tsx b/apps/web/src/stores/RoomViewStore.tsx index 7d06391e32..f875d2f26d 100644 --- a/apps/web/src/stores/RoomViewStore.tsx +++ b/apps/web/src/stores/RoomViewStore.tsx @@ -544,11 +544,9 @@ export class RoomViewStore extends EventEmitter { const joinOpts: IJoinRoomOpts = { viaServers, + acceptSharedHistory: true, ...(payload.opts ?? {}), }; - if (SettingsStore.getValue("feature_share_history_on_invite")) { - joinOpts.acceptSharedHistory = true; - } try { const cli = MatrixClientPeg.safeGet(); await retry( diff --git a/apps/web/src/utils/MultiInviter.ts b/apps/web/src/utils/MultiInviter.ts index 46fd84cc26..09ae6adb9c 100644 --- a/apps/web/src/utils/MultiInviter.ts +++ b/apps/web/src/utils/MultiInviter.ts @@ -228,10 +228,10 @@ export default class MultiInviter { } } - const opts: InviteOpts = {}; + const opts: InviteOpts = { + shareEncryptedHistory: true, + }; if (this.reason !== undefined) opts.reason = this.reason; - if (SettingsStore.getValue("feature_share_history_on_invite")) opts.shareEncryptedHistory = true; - return this.matrixClient.invite(roomId, addr, opts); } else { throw new Error("Unsupported address"); diff --git a/apps/web/test/unit-tests/components/structures/__snapshots__/RoomView-test.tsx.snap b/apps/web/test/unit-tests/components/structures/__snapshots__/RoomView-test.tsx.snap index 40df5cb41e..745d84f52b 100644 --- a/apps/web/test/unit-tests/components/structures/__snapshots__/RoomView-test.tsx.snap +++ b/apps/web/test/unit-tests/components/structures/__snapshots__/RoomView-test.tsx.snap @@ -212,7 +212,7 @@ exports[`RoomView for a local room in state ERROR should match the snapshot 1`]

Could not start a chat with this user

@@ -417,7 +417,7 @@ exports[`RoomView for a local room in state NEW should match the snapshot 1`] = > @user:example.com + + + +
@@ -2838,6 +2856,24 @@ exports[`RoomView should not display the timeline when the room encryption is lo > !roomviewshouldnotdisplaythetimelinewhentheroomencryptionisloading:example.org + + + + @@ -3023,7 +3059,7 @@ exports[`RoomView should not display the timeline when the room encryption is lo tabindex="0" >