fix(tabs): sluiten laatste documenttabblad crasht niet meer (#1636) #1695

Merged
brenno merged 1 commit from fix/1636-laatste-documenttabblad-sluiten into main 2026-08-21 22:34:03 +00:00
Owner

Samenvatting

_closeTab in tabs_provider.dart behandelde het enige overblijvende tabblad altijd als presentatie en riep deckNotifier.closeDeck() aan. Op een documenttabblad gooit TabInfo.deckNotifier bewust StateError, dus het kruisje, Opslaan-en-sluiten en een schoon tabblad crashten allemaal bij het sluiten van het laatste documenttabblad.

De fix routeert nu op soort: een presentatie reset via closeDeck(), een document via de nieuwe closeDocument() op DocumentNotifier (spiegel van closeDeck()).

  • lib/state/document_provider.dart: closeDocument() toegevoegd — geschiedenis wissen en terug naar lege DocumentState.
  • lib/state/tabs_provider.dart: _closeTab gebruikt een switch op tab.content in plaats van deckNotifier direct aan te roepen.
  • test/tab_lifecycle_test.dart: regressietest die closeTab(0) aanroept op een staat met alleen een DocumentTabContent.

De wijziging raakt geen bestandsformaat, opslag, afhankelijkheden, uitgaand verkeer of publieke belofte — bewaker-stap niet vereist.

Testplan

  • make check groen (10335 tests, 87,2% dekking)
  • make check-secrets schoon (gitleaks + trufflehog)
  • make sast schoon (semgrep 0 findings)
  • Regressietest gaat rood op de onherstelde code en groen op de fix

Generated with Devin

## Samenvatting `_closeTab` in `tabs_provider.dart` behandelde het enige overblijvende tabblad altijd als presentatie en riep `deckNotifier.closeDeck()` aan. Op een documenttabblad gooit `TabInfo.deckNotifier` bewust `StateError`, dus het kruisje, Opslaan-en-sluiten en een schoon tabblad crashten allemaal bij het sluiten van het laatste documenttabblad. De fix routeert nu op soort: een presentatie reset via `closeDeck()`, een document via de nieuwe `closeDocument()` op `DocumentNotifier` (spiegel van `closeDeck()`). - `lib/state/document_provider.dart`: `closeDocument()` toegevoegd — geschiedenis wissen en terug naar lege `DocumentState`. - `lib/state/tabs_provider.dart`: `_closeTab` gebruikt een `switch` op `tab.content` in plaats van `deckNotifier` direct aan te roepen. - `test/tab_lifecycle_test.dart`: regressietest die `closeTab(0)` aanroept op een staat met alleen een `DocumentTabContent`. De wijziging raakt geen bestandsformaat, opslag, afhankelijkheden, uitgaand verkeer of publieke belofte — bewaker-stap niet vereist. #### Testplan - [x] `make check` groen (10335 tests, 87,2% dekking) - [x] `make check-secrets` schoon (gitleaks + trufflehog) - [x] `make sast` schoon (semgrep 0 findings) - [x] Regressietest gaat rood op de onherstelde code en groen op de fix Generated with [Devin](https://devin.ai)
fix(tabs): sluiten laatste documenttabblad crasht niet meer (#1636)
Some checks failed
scans / scans (pull_request) Successful in 4m42s
static-gate / static-gate (pull_request) Failing after 4m1s
689ae5acbf
_closeTab behandelde het enige overblijvende tabblad altijd als presentatie
en riep deckNotifier.closeDeck() aan. Op een documenttabblad gooit
TabInfo.deckNotifier bewust StateError, dus het kruisje, Opslaan-en-sluiten
en een schoon tabblad crashten allemaal. Routeer nu op soort: een presentatie
reset via closeDeck(), een document via de nieuwe closeDocument().

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
brenno force-pushed fix/1636-laatste-documenttabblad-sluiten from 689ae5acbf
Some checks failed
scans / scans (pull_request) Successful in 4m42s
static-gate / static-gate (pull_request) Failing after 4m1s
to 9bda3f1180
All checks were successful
scans / scans (pull_request) Successful in 2m45s
static-gate / static-gate (pull_request) Successful in 8m39s
2026-08-21 22:16:20 +00:00
Compare
brenno merged commit d52782f8c0 into main 2026-08-21 22:34:03 +00:00
Sign in to join this conversation.
No description provided.