Skip to content

Commit c2bc706

Browse files
committed
Simplify View Transition comparison examples
1 parent 4b66824 commit c2bc706

2 files changed

Lines changed: 70 additions & 30 deletions

File tree

‎src/content/reference/react-dom/components/img.md‎

Lines changed: 35 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -160,43 +160,63 @@ function ProfilePlaceholder() {
160160
);
161161
}
162162

163-
export default function App() {
164-
const [viewTransitionSrc, setViewTransitionSrc] = useState(null);
165-
const [plainSrc, setPlainSrc] = useState(null);
163+
function ProfileInViewTransition({ src }) {
164+
return (
165+
<ViewTransition>
166+
<Suspense fallback={<ProfilePlaceholder />}>
167+
<Profile src={src} />
168+
</Suspense>
169+
</ViewTransition>
170+
);
171+
}
172+
173+
function ProfileWithViewTransition() {
174+
const [src, setSrc] = useState(null);
166175
return (
167176
<>
168177
<button
169178
onClick={() => {
170179
startTransition(() => {
171-
setViewTransitionSrc(freshImageUrl());
180+
setSrc(freshImageUrl());
172181
});
173182
}}>
174183
Show profile with View Transition
175184
</button>
176-
{viewTransitionSrc && (
177-
<ViewTransition>
178-
<Suspense fallback={<ProfilePlaceholder />}>
179-
<Profile src={viewTransitionSrc} />
180-
</Suspense>
181-
</ViewTransition>
182-
)}
183-
<hr />
185+
{src && <ProfileInViewTransition src={src} />}
186+
</>
187+
);
188+
}
189+
190+
function ProfileWithoutViewTransition() {
191+
const [src, setSrc] = useState(null);
192+
return (
193+
<>
184194
<button
185195
onClick={() => {
186196
startTransition(() => {
187-
setPlainSrc(freshImageUrl());
197+
setSrc(freshImageUrl());
188198
});
189199
}}>
190200
Show profile without View Transition
191201
</button>
192-
{plainSrc && (
202+
{src && (
193203
<Suspense fallback={<ProfilePlaceholder />}>
194-
<Profile src={plainSrc} />
204+
<Profile src={src} />
195205
</Suspense>
196206
)}
197207
</>
198208
);
199209
}
210+
211+
export default function App() {
212+
return (
213+
<>
214+
<ProfileWithViewTransition />
215+
<hr />
216+
<ProfileWithoutViewTransition />
217+
</>
218+
);
219+
}
200220
```
201221

202222
```js src/image.js hidden

‎src/content/reference/react/Suspense.md‎

Lines changed: 35 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3084,43 +3084,63 @@ function ProfilePlaceholder() {
30843084
);
30853085
}
30863086

3087-
export default function App() {
3088-
const [viewTransitionSrc, setViewTransitionSrc] = useState(null);
3089-
const [plainSrc, setPlainSrc] = useState(null);
3087+
function ProfileInViewTransition({ src }) {
3088+
return (
3089+
<ViewTransition>
3090+
<Suspense fallback={<ProfilePlaceholder />}>
3091+
<Profile src={src} />
3092+
</Suspense>
3093+
</ViewTransition>
3094+
);
3095+
}
3096+
3097+
function ProfileWithViewTransition() {
3098+
const [src, setSrc] = useState(null);
30903099
return (
30913100
<>
30923101
<button
30933102
onClick={() => {
30943103
startTransition(() => {
3095-
setViewTransitionSrc(freshImageUrl());
3104+
setSrc(freshImageUrl());
30963105
});
30973106
}}>
30983107
Show profile with View Transition
30993108
</button>
3100-
{viewTransitionSrc && (
3101-
<ViewTransition>
3102-
<Suspense fallback={<ProfilePlaceholder />}>
3103-
<Profile src={viewTransitionSrc} />
3104-
</Suspense>
3105-
</ViewTransition>
3106-
)}
3107-
<hr />
3109+
{src && <ProfileInViewTransition src={src} />}
3110+
</>
3111+
);
3112+
}
3113+
3114+
function ProfileWithoutViewTransition() {
3115+
const [src, setSrc] = useState(null);
3116+
return (
3117+
<>
31083118
<button
31093119
onClick={() => {
31103120
startTransition(() => {
3111-
setPlainSrc(freshImageUrl());
3121+
setSrc(freshImageUrl());
31123122
});
31133123
}}>
31143124
Show profile without View Transition
31153125
</button>
3116-
{plainSrc && (
3126+
{src && (
31173127
<Suspense fallback={<ProfilePlaceholder />}>
3118-
<Profile src={plainSrc} />
3128+
<Profile src={src} />
31193129
</Suspense>
31203130
)}
31213131
</>
31223132
);
31233133
}
3134+
3135+
export default function App() {
3136+
return (
3137+
<>
3138+
<ProfileWithViewTransition />
3139+
<hr />
3140+
<ProfileWithoutViewTransition />
3141+
</>
3142+
);
3143+
}
31243144
```
31253145
31263146
```js src/image.js hidden

0 commit comments

Comments
 (0)