impress/app
Emi Matchu d69c37089e Fix bug where item preview loading indicator sometimes doesn't delay
The loading indicator *should* fade in after two seconds, to avoid a
flash of a loading indicator when the page loads quickly - but in some
circumstances it wouldn't delay:

1. Visit an item page. (It delays correctly the first time!)
2. Click "Infinite Closet", then click a link to another item page.
3. The loading indicator appears immediately, because this time the
   web component JS is already loaded, so the `outfit-layer` elements
   enter `:state(loading)` *immediately*. The element starts at
   `opacity: 1`, and the delay doesn't matter, because it was never at
   anything else.

In this change, we have the `outfit-viewer` web component take on a
`:state(after-first-frame)`, after a `setTimeout(0)` resolves. That
enables the loading state CSS to *never* apply on the first frame, but
then sometimes kick in on the *second* frame, so that the element is
correctly perceived as "transitioning" from hidden to visible, and the
two-second delay will apply.
2024-09-06 12:13:10 -07:00
..
assets Fix bug where item preview loading indicator sometimes doesn't delay 2024-09-06 12:13:10 -07:00
controllers Add html5 badge to new item previews 2024-09-05 18:48:41 -07:00
helpers Add announcement about new item page, replacing the hidden Neopass one 2024-09-06 11:47:17 -07:00
javascript Merge branch 'main' into simpler-item-previews 2024-07-09 14:26:47 -07:00
mailers/fundraising Move most fundraising files into a Fundraising module 2024-02-18 20:12:14 -08:00
models Add html5 badge to new item previews 2024-09-05 18:48:41 -07:00
services Load *all* NC Mall pages in nc_mall:sync 2024-05-10 17:39:40 -07:00
views Add announcement about new item page, replacing the hidden Neopass one 2024-09-06 11:47:17 -07:00