From da685aaf39eb0fad709d0a5024ca2736ee16afb3 Mon Sep 17 00:00:00 2001 From: MicroBlock <66859419+MicroCBer@users.noreply.github.com> Date: Fri, 23 Aug 2024 21:25:30 +0800 Subject: [PATCH] fix: preserve deps of always on mods when switch off all close #22 --- resources/dist.rc | Bin 2349537 -> 2349623 bytes src/celemod-ui/src/routes/Manage.tsx | 11 +++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/resources/dist.rc b/resources/dist.rc index 8c1ecab1a39b31522557ce6b35d2b04217786ffd..cbe23840a7837a723fde76e4fff5d817e97d545e 100644 GIT binary patch delta 2941 zcmXBV2~ZSQ8UWz`bx$`ipa}MWsOXy+7)C&xVGafi(wu?^7!k!Q^a!J%Fhgbr#Y6?~ zD;iTtY~4gN-deTU7-N+tF^S~ZnBAD@=5R~*c(1usyzpG_ZFjrs>(^ENclYbpfB!%I z*SY z2lxgdFdd77M{3NA4IhsK6A$pY7NF#_IQWVKcn}W2osNUUJN_T^Vf7GrrBw}5x5)D& zAU#420$9CXyMDbEsTdWj(x^BUuL@Izt0Gh{;v!X1ssXBjs%X_9Rg5ZDHTcAOt*~-a zTiRpM_iGfS7&m}#&%~@O+zNr@O=Eu6EXKLx@B#lj4NOXUO7a~@F*~tYiYEz8INex< zebT>6YcUUjwH;f|+~n#^duhCp-1mm4uNrtQ;*KHRXvxAF|H*;tq>f{s-#Bq?LVr%oC!i zR~1^7}PiFwP4tA&%P-%xI6Z!q$g2{ z-2F(GgU;|TNW_f%R?}(cWrmb}I9}K3E#YTUK9{NW zds455@@QJFvx3gbF$S4hcktRkEHB+IIGDB>^3m;ruI3aIz~ z!WtXAp7NHac?DM)m%}A@$pRj|2YKqGgp4UfxT;?=-nAzgG7JOI;s#?AVV|@PHLj3O znsyV7pOig>Y}vX)NZ?BQkkcZU?+_A^Rc_oNyc2iIsNbAtv&Ks$`|pWBxmmPK0lOT( zQz%2vWcN;C6mrO$cM9X%o@x`aPF~ThE2~=l^K*8u2r&1$W*FfXiE#KvKc6<`mwt$) zs9yxMd{jV?%C{`U7jHyPB9T8_(Og>G-p&ywhjM3?(kkS#5pK9rS;b~$yR4XF9GNad zA+kEv!)!~jsabDP>dN~0fr=)ZYJa44+fa6!rC0Zm7Hwl4_RJC*wGH2+!rGp=ib?G~ z(_dz?t(oc_DWB3)@Uq6x=$_{(eoD|OTuRE$brxgmGUN&B7-F_$Hnqu7wC83Gx#X7~i4%xC~_j`h&?XIv&S=xR- za<*b!1(gIQs{sj$cMaI@3XhekYZ#}qq+kW(D6kk-;2f&^Q=cxqpIgQRf=g#75|plf z;3j>IrolVS*NiQ!qq)^UU^w9}(9)W_MQat*#$uBR&+V0>%on*pMx)2Oz*;qDA6Udh zs;g+*@{DSx8qQpgelX`B1e!DjL2qRche->i8FcWij;^GZ>uloDBn9<|U>y9)G@|ir z{g5QO)fLPv!m|lCZRaP@B27b8UVV93L!jPMSLq36f0jECFjmXrC3o44urCQeg_-a3 z=U$bnvW_v>H=lAFVARFoP>^vt9P6s@NRwVa&Sor_S5r{AB9SwUwiLEx_D%0d{-SQURh-?s4~pL|w?@UhzEW3@E_o4Nguv%y+vsO#!52hrU@^;V*}jf=_TbJv7ta`}Eik8FDjbTl2wvlU4ybLIFfOd z6jeKr%U(SbSsYTlICjS(WG~SN*p_VdJjc3TG@i*6X5&OCu3lZeM836Om?;FADt{w( zC;gr_i*0HMcyc!9jFjgd5VoN;@{I$+sI)tLZ>QB`*sTaZb=QnX4z-aDBi8fZjR$LY z;&{ecSe%rN9M-uTURo*V9~4#^AM-cq)L+*08PkWV2ma4w~>zXU$V^J`=)d zvfOh}=m`V0gAG%x>(3t&R613hDqb~2m7p4`8m1bqN>q(djZ|TkUS&9O{*ZA{=6?Y% Ci5b!W delta 2715 zcmXBU2~-qE8VB&Nx~B(bK+c{K6r^Sbh5>P$fjLpJITaOjMI&Be5Jn+#Wd=Or>fjL# zMh$sMY(>#q0eU$48WUVUfY zehEo$y@dWAtn?jzjswvi25%@;u)P$)_7ecE26i3OaAS#$rP)~9pR46ry3ZufQ2r80_qN2}iQ}P?P`))8J z*gb6o%fb76$<9Rs@_*oQNnR3rK>%TDAmUax`V7y#a2dA@guP8dARymM&~y@;B}HBp z;G=~kwi~~xaWeIuhQv!6pA>si3MxjcQs(T^yyZ79nSF;nb;vFxZXN1pb`e==V5X8V zKWvJSj15v`4H*^d8)BX#EaVikjcXg+c#qJisnIAw`@%L$oIkodD#xWEq4C{ejKo9< zld_|QAn;1T!GcN(lifhcw>TRZuA?12u$L%vB!%WiX!i1pgqw0BH1gQx<0`E^pydnG*e`y(n@_QB=p%{*iR&TJ zV}-4ROOScoHTC6%#f%plZiKW*;b&9ULRlZ|%>Ed>nv+=W+HWfovB<}yFqW?@=Ufg+ zo+!ZWAe$t2!1Aoxd1ZuCvEHis)vweLP{VrTBC%ZLwT5AKH$f^q>yD!OM$mRw%r`CC zf9s35b-1#AbzSyF!^-hq+{`qco->fm+Px<=kOzV?zd2)A7zf4N)&~c~sDq2=g*yFA!aA&SK-8W%q{-ps~B-Hmsvmp~FVxiGHp?XDKy=MT?g{Qd0{dvvc!qrVR91{AmkgvlZlQV5~VN z?FO7Fss7flN*m_XjJI*^qBEjuAD`d@>n+ub{Ye!8J6*HZ6|=?_%gS;})}P_D6Uk9> zmyySfy}IK{ao^3?lP+nPCUAKZTo%k6kG)U63 zMEGpYX%cG{;JSimE1EnW%LvNEEhnms{%C)0HoasS_^K3IAwZ{it(^}F;#Pur zQ2xEx*UrajZXb*!%qO^33RMbvzg-$Dm*mVt6$&KP5!KLO#6>af06$JYo1k1YF?Epn z7d_e?IC*j_mx;@38mi0~8VO2eYRlK`Y!w?0@aobj5A>5~e2yCN=EEED@yIIr3AH`ume-qsk|8tPf z2zexLs&P-Ka@WkeCXPA8Z)Q?JY>wf_%E}VvZWgD`;??4}hxl`*u*58UPhw7CUG}G2 zZ$a5Fklvh(>gxRqgrtHnqSymQ!bL$!r%0B*HkXW*iypu;k?} zX|fk&mp+Z`CLF>z3i3)V$YCihMJB6jv@ogd8DuHYc-bZ=9p_lblcHZF!D3A7YUw7X zbd{KQlwZhunfaa?T%P#-_(g1Owbz}wJ#(CR@+jYmHj6pO_>|ON`K&ITTiYJszvwQT z2G+a$X`=h;!Za{<$4_Hyx%r7sWHm3{Hn~~ceT?6jc#n^g^1j{rJ7YE5^q)%XG1lp@ zTcy}nyUHFSo9&OaiJ8aw9_}}OV?ehpxr3)vl$sh%#Za--7-}pPN5xa)s00dA8cKU6 JxkDF`{y$SN)Rh1L diff --git a/src/celemod-ui/src/routes/Manage.tsx b/src/celemod-ui/src/routes/Manage.tsx index 7f16652..adef4d4 100644 --- a/src/celemod-ui/src/routes/Manage.tsx +++ b/src/celemod-ui/src/routes/Manage.tsx @@ -772,6 +772,8 @@ export const Manage = () => { const deps = mod?.dependencies .filter((v) => checkOptionalDep || !v.optional) + // console.log('also enable', deps?.map(v => v.name).join(','), 'for', name); + for (const dep of deps ?? []) { if (!('_missing' in dep)) { if (excludeFromAutoEnableList.includes(dep.name)) continue; @@ -882,10 +884,15 @@ export const Manage = () => { onClick={() => { manageCtx.switchMod( [...installedModsTree.values()] - .map((v) => v.name) - .filter((v) => !alwaysOnMods.includes(v)), + .filter((v) => { + return ('_missing' in v) || v.enabled; + }) + .map((v) => v.name), false ); + manageCtx.switchMod( + alwaysOnMods, true, true + ) }} > {_i18n.t('禁用全部')}