Contexto
Auditoria de bugs (ver BUGS_AUDIT.md). Bugs funcionais no frontend NUI que quebram features visíveis.
Problemas
- W-02 🔴
web/src/pages/Dashboard/Dashboard.tsx:602-616 — Ordenação quebrada: headers chamam toggleSort('common.name'), toggleSort('common.cash') etc. (chaves i18n). sortBy vira 'common.cash', Number(p['common.cash'] ?? 0) = 0 para tudo (no-op) e as setas (sortBy === 'cash') nunca aparecem. cash/bank/crypto ainda vivem em p.money (array).
- W-03 🔴
web/src/pages/ActionManager/ActionManager.tsx:82-91 — handleRefresh faz await sendNui('getData', {}, {}) mas descarta o resultado (sem setGameData). Refresh só gira; em browser/mock nunca atualiza. confirmDelete (:114-119) não dispara refresh.
- W-10 🟠
web/src/pages/ActionManager/ActionManager.tsx:172-180 — botões de categoria standalone sem onClick → troca de categoria impossível. :127-133 startAdvancedEdit mantém o campo sintético category no payload salvo.
- W-11 🟠
web/src/pages/ActionManager/components/ActionWizard.tsx:410 — <MriButton loading={loading}>: a prop é isLoading (mri-ui-kit/.../MriButton.tsx:14). loading vaza pro DOM: sem spinner, botão não desabilita (double-submit).
- W-09 🟠
web/src/pages/Vehicles/components/VehicleWizard.tsx:26-35,91 — wizard nunca reseta (if (!isOpen) return null, fica montado); reabrir retoma no step 5 com mesmo jogador/veículo e mesma placa auto-gerada → segundo veículo com placa duplicada.
Severidade: 🔴 Alto — IDs: W-02, W-03, W-09, W-10, W-11
Contexto
Auditoria de bugs (ver
BUGS_AUDIT.md). Bugs funcionais no frontend NUI que quebram features visíveis.Problemas
web/src/pages/Dashboard/Dashboard.tsx:602-616— Ordenação quebrada: headers chamamtoggleSort('common.name'),toggleSort('common.cash')etc. (chaves i18n).sortByvira'common.cash',Number(p['common.cash'] ?? 0) = 0para tudo (no-op) e as setas (sortBy === 'cash') nunca aparecem. cash/bank/crypto ainda vivem emp.money(array).web/src/pages/ActionManager/ActionManager.tsx:82-91—handleRefreshfazawait sendNui('getData', {}, {})mas descarta o resultado (semsetGameData). Refresh só gira; em browser/mock nunca atualiza.confirmDelete(:114-119) não dispara refresh.web/src/pages/ActionManager/ActionManager.tsx:172-180— botões de categoria standalone semonClick→ troca de categoria impossível.:127-133startAdvancedEditmantém o campo sintéticocategoryno payload salvo.web/src/pages/ActionManager/components/ActionWizard.tsx:410—<MriButton loading={loading}>: a prop éisLoading(mri-ui-kit/.../MriButton.tsx:14).loadingvaza pro DOM: sem spinner, botão não desabilita (double-submit).web/src/pages/Vehicles/components/VehicleWizard.tsx:26-35,91— wizard nunca reseta (if (!isOpen) return null, fica montado); reabrir retoma no step 5 com mesmo jogador/veículo e mesma placa auto-gerada → segundo veículo com placa duplicada.Severidade: 🔴 Alto — IDs: W-02, W-03, W-09, W-10, W-11