# ShopProQuote JS Pitfalls

## `const` redeclaration in large single-file scripts

`dashboard.js` is a large file (~4000 lines) with many functions sharing the same closure scope. When a `const` variable is declared twice in the same block, it throws a fatal parse error that prevents the ENTIRE script from loading. The browser won't execute any of it.

### Real bug — Daily Briefing stuck on "Loading..."

In `dashboard.js`, `const briefingText` was declared twice in the same `try` block:

```js
// First declaration (line 3926) — extracting from API response
const briefingText = dsResult.choices?.[0]?.message?.content?.trim() || '';

// ... (HTML rendering) ...

// Second declaration (line 3944) — caching
const briefingText = contentDiv.textContent || '';
```

This parse error stopped `dashboard.js` from loading entirely. The fallback inline script in `index.html` kept polling for `window.generateDailyBriefing` (which was never defined), showing "Loading briefing..." forever.

### Fix

Rename the second variable unambiguously:
```js
const finalBriefingText = contentDiv.textContent || '';
```

### Prevention

- When editing a function in a large file, check for variable name collisions in the same function scope.
- `let` declarations in different blocks can share names safely, but `const` in the same block cannot.
- There is no build step or linter — these errors only surface at runtime. Test in browser console.
