Skip to content

Commit 57de703

Browse files
committed
[Fizz] Suspensey Images for View Transition Reveals (#33433)
Block the view transition on suspensey images Up to 500ms just like the client. We can't use `decode()` because a bug in Chrome where those are blocked on `startViewTransition` finishing we instead rely on sync decoding but also that the image is live when it's animating in and we assume it doesn't start visible. However, we can block the View Transition from starting on the `"load"` or `"error"` events. The nice thing about blocking inside `startViewTransition` is that we have already done the layout so we can only wait on images that are within the viewport at this point. We might want to do that in Fiber too. If many image doesn't have fixed size but need to load first, they can all end up in the viewport. We might consider only doing this for images that have a fixed size or only a max number that doesn't have a fixed size. DiffTrain build for [22b9291](22b9291)
1 parent 5dd497f commit 57de703

37 files changed

+155
-108
lines changed

compiled/facebook-www/REVISION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
dddcae7a11b8241cbd6e2de55f9e68881baea458
1+
22b929156c325eaf52c375f0c62801831951814a
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
dddcae7a11b8241cbd6e2de55f9e68881baea458
1+
22b929156c325eaf52c375f0c62801831951814a

compiled/facebook-www/React-dev.classic.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1537,7 +1537,7 @@ __DEV__ &&
15371537
exports.useTransition = function () {
15381538
return resolveDispatcher().useTransition();
15391539
};
1540-
exports.version = "19.2.0-www-classic-dddcae7a-20250605";
1540+
exports.version = "19.2.0-www-classic-22b92915-20250606";
15411541
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
15421542
"function" ===
15431543
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

compiled/facebook-www/React-dev.modern.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1537,7 +1537,7 @@ __DEV__ &&
15371537
exports.useTransition = function () {
15381538
return resolveDispatcher().useTransition();
15391539
};
1540-
exports.version = "19.2.0-www-modern-dddcae7a-20250605";
1540+
exports.version = "19.2.0-www-modern-22b92915-20250606";
15411541
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
15421542
"function" ===
15431543
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

compiled/facebook-www/React-prod.classic.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -635,4 +635,4 @@ exports.useSyncExternalStore = function (
635635
exports.useTransition = function () {
636636
return ReactSharedInternals.H.useTransition();
637637
};
638-
exports.version = "19.2.0-www-classic-dddcae7a-20250605";
638+
exports.version = "19.2.0-www-classic-22b92915-20250606";

compiled/facebook-www/React-prod.modern.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -635,4 +635,4 @@ exports.useSyncExternalStore = function (
635635
exports.useTransition = function () {
636636
return ReactSharedInternals.H.useTransition();
637637
};
638-
exports.version = "19.2.0-www-modern-dddcae7a-20250605";
638+
exports.version = "19.2.0-www-modern-22b92915-20250606";

compiled/facebook-www/React-profiling.classic.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -639,7 +639,7 @@ exports.useSyncExternalStore = function (
639639
exports.useTransition = function () {
640640
return ReactSharedInternals.H.useTransition();
641641
};
642-
exports.version = "19.2.0-www-classic-dddcae7a-20250605";
642+
exports.version = "19.2.0-www-classic-22b92915-20250606";
643643
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
644644
"function" ===
645645
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

compiled/facebook-www/React-profiling.modern.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -639,7 +639,7 @@ exports.useSyncExternalStore = function (
639639
exports.useTransition = function () {
640640
return ReactSharedInternals.H.useTransition();
641641
};
642-
exports.version = "19.2.0-www-modern-dddcae7a-20250605";
642+
exports.version = "19.2.0-www-modern-22b92915-20250606";
643643
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
644644
"function" ===
645645
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

compiled/facebook-www/ReactART-dev.classic.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19105,10 +19105,10 @@ __DEV__ &&
1910519105
(function () {
1910619106
var internals = {
1910719107
bundleType: 1,
19108-
version: "19.2.0-www-classic-dddcae7a-20250605",
19108+
version: "19.2.0-www-classic-22b92915-20250606",
1910919109
rendererPackageName: "react-art",
1911019110
currentDispatcherRef: ReactSharedInternals,
19111-
reconcilerVersion: "19.2.0-www-classic-dddcae7a-20250605"
19111+
reconcilerVersion: "19.2.0-www-classic-22b92915-20250606"
1911219112
};
1911319113
internals.overrideHookState = overrideHookState;
1911419114
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -19142,7 +19142,7 @@ __DEV__ &&
1914219142
exports.Shape = Shape;
1914319143
exports.Surface = Surface;
1914419144
exports.Text = Text;
19145-
exports.version = "19.2.0-www-classic-dddcae7a-20250605";
19145+
exports.version = "19.2.0-www-classic-22b92915-20250606";
1914619146
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
1914719147
"function" ===
1914819148
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

compiled/facebook-www/ReactART-dev.modern.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18877,10 +18877,10 @@ __DEV__ &&
1887718877
(function () {
1887818878
var internals = {
1887918879
bundleType: 1,
18880-
version: "19.2.0-www-modern-dddcae7a-20250605",
18880+
version: "19.2.0-www-modern-22b92915-20250606",
1888118881
rendererPackageName: "react-art",
1888218882
currentDispatcherRef: ReactSharedInternals,
18883-
reconcilerVersion: "19.2.0-www-modern-dddcae7a-20250605"
18883+
reconcilerVersion: "19.2.0-www-modern-22b92915-20250606"
1888418884
};
1888518885
internals.overrideHookState = overrideHookState;
1888618886
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -18914,7 +18914,7 @@ __DEV__ &&
1891418914
exports.Shape = Shape;
1891518915
exports.Surface = Surface;
1891618916
exports.Text = Text;
18917-
exports.version = "19.2.0-www-modern-dddcae7a-20250605";
18917+
exports.version = "19.2.0-www-modern-22b92915-20250606";
1891818918
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
1891918919
"function" ===
1892018920
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

0 commit comments

Comments
 (0)