Refactor layout transition handling and initialization logic #5956
+44
−29
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Refactor layout transition handling and initialization logic
This PR refactors the AdminLTE v4 layout logic to fix incorrect transition handling, remove duplicated event listeners, and clearly separate responsibilities between initialization and runtime behavior.
Summary of changes
1. Removed duplicated
resizelistenersThe
resizeevent listener was previously:Layout.holdTransition()This caused:
The resize listener is now registered once, during layout initialization.
2. Fixed incorrect
holdTransition()logicThe previous implementation had a critical flaw:
resizeTimerwas defined as a local variableclearTimeout(resizeTimer)was ineffective across callsNew behavior:
Layoutnow owns a persistent_holdTransitionTimerThis makes
holdTransition()deterministic and correct.3. Clear responsibility for
holdTransition()holdTransition()now does exactly one thing:It no longer:
This makes the method reusable and predictable.
4. Resize logic moved to initialization phase
layout.holdTransition(200)This keeps lifecycle concerns outside the core class.
5. Layout initialization cleaned up in
adminlte.tslayout.ts)6. App loaded state handled consistently
app-loadedclass is now applied from the layout initialization logicWhy this change?
The previous layout implementation:
This refactor:
No visual or behavioral regressions are expected—only more predictable and correct transition handling.