**Motivations:** - Ensure lint config is not degraded and fix all lint errors for pousse workflow. **Root causes:** - Unused variables kept with _ prefix instead of removed (_row, _questReward, _i). - getAnimalBlockOrigin had 5 parameters (max 4). - use of continue statement (no-continue rule). **Correctifs:** - ESLint config verified; no eslint-disable in codebase. - Removed unused variable _row (biome-rules); removed dead function _questReward (quests); removed unused map param _i (state.js). - getAnimalBlockOrigin refactored to 4 params (pos object instead of x, y). - Replaced continue with if (cell) block in normalizeLoadedCells (state.js). - JSDoc param names aligned with _height, _y (biome-rules). **Evolutions:** - (none) **Pages affectées:** - web/js/biome-rules.js - web/js/quests.js - web/js/state.js - web/js/placement.js
4.3 KiB
4.3 KiB
Extraction du rendu UI (render)
Objectif
Réduire web/js/ui.js pour respecter les règles ESLint :
- max 250 lignes par fichier
- max 40 lignes par fonction
Réalisé
- no-shadow : variables
phase/weatherdansupdateStatusrenommées entimePhase/weatherVal;mapLeveldansfullRenderrenommé encurrentMapLevel. - Imports inutilisés : suppression des imports devenus inutiles après utilisation des modules world-map et grid (zoo, conveyor, economy, placement, texts-fr, api-client) ; suppression de la constante
EGG_EMOJInon utilisée. - Réutilisation des modules :
render()utilise désormaisrenderWorldMap(ctx)deui-world-map.jsetrenderGrid(ctx)deui-grid.jsau lieu des anciennes fonctions locales (environ 900 lignes supprimées). - Refs :
selectedTokenId,emptyCellChoice,lastActionWasDrop,sellZoneJustDroppedsont passés en refs pour être partagés avec les handlers (grid, sell zone) et les modules.
Extraction du rendu UI (render)
Objectif
Réduire web/js/ui.js pour respecter les règles ESLint :
- max 250 lignes par fichier
- max 40 lignes par fonction
Réalisé
- no-shadow : variables
phase/weatherdansupdateStatusrenommées entimePhase/weatherVal;mapLeveldansfullRenderrenommé encurrentMapLevel. - Imports inutilisés : suppression des imports devenus inutiles après utilisation des modules world-map et grid (zoo, conveyor, economy, placement, texts-fr, api-client) ; suppression de la constante
EGG_EMOJInon utilisée. - Réutilisation des modules :
render()utilise désormaisrenderWorldMap(ctx)deui-world-map.jsetrenderGrid(ctx)deui-grid.jsau lieu des anciennes fonctions locales (environ 900 lignes supprimées). - Refs :
selectedTokenId,emptyCellChoice,lastActionWasDrop,sellZoneJustDroppedsont passés en refs pour être partagés avec les handlers (grid, sell zone) et les modules. - Extraction en modules :
ui-render-dom.js:buildUIDOM,createTabsStructure,updateStatusBody,createUpdateStatus,createFullRender,updateWorldMapUpgradeAndCounters,buildFinishContexts,finishBuildUIDOM;formatQuestListHtmlpour garderupdateStatusBodysous 40 lignes ;finishBuildUIDOMprend un objetopts(max-params) et délègue les contextes àbuildFinishContexts.ui-render-dom-panels.js:buildWorldMapWrap,buildWorldMapUpgradeZone,buildWorldMapTruckDropZone,buildWorldMapActions,buildWorldMapSection,buildPlotUpgradeZone,buildGridSection,attachSellZoneListeners,handleSellZoneClick; import dehandleWorldMapTruckDropethandleSellZoneDropdepuisui-render-dom-drops.js.ui-render-dom-drops.js(nouveau) : handlers de drop pour la carte du monde (camion) et la sell zone ;handleWorldMapTruckDrop,handleSellZoneDropexportés ; sous-handlershandleTruckDropBaby,handleTruckDropAnimal,handleTruckDropEgg,applyNurseryDrop,applyReceptionDrop,applyGridCellSellpour rester sous 40 lignes et réduire la complexité.ui-render-gamebar.js:buildGameBaret helpers (title, status bar, view switcher, music, auto mode, prestige/restart, quest dropdown) ; import debuildAutoProfilePickerdepuisui-render-gamebar-picker.js.ui-render-gamebar-picker.js(nouveau) :buildAutoProfilePickeravecbuildAutoProfilePickerFamilyStepetbuildAutoProfilePickerSpecSteppour respecter max-lines-per-function et max-lines du fichier gamebar.ui.js:EMOJI_BY_COLOR,animalEmoji,buildRenderSetup(opts),render(root, opts)qui appellebuildUIDOM(root, setup); fichier et fonctions sous les limites.
- Imports nettoyés :
getPlotUpgradeCostretiré de panels ;tretiré de ui-render-dom ; imports inutilisés retirés de ui-render-gamebar (getSkillLevel, getVisitorCount, getTimePhase, doPrestige, playSound, errorMessage, questDescription, timePhaseLabel, weatherLabel, GameConfig ; textes et auto-mode-profiles conservés dans le picker).
État actuel
- ESLint : 0 erreur sur les fichiers modifiés. Les warnings (complexity, etc.) restants sont hors périmètre de cette extraction.
- Fichiers :
ui.js,ui-render-dom.js,ui-render-dom-panels.js,ui-render-dom-drops.js,ui-render-gamebar.js,ui-render-gamebar-picker.jsrespectent max-lines (250) et max-lines-per-function (40).