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:
juanatsap
2025-11-18 19:32:28 +00:00
parent 65eb91b00b
commit 1f6f8e417e
13 changed files with 539 additions and 150 deletions
+14 -5
View File
@@ -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`