docs: Update skeleton loader implementation from hyperscript to JavaScript
MIGRATION SUMMARY: - Moved skeleton loader logic from hyperscript to JavaScript (main.js) - Changed from htmx:oobAfterSwap to htmx:afterSettle event - Changed OOB swap from innerHTML to outerHTML for proper element replacement - Added languageSwitching flag for state tracking - Added 100ms delay after afterSettle for final render completion DOCUMENTATION UPDATES: - 2-MODERN-WEB-TECHNIQUES.md: Updated skeleton loader section with
This commit is contained in:
+14
-5
@@ -292,11 +292,20 @@ When adding tests:
|
||||
**Philosophy**: Zero redundancy - Every test is essential and unique
|
||||
|
||||
### 12-skeleton-language-transitions.test.mjs
|
||||
**Purpose**: Skeleton loader display during language transitions
|
||||
- ✅ Skeleton loaders appear during language switch
|
||||
- ✅ Content replaced without full page reload
|
||||
- ✅ Skeleton removed after content loads
|
||||
- ✅ No layout shift during transition
|
||||
**Purpose**: Skeleton loader animations during language transitions
|
||||
- ✅ Component wrapper structure (dual-state: actual + skeleton content)
|
||||
- ✅ Skeleton CSS loaded (shimmer animation verified)
|
||||
- ✅ First language switch (EN → ES) - Loading class added/removed
|
||||
- ✅ Second language switch (ES → EN) - Consistent behavior
|
||||
- ✅ Third language switch (EN → ES) - Regression check
|
||||
- ✅ No stuck loading states (all containers clean after transition)
|
||||
- ✅ JavaScript event handlers configured (languageSwitching flag)
|
||||
|
||||
**Implementation**: JavaScript event handlers in `static/js/main.js`
|
||||
- `htmx:beforeRequest` - Adds `.loading` class to page containers
|
||||
- `htmx:afterSettle` - Removes `.loading` class after swap completes (100ms delay)
|
||||
|
||||
**Critical**: Migrated from hyperscript to JavaScript for reliable Playwright testing
|
||||
|
||||
**Run**: `bun tests/mjs/12-skeleton-language-transitions.test.mjs`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user