From e7b1792fa45dc57c80eb1b3da737be5b41b5c80b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ph=C3=A9na=20Proxima?= <adam@phenaproxima.net> Date: Wed, 26 Feb 2025 16:08:36 -0500 Subject: [PATCH 1/5] Remove the $updated writable --- sveltejs/public/build/bundle.js | Bin 279138 -> 277133 bytes sveltejs/public/build/bundle.js.map | Bin 258613 -> 257797 bytes sveltejs/src/InstallListProcessor.js | 2 -- sveltejs/src/ProcessInstallListButton.svelte | 4 ---- sveltejs/src/Project/ActionButton.svelte | 4 ---- sveltejs/src/ProjectBrowser.svelte | 10 ++++------ 6 files changed, 4 insertions(+), 16 deletions(-) diff --git a/sveltejs/public/build/bundle.js b/sveltejs/public/build/bundle.js index cecd5d94d1a117891778ff9a5cfcbc6634c4108f..3a0b98ce82a298228de3f5a5d2d7a37c2345577a 100644 GIT binary patch delta 1144 zcmaFVBG~&?U_({&<~hxGwHb{!SFNvOWHC3hGMR2SlSyN<%Em;->0YwT+?ywCGG${n zuriulvtDw#Xb7XqX4aiwMJMx~*PHHpok?}`p7VN)lT9zWOtyR{IK9%GMZ4+Jwo8m# z*RYscnHWqj+{UQ1{dOJG6D9#80}~5Pg=#JZ1qB68PEOA03!9k4rpvT3acqCv$n=bn z+1Scxx`Gn3^<<Te!qeZ@F&&tGONp6p`==JBC}tKzD`R7jX$sp5I+(0E7!9Wz>}Hgh z{#Sxoe*5DIOyL~U`Q|aPPcL1`q_#bMCeucy>6uHIJGL*F!<5g+XtZ5m9+Mk03&;u6 zbC)nL+qQ^_g^9_)e7eC=CW-BGOPHQAGn#B?S;3Ue$Y{E~U?o!p6N{07sUb*l3&@aM zMkX_}?f2I*g&_>iWn?ikva*=&u$M_}yUQjfe~=y%3nV?PmWEb_MxYSYoZivEEHwT6 z5+;M`_jWKPZQrnqsfBU-y&X)Pj4UQrCT0-7aqnU>U}iEm-)_5?DTkTK+zjHt!v~nM zS*9;M!6doe{U}p3Govv`TztCp3MS?4cTX@)Vq!8i+g^B@$$=XbG24BwGi_&_Zt2G; zI6dJeQ`qzqiy8U0^WS2!V4R+1$0RU4e>XE*`^wu)+gILZ{>IE`I(@-?W>aPZE0gIr z?lXU9G~IsT0ka$vlbOl%kB^u&8BMoKKW3iGIDPkP=Jx4-pD?#FnoVzh%B;g^x_!e_ z=JiZW=0?-y(wU{F*S=upW;Tnpo-V-5B)NUb3ubZV=?6YACor0CSNzD_$jE3uUGXDx z_jbL{%xgIrO{ahKU=*4D;SaMmlUeMfR}PaKzRFF%|A?7mddxp&zUlw}F>`I7{g+vZ zg~=#(`UVRY$>}#3S!5I}Vs)U2s5rl<q}WP9Ukl98(pN|>sff0mF3Q9b&1f>ckcq{J z$<T88QYID~CWF}NjnkP$rhjK*i2}(vGKy?ZV`kaL!ekOV-ElRu#$^2y3e&t9C8s~| zVHVy#iG$?@BcsXmyJd_@)8}%rlrS4xnSkO*e7iO`3lAfUd90@O^ncteQqx0uSk##; zVka|hQJsE4lG$MUWgeD#7Dlt_!GbLF7|o{h2(xH|f>J?<B?^@*J^h;mi^lXfLM-x7 z2}ZN&)sieV(*qiq*ryAKu&``DAj~q05u|;iD2v$iVo??mMziS;MOdV#FBWC#<1ETA zFV@mmur!?RD#oJBW@v0_WM;BGPmJXv6Qjv=2T2xl77Ig5qwO`4EXx_$wDc7Wjm%M$ z#z?cAW}3d^7_$sGJ5P^SW?`M)AjhJx{kI%TJ|m;S^bNBZ#kMypu&6RJ8Cgy@n8hfu z{eU9N0!Bu|?TN}PVoZ!?+bdLAj2Ib>r>|CHNno_t&ZExaD8OjE-OrrGfpPmh3l@DQ NM&s@0tXQV70|1w^Za4q{ delta 1945 zcmeDED)6X9a6?tIbaH-Pafw1{K}uptYKnrbLU~bUNn%n?s)m8)=Hlij+KlF#Bi7e3 zGFnXExSCOCGxNp-MkaH^>Dk*E^(JrF%d&a;CLT6Mlg&$Zn251MO_^SImB|XmnJjo- zipS7UM?nQ9t0>MQIz3y0MQZvRF&5R$+UNBcr>|6H5j27-KqytPRme*%S8z!zN!8HQ zOHVBc$;?gF&_pPh9C*QpT)opBEEpx5*In4Y?gHb3HH?<q`)ipvnORH>EX}shX<!my zVl>~rwuz~Ng~im$*m(MapUmRh9om^(IG9bX%%&HJF`I7R)6W#n!DMJK-E#$#_I8IE zOdFX%`pvf&Y-ak%$ZTj}w*BQCCO3$o(+f5;wM?&C#H=*^fhsfi_9qLNelju{8g9S8 zi0Lmgqs8{S%b2nm87;Sau3)NQVm2|b+%CAD=@TQXxq+31A=v)u4(&{w+i$O7GDfzC z$;@m!>qe$@u$URh?oW&?rdEbV)4f+PX>RY|%47&K{@@O#U}h!@!|h^wm~xnzEDWaK zU&JJ_ea?QSY!*<Af_aKZn4*}ca~xrknEquMlk)a$$C)NEF_{@`_d3PozzvI2^az%N zOQ6Q>_PbY^CXpSv(>MAuN=|RM&J;#=6i;}?D7O8{btVhO=|2?7N@3F#?=VVEk1u3m zo36WqnYZ2kCewENo6Ikn8O^3^-eoprHncLEo_Lq}JEPfj#T-WI=?PlQ{M(!FF@IrX zGBld5_<&h>diMinaYnQ4iytu0Wt<*!mzk3*JGBy;AEqzRV3y#_POXej%E?d8p8lYP zQEdA8PmH|NZ$4r!W;CDf`<PjW)ht#oGi7>WE2I7Py^oo5n3xTX&88n@W|HPB$}cb0 z(pN|>sfad@wVr<QB9r9y+-J<<%+nnnF}E8O6s4AB=9d=7gKV@_(AR?HLZ}|ISZgi? z1qB7poYWG9?9|HXg$7JoGH~Z8*eWC!r6!i7g7iaOnBc&u$qZ7Oc#ugL!kEnH3})<C zWHJCVJ}NRrPCkE)b-MjGW{yB4JIzcK)YKG;6Vp=T^YTmLQwvKIb2N}0siT0*Q^4wE z&FK?U8D*yDK4a#X9yN`TUmWgU9R))$%FE9$(6pYuFoan_91*xEzM1aN$RY}MEXW_z zBd0O)uw~|HfIPPGGLr~D+)TY(u%Lr6lN4Av<1|L`$x+7yL7d4C?#fPIJ&nm1#F<`b z!V~~wNKFsuV|D`bKpMadgB&L5=?n51C8xK%WKLkTn4bQcxqEuSE9P&E7TeQbGh1*m znoVEumD!%reEWm1%nMmKjAM1c(KDTK1*7QndB2#Y7%iu-31gH46*@P5F-J3+PB;0@ zY{X<_Fg@cpvkjAB>~zB~j3U$jTQIXtKk%D5gwb^R#ox>#+cp0%Z)0IJoxYKsNpkw1 zmCU?T>zMtwhcdFfU}Q9%ZpX|rjnQ=ayr0aH+ut#>@GwrdXJuiXeu#xda=HX7i#ns_ zb_Z6Lt1OJ>)5W-0<}sR2x8-KhW;Qgkn4ZPWB0c>t7mGcbU=lK4Ux=l8x`GJ{`}7Mu zEG*j_cvxmJf^`@0v4~AK;$snEG@t&FjYWET5+6&S2rR+qC_t09k)h@EJHjl=Y)0l5 zrbZUqmH1gMGBKJ?|02j@&T438Y+<rpUx;NnqX436(9%~hGBrif#VW#bnu!OL(qR@% z4>V&`23139jK<UNU1d_7o+-g111rryRTsAz!pQB4;w&wUjE2)c@H2{S-y^}I%E)AF zFnyvKqr~)m(kwjN*`-*fFftl#pCip82C6<b%d!|TGMY?(CdZP%Xt~{8p2bms(PVq4 aK8ph*2h0uI4;rwTGclTM|7pZBg&hFt7JY;O diff --git a/sveltejs/public/build/bundle.js.map b/sveltejs/public/build/bundle.js.map index a012e1af66e538537ad02c48022de757983f9f89..83ce02a3bcab871b00b48275db36fad2b8e878e9 100644 GIT binary patch delta 355 zcmdn`gunG3f5R3=F2C)DevH%QwqMI(v|^h6$B~I+x?MhF?e@p{j3JrRU*|A#Zuh&% z7|S$$c^#v`^oO?@gSSWBVJv3c{`D@SZSZz$L#BM`=?8t7l%_xRVbWo%)=y1L&e*Q% z%Vg8Ceac0q$>J=Ae%j8{<(Zi!rz<Eivv2o)$@GbdF?+k+8>T>ZHc!VQXJhB-{|+(B zPv7>L=?9y&b+V&-(Dd(Ln3OoJt*x#79aFNLrYnA95}sc9m8q05b^C{}Oa_dMMcWm> zGkvP!NGx&ENp*BgozD1|Np!nm5wjUDbGW17^qhL;XKdEio{sKi(`Pp@d$3tshda6( zPuFQ=KFnbalF)YXnQqm@9K={Ly|;;Z5@X?Zg=Xfe0OnGU!s&A_GixyxZa;CES(lO3 z(=o%veY)ctCaLKYt}$<&u8_pcz1{g5^KW)Wv+efxnA;ecEPbaRzt60`{lk6c9Rk}| Jeqiol1ORF}fc5|Y delta 942 zcmZp@$G`Onf5R3=E<dHzih}&25{2aayy6mt(t?!4lGGFhTZQtX%#y^UoKy`1&F!py zjC17Jp>o@2<uE!jDJm$aKm`<R74lNc6<iWaQZ+R7(o;)9GILWkG^bz7W9(9n$x~1u zpmck5K4WAirvl9K?dxwaW;4kX&^2u)qxf{K+l;}4jMvy+ew(q9k+6fezr4ff63hYh zmCkk@1EvCL!R*vZxKC?AzL`GFn@MB(9&aYS>F!)i{H)db*{PM=KX^0Qv@rTlSA54T zHT_R36W8<)GniPp937qWoUJ__ogJsYzr-Xuz3e`-(Db^!Ol;euE-<BvGn#Hc@SI7M znWfmp)Oq@TKW3@v{jZsVr!Tm|%rX7EIWz0_;MYu7*rq20GqbQ%I2$`pcR0W-Ki%gO z(+>@8Cr9Troj^y&Kpl5SM@Jn`M@N4U;i=;a;yODzy6gBmI{Ht)xPn=RHQCX<#A&+M zXC@_0Z6`<93@0LW%CY%7W;t0pO+UDlS$KNKXQoo7Y^Ux2J~J6GGFENZ|H|~KiZj!x z#7QUB(J^&;p*FMVcDn**GhTLU>u^VNcmL@VlbEHZPp)M?1+v%Kl306XSUerwOQt8+ zF?)bD>JzUq+|j*i`o=ou!<y;Nj;<BNYLsR5bhK~@n_g4T9K>im{d_(1B*y&hNe#?Z z0nFtdrPJ?UVAf(Sc6D_0nEv1bv&i%X+RQA|A80X4O?SA+{GGMX+0n&qy1WLn=yU^C zW)aqGcSpw{2;X5BGw<{R7nwz-KUl=f!JOgZ1CHwLVV9V9b1-W=`%M>cWER=3ahth- aktxG(`m8(5>f86<VcsRMz2Yr%FCzf4kup30 diff --git a/sveltejs/src/InstallListProcessor.js b/sveltejs/src/InstallListProcessor.js index 67025be16..3a8cc026c 100644 --- a/sveltejs/src/InstallListProcessor.js +++ b/sveltejs/src/InstallListProcessor.js @@ -4,8 +4,6 @@ import { BASE_URL, CURRENT_PATH } from './constants'; const { Drupal } = window; -export const updated = writable(0); - // Store for the install list. export const installList = writable([]); diff --git a/sveltejs/src/ProcessInstallListButton.svelte b/sveltejs/src/ProcessInstallListButton.svelte index 74b85d3ec..c0c756481 100644 --- a/sveltejs/src/ProcessInstallListButton.svelte +++ b/sveltejs/src/ProcessInstallListButton.svelte @@ -2,7 +2,6 @@ import { processInstallList, installList, - updated, clearInstallList, } from './InstallListProcessor'; import Loading from './Loading.svelte'; @@ -23,15 +22,12 @@ loading = true; await processInstallList(); loading = false; - $updated = new Date().getTime(); }; function clearSelection() { projectsToDownloadAndActivate = []; projectsToActivate = []; clearInstallList(); - - $updated = new Date().getTime(); } $: { // @see css/pb.css diff --git a/sveltejs/src/Project/ActionButton.svelte b/sveltejs/src/Project/ActionButton.svelte index 26c5b4c34..de854f93e 100644 --- a/sveltejs/src/Project/ActionButton.svelte +++ b/sveltejs/src/Project/ActionButton.svelte @@ -10,7 +10,6 @@ addToInstallList, installList, removeFromInstallList, - updated, } from '../InstallListProcessor'; // eslint-disable-next-line import/no-mutable-exports,import/prefer-default-export @@ -28,12 +27,10 @@ function handleAddToInstallListClick(singleProject) { addToInstallList(singleProject); - $updated = new Date().getTime(); } function handleRemoveFromInstallList(projectId) { removeFromInstallList(projectId); - $updated = new Date().getTime(); } const onClick = async () => { @@ -48,7 +45,6 @@ loading = true; await processInstallList(); loading = false; - $updated = new Date().getTime(); } }; </script> diff --git a/sveltejs/src/ProjectBrowser.svelte b/sveltejs/src/ProjectBrowser.svelte index d126cd6d1..3a0ccc9d3 100644 --- a/sveltejs/src/ProjectBrowser.svelte +++ b/sveltejs/src/ProjectBrowser.svelte @@ -6,7 +6,7 @@ import Pagination from './Pagination.svelte'; import Project from './Project/Project.svelte'; import { numberFormatter } from './util'; - import { updated, installList } from './InstallListProcessor'; + import { installList } from './InstallListProcessor'; import MediaQuery from './MediaQuery.svelte'; import { FULL_MODULE_PATH, MAX_SELECTIONS } from './constants'; import QueryManager from './QueryManager'; @@ -247,11 +247,9 @@ {/if} </div> </div> - {#key $updated} - {#each rows as row (row.id)} - <Project {toggleView} project={row} /> - {/each} - {/key} + {#each rows as row (row.id)} + <Project {toggleView} project={row} /> + {/each} <div slot="bottom"> <Pagination page={$page} -- GitLab From 4c80bc9800fd559bd9fb6d7830ad56f2e025e237 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ph=C3=A9na=20Proxima?= <adam@phenaproxima.net> Date: Wed, 26 Feb 2025 16:19:33 -0500 Subject: [PATCH 2/5] Test cleanup --- .../ProjectBrowserInstallerUiTest.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/src/FunctionalJavascript/ProjectBrowserInstallerUiTest.php b/tests/src/FunctionalJavascript/ProjectBrowserInstallerUiTest.php index f5afc262a..be91ffa28 100644 --- a/tests/src/FunctionalJavascript/ProjectBrowserInstallerUiTest.php +++ b/tests/src/FunctionalJavascript/ProjectBrowserInstallerUiTest.php @@ -267,20 +267,20 @@ class ProjectBrowserInstallerUiTest extends WebDriverTestBase { $cream_cheese = $this->waitForProject('Cream cheese on a bagel'); $cream_cheese->pressButton('Select Cream cheese on a bagel'); - $was_selected = $cream_cheese->waitFor(10, fn ($card) => $card->hasButton('Deselect Cream cheese on a bagel')); - $this->assertTrue($was_selected); + $this->assertTrue( + $cream_cheese->waitFor(10, fn ($card) => $card->hasButton('Deselect Cream cheese on a bagel')) + ); - $dancing_queen_button = $page->find('css', '#project-browser .pb-layout__main ul > li:nth-child(3) button'); - $this->assertFalse($dancing_queen_button?->hasAttribute('disabled')); + $dancing_queen = $this->waitForProject('Dancing Queen'); + $this->assertFalse($dancing_queen->findButton('Select')?->hasAttribute('disabled')); $this->assertNotEmpty($assert_session->waitForButton('Install selected projects')); $kangaroo = $this->waitForProject('Kangaroo'); $kangaroo->pressButton('Select Kangaroo'); - $was_deselected = $kangaroo->waitFor(10, fn ($card) => $card->hasButton('Deselect Kangaroo')); - $this->assertTrue($was_deselected); + $this->assertTrue($kangaroo->waitFor(10, fn ($card) => $card->hasButton('Deselect Kangaroo'))); // Select button gets disabled on reaching maximum limit. - $assert_session->elementAttributeExists('css', '#project-browser .pb-layout__main ul > li:nth-child(3) button.pb__action_button', 'disabled'); + $this->assertTrue($dancing_queen->findButton('Select')?->hasAttribute('disabled')); $this->assertNotEmpty($assert_session->waitForButton('Install selected projects')); $page->pressButton('Install selected projects'); -- GitLab From af17c2909a17d59bdb62db87d420b159693c747f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ph=C3=A9na=20Proxima?= <adam@phenaproxima.net> Date: Wed, 26 Feb 2025 16:21:38 -0500 Subject: [PATCH 3/5] Use reactive syntax to fix this bug --- sveltejs/public/build/bundle.js | Bin 277133 -> 277233 bytes sveltejs/public/build/bundle.js.map | Bin 257797 -> 257798 bytes sveltejs/src/Project/ActionButton.svelte | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/sveltejs/public/build/bundle.js b/sveltejs/public/build/bundle.js index 3a0b98ce82a298228de3f5a5d2d7a37c2345577a..11d640cbf800b16e2ecb7d73a83d27904dedebd0 100644 GIT binary patch delta 153 zcmeDED)8~EKtl`T7ACogjK<UDCo<_X8cp|~$mGIg96R0a0AuL(R}-0*=rI~^??1rw zON8Guuec;JC&wqVxWuhACue%yRi<y#%da!>Z<o2wG?96F)NMxj$@ebs^B5axDpYeR zC@3g!a!xP4#uPGLeK)hv^t0EPET${oVbqvDXE!td^qaSs#HaJ$W)h$N;TDs8yV`B0 K?P|A~)8heavpN+3 delta 127 zcmezPRiO8)Ktl`T7ACogj7HPtCo<_X8c+A1$mGIg6g%DS0AuL(R}-0*=z(~Kxy+K= zR~}$`ATs&-xsd7KuQE-ao_UKYm^C>+uefCT*;`DOjMmdXUSks5KKB~aMCR!_cNk@- i?P2DhZhM<ae7eF~M)B!Bx0&SIyKXaW@4C&L9uEMK8Zzzx diff --git a/sveltejs/public/build/bundle.js.map b/sveltejs/public/build/bundle.js.map index 83ce02a3bcab871b00b48275db36fad2b8e878e9..8c6af1eb7a0246a97181b503757ffc63e95d675e 100644 GIT binary patch delta 75 zcmZp@$KQ63zhMhw%q=DrtM<fOjN21$F$pi8UR=wZ!s_W5T;RH0td7})iQCiBz06f7 g*U8b*efslSW{v4?*39y(p3d1$Ionejm>1>&02*-`82|tP delta 87 zcmZp>$KQI7zhMhw%q`aB{Ji3l_PAS&+v9FA2``>rRLh*qYwhXiUFNFe?C9vI<2!v# sJ+s7gy#{7sc57=-N6#Xc?YC-~O_-)1c*i8l>ginQWVt=Hfq7vb0IfwIUjP6A diff --git a/sveltejs/src/Project/ActionButton.svelte b/sveltejs/src/Project/ActionButton.svelte index de854f93e..39a60cfa1 100644 --- a/sveltejs/src/Project/ActionButton.svelte +++ b/sveltejs/src/Project/ActionButton.svelte @@ -21,7 +21,7 @@ $: isInInstallList = $installList.some((item) => item.id === project.id); // If MAX_SELECTIONS is null (no limit), then the install list is never full. - const InstallListFull = $installList.length === MAX_SELECTIONS; + $: InstallListFull = $installList.length === MAX_SELECTIONS; let loading = false; -- GitLab From 3d88f9f8fe96808da32304ab24f1f9037a84408c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ph=C3=A9na=20Proxima?= <adam@phenaproxima.net> Date: Wed, 26 Feb 2025 16:22:32 -0500 Subject: [PATCH 4/5] Remove defunct variable from ActionButton --- sveltejs/public/build/bundle.js | Bin 277233 -> 277231 bytes sveltejs/public/build/bundle.js.map | Bin 257798 -> 257725 bytes sveltejs/src/Project/ActionButton.svelte | 4 ---- 3 files changed, 4 deletions(-) diff --git a/sveltejs/public/build/bundle.js b/sveltejs/public/build/bundle.js index 11d640cbf800b16e2ecb7d73a83d27904dedebd0..6af82f77ce69a6f9fc2858cf348000869371da8f 100644 GIT binary patch delta 298 zcmezPRp9+sfrb{wElhp2jE39$YneEiSqu$~Ot#NyVB%+DGO^sgwuz~Xh1JsB%Gh|i ze>S7ScF%SuD~{>xyBMXm&+TU_=U_CN?zw_Vd%MF7rj1M>&8FK6HZy%<WVG1+at@Ol z#JuSRo0(ds-&@42G(FFgnS1+_1x&vf8I8B!U&Qp6nbBbT-DOPKjEsicJy$SQfDJJR z8S;^l)y&As!VqM!()PP+m<+*kU<*DnGMQRzXWht@4i+<ks<$w=GBld*y@E+|d;eA@ zLy*}AcQA!8Ga7Ff+ryO0%xE<I{vsxc?Q`}s<*-bzKF%buUEv5*6f={lB}hVi`j=%) Y%G<XcXPV5!Xw>d?ifOyoDdyz`0P9R-ng9R* delta 357 zcmaF=Rp8@Sfrb{wElhp2jHcWBYneEiS&R%!ET$VSU=rTGzJcivBa^A|_O(q+Wh`ul z28LF~#?$??85OpBv@=<8Fqs){Z|P_1=U_IovY32pgT{8d8BCj)riUzI?wFoa!stDH zgAOzMbnZ>e>eCObX8OWxXkfJc`5Y!Uh$Y(%7ci}6Vl>}=cM;QHW)>4GL*wZW7BPuz z|Fn!Lgpt`4YG&aICO;+?BLh=IkgHm-82pvR%*w(L<S?b}x7RQk;&j1}?W`M_QbC46 zyok-PFHDw(+Y`4k#WFLRY~R0wDTJBPe7ndVrd(!5v*~viF-dHnwVx@6h0z?skw3x| j$vmC)2$SUWPs^B;w{JPlG?|Iftli@j({_(j%*zV^MNxdZ diff --git a/sveltejs/public/build/bundle.js.map b/sveltejs/public/build/bundle.js.map index 8c6af1eb7a0246a97181b503757ffc63e95d675e..884c12113d3c1018ac865a155f7cc3f08e8f14f4 100644 GIT binary patch delta 116 zcmZp>$G`V3f5R5WdAGLjxW)LCar%}!jEe1V?=WtEdxyzzGGp*|`2yxpUgi>a|LJ{6 z%u>@Q)-t;>`ftBc%k0f4?QHI(lkMc_nC+zF>gedG<Lv0@Xl-q6?dfPS-L9TFgtNfS W&{fCX(b0W+;bUge?HlTu!}0;DnknM| delta 124 zcmdmcm%r^Ef5R5WdAFu}<uXcbpLdJ#DdY5sd5ogd8}BeG3o0n&<R_+N=A|pxDx@Xm z6sNY&y~DVD?j0tJ$sCC#PCBWMj;YfH3z$W>f68aJ<YhK=_n#iPhgoX6M=i4(WAOI= fT4rxXM%U@L>zE}OwWoirV-8`g*zQ%&T$~R8ztAl` diff --git a/sveltejs/src/Project/ActionButton.svelte b/sveltejs/src/Project/ActionButton.svelte index 39a60cfa1..01f7429a5 100644 --- a/sveltejs/src/Project/ActionButton.svelte +++ b/sveltejs/src/Project/ActionButton.svelte @@ -23,8 +23,6 @@ // If MAX_SELECTIONS is null (no limit), then the install list is never full. $: InstallListFull = $installList.length === MAX_SELECTIONS; - let loading = false; - function handleAddToInstallListClick(singleProject) { addToInstallList(singleProject); } @@ -42,9 +40,7 @@ } } else { handleAddToInstallListClick(project); - loading = true; await processInstallList(); - loading = false; } }; </script> -- GitLab From 97b2574597b7a87da184f89547a42f6f7fe48ec8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ph=C3=A9na=20Proxima?= <adam@phenaproxima.net> Date: Wed, 26 Feb 2025 16:29:53 -0500 Subject: [PATCH 5/5] PHPStan --- .../FunctionalJavascript/ProjectBrowserInstallerUiTest.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/src/FunctionalJavascript/ProjectBrowserInstallerUiTest.php b/tests/src/FunctionalJavascript/ProjectBrowserInstallerUiTest.php index be91ffa28..cf5fc99e2 100644 --- a/tests/src/FunctionalJavascript/ProjectBrowserInstallerUiTest.php +++ b/tests/src/FunctionalJavascript/ProjectBrowserInstallerUiTest.php @@ -271,8 +271,9 @@ class ProjectBrowserInstallerUiTest extends WebDriverTestBase { $cream_cheese->waitFor(10, fn ($card) => $card->hasButton('Deselect Cream cheese on a bagel')) ); - $dancing_queen = $this->waitForProject('Dancing Queen'); - $this->assertFalse($dancing_queen->findButton('Select')?->hasAttribute('disabled')); + $dancing_queen_button = $this->waitForProject('Dancing Queen') + ->findButton('Select'); + $this->assertFalse($dancing_queen_button?->hasAttribute('disabled')); $this->assertNotEmpty($assert_session->waitForButton('Install selected projects')); @@ -280,7 +281,7 @@ class ProjectBrowserInstallerUiTest extends WebDriverTestBase { $kangaroo->pressButton('Select Kangaroo'); $this->assertTrue($kangaroo->waitFor(10, fn ($card) => $card->hasButton('Deselect Kangaroo'))); // Select button gets disabled on reaching maximum limit. - $this->assertTrue($dancing_queen->findButton('Select')?->hasAttribute('disabled')); + $this->assertTrue($dancing_queen_button->hasAttribute('disabled')); $this->assertNotEmpty($assert_session->waitForButton('Install selected projects')); $page->pressButton('Install selected projects'); -- GitLab