From 680037613840d3d1afbb3e1048633f42a1719e81 Mon Sep 17 00:00:00 2001 From: Adam G-H <32250-phenaproxima@users.noreply.drupalcode.org> Date: Tue, 28 Jan 2025 20:53:25 +0000 Subject: [PATCH] Issue #3502850: Remove most writable stores from the global scope --- sveltejs/public/build/bundle.js | Bin 296173 -> 296655 bytes sveltejs/public/build/bundle.js.map | Bin 269825 -> 270004 bytes sveltejs/src/MediaQuery.svelte | 5 ++- sveltejs/src/Pagination.svelte | 4 +- sveltejs/src/ProcessQueueButton.svelte | 8 +++- sveltejs/src/Project/ActionButton.svelte | 9 +++- sveltejs/src/Project/Project.svelte | 4 +- sveltejs/src/ProjectBrowser.svelte | 22 ++++++---- sveltejs/src/ProjectGrid.svelte | 5 ++- sveltejs/src/QueueProcessor.js | 33 ++++++++++++++- sveltejs/src/Search/Search.svelte | 2 +- sveltejs/src/stores.js | 51 ----------------------- 12 files changed, 70 insertions(+), 73 deletions(-) delete mode 100644 sveltejs/src/stores.js diff --git a/sveltejs/public/build/bundle.js b/sveltejs/public/build/bundle.js index b3c648463fef17078fbc51d9c5e33927910ee7fc..e02889f0793e818d22107cc3c48a3e437933761d 100644 GIT binary patch delta 3755 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 WM}O5NHC4A-eq!9+{cGgjsDA_a;JxDj delta 3441 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 diff --git a/sveltejs/public/build/bundle.js.map b/sveltejs/public/build/bundle.js.map index 7afbf8e8448dcce7c618119f12690a944b602f9e..e080a67b95ea0490a424f45825a44d42e45d7323 100644 GIT binary patch delta 2100 zcmb7De@qld6wb_B5TTY6fg)J%gbJFhiXgPd#oF0n#VaBp)r+*ooOdf8o_Bb6NF_Fu zHZhH9qDI3rZP3O<+oVk~P3`<swKnOGh|&ItO==>=7>!Mvs+GjpzdE~n2M20n_m9cU zd+&Si+i$+<|I+dKX~+KW`mdh4N_MXheLA`F6j5>TB~ps9wPd5Xt&zP{&^D4+qQ4e# z$*(IG4H)rwYq!yDsCH<FxnCWMCz9vxuAo0*1e2#g*zm{3%f+S$8Cxvg93%=^;&KI| zk$A!tmlc7nZHZVY(&1X}>M#;K8c7(hCl*wsr$pZoa?^=N&yd}C=^Nt2#b?P{Y&lG_ z=6Cr!jJ8m(F$J9pS1j~Ms(4l-#dFiUZ#RM=zvLF%wca1@HsTcv#T#eIt2yKCr{map zQjXd%8L$S;OLctgAaQw^d{T&qi)l5UjF2LnbDcc5?6KPUgTYs#<LXF#C&a|j8>Arb zVNFHTby8Z3rMqkersIQaWQF*2Hf<s(b#>tC66&_tF5MChbjOXL9yYcck;D|vlav2L zqPI%uC5I_d8M=M63`hSaFX980`ti~gl8N7HWLC+4sEkK<lX9_h5xuL-a;3a7@!u#N zQZ8;)(SsBzBZbYC*5xIwlBR!8ER^tX4jT)WR@oKtG~cA^DpXf$YZjR<NH8+5uEPFb zX}t-rO%X(OO%9~+zcb>jeH1?3t8#AoF@=>5tX%4vH1#15s;;Ra5wD>)!+nhLdXJZJ zrZzFwq&73wta=&q+B+-O$XKK5W6WpPxw&0vX3TSY8g3n9>(oirJGp8F&Bd(l((JR< zm&@5Xs=3NkQ&<xlkI_SQV(&FNI~!JQ)y3cly+L#BiWJXgapDhJRzTfrP7T9Pl=O%r z02i~NSF6Em@58g=-KU|;4PKTQSOp&~;%-gdz}N=0fw2aAwmDD@FcvTyGi&j9d`ypU z@$o9?nVIE@>U>F4jN^~(Fkh@`ht`aIAM4ba+R9k#M5lo&$X{kc`BtuWXpD7e6G@A; zx=lv6X=#JJOt0p+d>=H3KR3ZB#k!Xv8-LjhQKI9@0DP6{snocy3(w_3A&%aH9H9nb ztT@BV+}e8lAq3^Px({BEguF5B5ri^5QcS&Cywe94L9BZlF65G0QF;(+XDU@ZQIGwf zK>^M`4%OHaf*JVr2{<F7$6;l4P9=}k+f==HZWxNN?gGrh{TYyhAN&mY=r|*(e*Zx3 z&JRPbnJvSX^`PL;Kj1`%8x+z1D>P<c_Z|tBxNQ7u1jfwc+%HDqZf>TJ^=h3QTTVhT zI$e-~&)fkfe}zXh`$ooZ33n7LMO89W^Tg7&F+E%_Hr|0flx~R(<Uz^6JusHZo8A1R zx8pIzYj~cEZTH|k$nto0X}o8x9}nDzeBrzgduJ$qwv&sKin4|(vU4X6Wh#aEVWHy4 zmSj8a8^Pa3Xc3-123dGHQ*q3-o`BAnZr|60?PP~u4TnzA0=zv!vn)tWBje%Zv$3q2 zbe4smVq1xiam(N1Bd6s{y!4|r)54n=tel|~^qGVw%V`-}Rx$I<H`?x%gX~vfKMmQg zH@#ib(iWX0HLHQSSk~i751DP+7;Ce;%Csn%rnDDGRXsi)(c96v4~oU1Im&kOFC?L- ADgXcg delta 1991 zcmah}ZERCj7|uE8ZiTV#L+l)5bq7?cP}nNtvzc)FF;bypwZIrm<kDW&Vta47x7`>M zaQr~=17~EuI+e_iAO0{Z3G-+`gPO<;gb;s7Vi3k334dHLD2X57xxHOG2azVdIp@63 z`#kr3-uK*NUsm*;sOUc>=xJ5!8y+4;hgQJvHxYeMQRmCM(wd~mYDS+Ql~b}3m6b?b z);pAVGNo#1+6(sw(d>O4N_{;I^L&}6V=_%io#rB=%NmXAR8<yqC=pfB)6`Irqpb#_ zi8i=96nR&c$&6+*n`pNdPfObp^1}u6BOE$OMo!2{SxM9M;+T}C-I7id5?9!+M!0Tt zl47%Q$|W6+ye9N6#Ix3!64~$_G;~?gA~F8fT3qRzL>bP;!r9Oy<{ua0x_u_|MARJx z5^^LhM@`f8_-=WUieXilA9DrQqxpBI1;28^+dNxp=G{TFOG;#9s&1!AIU1Mf&Wx<_ zrgB}g7jSbft^t1|u43;5(F>S0twf`x;0U5F*LdHJq>Q{KuBV+elHf*!j6K~$w`*#W zIu_Jti`N})_E0OjcjoGe_)ID)@rv(~*r8CGS4(MXMAr4J2;2KKy1sy#oyobM*DVM` z=?!Fu{e$Q_+~`8(&@g~3?BrYMblv>ktl5TdPSXO;tMzO!T+weU0rnn82jOZJu7&y& zC;%hhqH;FISJOa!6V<}j5j1CD4W3$8V7-mQm^pZ?2i3#y2<kK`+P+7FRo-4IMWgG~ zY+=rcCTVg~?UI|ho4HudwF38esW7V=uY|3~kp<?BqD5BvAG3~+qS=cfehICBRY7E9 z?f2oOs4;g({N@e%KNrST9B#u<2iV8Zboi<o*Rqxw_)G=7ehbyk?!Bvx1DEj*I5HPY zFw%o+S^GSEP2ism%74b4cbdyduVo%iY;+E1q-5J?BE|>G-0jRyrm@dYMt&lV)9hfe zz6Lyi+2KZfF(CxRb|3ruU3_?XwJ7>UcR=)-4`)ymgU<D$xE_wak8NeyZ9o(Q&Q+qg z3PNqf21C!{qH<C6?)Db);K;|=UK;b5`4Lf!z@caOz3Lw}u_@mKtm{u)XX!GraI09b z!IFP)WsyPY1M7=Cjm5FGRLQZ0L@@-`nL^DBFNe7Ke@B6BZB`LN7S6KeabkhzKEP!a z&T*uvyB1uRIO~ODxP+bi1%Hi;-R^)l;bVs`;F%?)Ip$|WSMdWjVMlPD7b>erHJrRe zrm!nF@uyf&eT%&CltyY`EhZu8KToV|Iws)~LGvu~K!}h!cCeHrmsxm?T8qmIeRi@Q zLd~R=_;-8Q*=EvRS*-fKu@()`eo_Ua8_9C^_D13;D&{H6e5+aA7UCc<ww07Xt3*^d zQz1-&Qxf^2sKMiHPeH3pT=3E;55F>%Oo2Tg5(_)GjhwDA2$py@7?N|~yFFxSQ9xWB z^8hEbG0$G|IbnbGk<;a<o1J=<EUv_zK6dLpvbm8TY(7t_iU&U8r2S|3gA!5(ul-D} z!^;&D&IB03q!<P{gne?6TqzgaZDJQZd6wAWvtLPbQCReA9=2(W9KdK3T)sy7;6^K{ zgm2!!_duCVu(FfCkrbKM<MAe+kjz2a*+lFE{k#b250bH3+-|odx;*SBBDCPrfavGF c=PeYS0XRy8YW9Og2-}1<?-Cz#+J)!QzxaTwuK)l5 diff --git a/sveltejs/src/MediaQuery.svelte b/sveltejs/src/MediaQuery.svelte index 270bee915..3309bccb5 100644 --- a/sveltejs/src/MediaQuery.svelte +++ b/sveltejs/src/MediaQuery.svelte @@ -1,8 +1,7 @@ <!-- Media query component based on https://svelte.dev/repl/26eb44932920421da01e2e21539494cd?version=3.48.0 --> <script> - import { onMount } from 'svelte'; - import { mediaQueryValues } from './stores'; + import { onMount, getContext } from 'svelte'; // eslint-disable-next-line import/no-mutable-exports,import/prefer-default-export export let query; @@ -12,6 +11,8 @@ let wasMounted = false; let matches = false; + const mediaQueryValues = getContext('mediaQueryValues'); + // eslint-disable-next-line no-shadow function addNewListener(query) { mql = window.matchMedia(query); diff --git a/sveltejs/src/Pagination.svelte b/sveltejs/src/Pagination.svelte index c2bd37e65..bbf13cb4a 100644 --- a/sveltejs/src/Pagination.svelte +++ b/sveltejs/src/Pagination.svelte @@ -1,7 +1,6 @@ <script> - import { createEventDispatcher } from 'svelte'; + import { createEventDispatcher, getContext } from 'svelte'; import PagerItem from './PagerItem.svelte'; - import { pageSize } from './stores'; const dispatch = createEventDispatcher(); @@ -10,6 +9,7 @@ } const { Drupal } = window; + const pageSize = getContext('pageSize'); export let buttons = [-4, -3, -2, -1, 0, 1, 2, 3, 4]; export let count; diff --git a/sveltejs/src/ProcessQueueButton.svelte b/sveltejs/src/ProcessQueueButton.svelte index ed6fdb96b..e12f7aad0 100644 --- a/sveltejs/src/ProcessQueueButton.svelte +++ b/sveltejs/src/ProcessQueueButton.svelte @@ -1,6 +1,10 @@ <script> - import { queueList, updated, clearQueue } from './stores'; - import { processQueue } from './QueueProcessor'; + import { + processQueue, + queueList, + updated, + clearQueue, + } from './QueueProcessor'; import Loading from './Loading.svelte'; import LoadingEllipsis from './Project/LoadingEllipsis.svelte'; diff --git a/sveltejs/src/Project/ActionButton.svelte b/sveltejs/src/Project/ActionButton.svelte index 236564876..69550405f 100644 --- a/sveltejs/src/Project/ActionButton.svelte +++ b/sveltejs/src/Project/ActionButton.svelte @@ -3,10 +3,15 @@ import { openPopup, getCommandsPopupMessage } from '../popup'; import ProjectButtonBase from './ProjectButtonBase.svelte'; import ProjectStatusIndicator from './ProjectStatusIndicator.svelte'; - import { addToQueue, queueList, removeFromQueue, updated } from '../stores'; import ProjectIcon from './ProjectIcon.svelte'; import LoadingEllipsis from './LoadingEllipsis.svelte'; - import { processQueue } from '../QueueProcessor'; + import { + processQueue, + addToQueue, + queueList, + removeFromQueue, + updated, + } from '../QueueProcessor'; // eslint-disable-next-line import/no-mutable-exports,import/prefer-default-export export let project; diff --git a/sveltejs/src/Project/Project.svelte b/sveltejs/src/Project/Project.svelte index 74f609361..72df51415 100644 --- a/sveltejs/src/Project/Project.svelte +++ b/sveltejs/src/Project/Project.svelte @@ -2,6 +2,7 @@ // eslint-disable-next-line import/no-mutable-exports,import/prefer-default-export export let project; export let toggleView; + import { getContext } from 'svelte'; import ProjectButtonBase from './ProjectButtonBase.svelte'; import { openPopup } from '../popup'; import DetailModal from '../DetailModal.svelte'; @@ -10,10 +11,11 @@ import Categories from './Categories.svelte'; import ProjectIcon from './ProjectIcon.svelte'; import { numberFormatter } from '../util'; - import { focusedElement, mediaQueryValues } from '../stores'; import { FULL_MODULE_PATH } from '../constants'; const { Drupal } = window; + const focusedElement = getContext('focusedElement'); + const mediaQueryValues = getContext('mediaQueryValues'); let mqMatches; $: isDesktop = mqMatches; diff --git a/sveltejs/src/ProjectBrowser.svelte b/sveltejs/src/ProjectBrowser.svelte index 85963cd04..e8de2b36c 100644 --- a/sveltejs/src/ProjectBrowser.svelte +++ b/sveltejs/src/ProjectBrowser.svelte @@ -6,14 +6,7 @@ import Pagination from './Pagination.svelte'; import Project from './Project/Project.svelte'; import { numberFormatter } from './util'; - import { - page, - focusedElement, - searchString, - pageSize, - updated, - queueList, - } from './stores'; + import { updated, queueList } from './QueueProcessor'; import MediaQuery from './MediaQuery.svelte'; import { BASE_URL, @@ -43,6 +36,19 @@ const sort = writable(sortBy); setContext('sort', sort); + const page = writable(0); + const pageSize = writable(12); + setContext('pageSize', pageSize); + + const focusedElement = writable(''); + setContext('focusedElement', focusedElement); + + const searchString = writable(''); + setContext('searchString', searchString); + + const mediaQueryValues = writable(new Map()); + setContext('mediaQueryValues', mediaQueryValues); + let rowsCount = 0; let data; let rows = []; diff --git a/sveltejs/src/ProjectGrid.svelte b/sveltejs/src/ProjectGrid.svelte index 2ac1a1153..c5d07aaff 100644 --- a/sveltejs/src/ProjectGrid.svelte +++ b/sveltejs/src/ProjectGrid.svelte @@ -1,17 +1,18 @@ <script context="module"> import Search from './Search/Search.svelte'; import Loading from './Loading.svelte'; - import { pageSize, mediaQueryValues } from './stores'; import ProcessQueueButton from './ProcessQueueButton.svelte'; export { Search }; </script> <script> - import { setContext } from 'svelte'; + import { setContext, getContext } from 'svelte'; import { PACKAGE_MANAGER } from './constants'; const { Drupal } = window; + const pageSize = getContext('pageSize'); + const mediaQueryValues = getContext('mediaQueryValues'); export let loading = false; export let page = 0; diff --git a/sveltejs/src/QueueProcessor.js b/sveltejs/src/QueueProcessor.js index 13dc0f045..cb5ec7ccb 100644 --- a/sveltejs/src/QueueProcessor.js +++ b/sveltejs/src/QueueProcessor.js @@ -1,7 +1,36 @@ -import { get } from 'svelte/store'; +import { get, writable } from 'svelte/store'; import { openPopup } from './popup'; import { BASE_URL, CURRENT_PATH } from './constants'; -import { queueList, clearQueue } from './stores'; + +export const updated = writable(0); + +// Store for the queue list. +export const queueList = writable([]); + +export function addToQueue(project) { + queueList.update((currentList) => { + if (!currentList.includes(project)) { + currentList.push(project); + } + return currentList; + }); +} + +export function removeFromQueue(projectId) { + queueList.update((currentList) => { + currentList = currentList.filter( + (item) => item.id !== projectId, + ); + return currentList; + }); +} + +export function clearQueue() { + queueList.update((currentList) => { + currentList = []; + return currentList; + }); +} export const handleError = async (errorResponse) => { // The error can take on many shapes, so it should be normalized. diff --git a/sveltejs/src/Search/Search.svelte b/sveltejs/src/Search/Search.svelte index ef4d190db..172b2d9c9 100644 --- a/sveltejs/src/Search/Search.svelte +++ b/sveltejs/src/Search/Search.svelte @@ -4,7 +4,6 @@ import BooleanFilter from './BooleanFilter.svelte'; import MultipleChoiceFilter from '../MultipleChoiceFilter.svelte'; import SearchSort from './SearchSort.svelte'; - import { searchString } from '../stores'; import { FULL_MODULE_PATH, DARK_COLOR_SCHEME } from '../constants'; const { Drupal } = window; @@ -12,6 +11,7 @@ const stateContext = getContext('state'); const sort = getContext('sort'); const filters = getContext('filters'); + const searchString = getContext('searchString'); export let refreshLiveRegion; export const filter = (row, text) => diff --git a/sveltejs/src/stores.js b/sveltejs/src/stores.js deleted file mode 100644 index 0a384815a..000000000 --- a/sveltejs/src/stores.js +++ /dev/null @@ -1,51 +0,0 @@ -// eslint-disable-next-line import/no-extraneous-dependencies -import { writable } from 'svelte/store'; - -// Store the page the user is on. -const storedPage = 0; -export const page = writable(storedPage); - -// Store the element that was last focused. -const storedFocus = ''; -export const focusedElement = writable(storedFocus); - -// Store the search string. -const storedSearchString = ''; -export const searchString = writable(storedSearchString); - -// Store the selected page size. -const storedPageSize = 12; -export const pageSize = writable(storedPageSize); - -// Store the value of media queries. -export const mediaQueryValues = writable(new Map()); - -export const updated = writable(0); - -// Store for the queue list. -export const queueList = writable([]); - -export function addToQueue(project) { - queueList.update((currentList) => { - if (!currentList.includes(project)) { - currentList.push(project); - } - return currentList; - }); -} - -export function removeFromQueue(projectId) { - queueList.update((currentList) => { - currentList = currentList.filter( - (item) => item.id !== projectId, - ); - return currentList; - }); -} - -export function clearQueue() { - queueList.update((currentList) => { - currentList = []; - return currentList; - }); -} -- GitLab