From 77417ac9fcfb397f60a1bee19ee4e1e71498e810 Mon Sep 17 00:00:00 2001 From: Inseo Yang <124547871+1nxeo@users.noreply.github.com> Date: Wed, 15 Oct 2025 07:23:51 +0000 Subject: [PATCH] fix: resolve Sandpack examples not displaying in `Activity` documentation --- src/content/reference/react/Activity.md | 138 ++++++++---------------- 1 file changed, 42 insertions(+), 96 deletions(-) diff --git a/src/content/reference/react/Activity.md b/src/content/reference/react/Activity.md index a0763e230..618281922 100644 --- a/src/content/reference/react/Activity.md +++ b/src/content/reference/react/Activity.md @@ -150,7 +150,9 @@ export default function TabButton({ action, children, isActive }) { ``` ```js src/AboutTab.js hidden -import {unstable_ViewTransition as ViewTransition} from 'react'; +import {unstable_ViewTransition, ViewTransition as ViewTransitionStable} from 'react'; + +let ViewTransition = ViewTransitionStable ?? unstable_ViewTransition; export default function AboutTab() { return ( @@ -162,9 +164,11 @@ export default function AboutTab() { ``` ```js src/PostsTab.js hidden -import {use, unstable_ViewTransition as ViewTransition} from 'react'; +import {use, unstable_ViewTransition, ViewTransition as ViewTransitionStable} from 'react'; import { fetchData } from './data.js'; +let ViewTransition = ViewTransitionStable ?? unstable_ViewTransition; + function PostsTab() { const posts = use(fetchData('/posts')); return ( @@ -256,24 +260,6 @@ button { margin-right: 10px } b { display: inline-block; margin-right: 10px; } .pending { color: #777; } ``` - -```json package.json hidden -{ - "dependencies": { - "react": "experimental", - "react-dom": "experimental", - "react-scripts": "latest", - "toastify-js": "1.12.0" - }, - "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test --env=jsdom", - "eject": "react-scripts eject" - } -} -``` - 이 예시에서 "Posts" 탭을 클릭할 때 게시물이 로드될 때까지 기다려야 합니다. @@ -283,12 +269,14 @@ b { display: inline-block; margin-right: 10px; } ```js -import { Suspense, useState, unstable_Activity as Activity } from "react"; +import { Suspense, useState, unstable_Activity, Activity as ActivityStable } from "react"; import TabButton from "./TabButton.js"; import AboutTab from "./AboutTab.js"; import PostsTab from "./PostsTab.js"; import ContactTab from "./ContactTab.js"; +let Activity = ActivityStable ?? unstable_Activity; + export default function TabContainer() { const [tab, setTab] = useState("about"); return ( @@ -342,7 +330,9 @@ export default function TabButton({ action, children, isActive }) { ``` ```js src/AboutTab.js hidden -import {unstable_ViewTransition as ViewTransition} from 'react'; +import {unstable_ViewTransition, ViewTransition as ViewTransitionStable} from 'react'; + +let ViewTransition = ViewTransitionStable ?? unstable_ViewTransition; export default function AboutTab() { return ( @@ -354,9 +344,11 @@ export default function AboutTab() { ``` ```js src/PostsTab.js hidden -import {use, unstable_ViewTransition as ViewTransition} from 'react'; +import {use, unstable_ViewTransition, ViewTransition as ViewTransitionStable} from 'react'; import { fetchData } from './data.js'; +let ViewTransition = ViewTransitionStable ?? unstable_ViewTransition; + function PostsTab() { const posts = use(fetchData('/posts')); return ( @@ -382,7 +374,9 @@ export default PostsTab; ``` ```js src/ContactTab.js hidden -import {unstable_ViewTransition as ViewTransition} from 'react'; +import {unstable_ViewTransition, ViewTransition as ViewTransitionStable} from 'react'; + +let ViewTransition = ViewTransitionStable ?? unstable_ViewTransition; export default function ContactTab() { return ( @@ -449,22 +443,6 @@ b { display: inline-block; margin-right: 10px; } .pending { color: #777; } ``` -```json package.json hidden -{ - "dependencies": { - "react": "experimental", - "react-dom": "experimental", - "react-scripts": "latest", - "toastify-js": "1.12.0" - }, - "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test --env=jsdom", - "eject": "react-scripts eject" - } -} -``` @@ -553,7 +531,9 @@ export default function TabButton({ action, children, isActive }) { ``` ```js src/AboutTab.js hidden -import {unstable_ViewTransition as ViewTransition} from 'react'; +import {unstable_ViewTransition, ViewTransition as ViewTransitionStable} from 'react'; + +let ViewTransition = ViewTransitionStable ?? unstable_ViewTransition; export default function AboutTab() { return ( @@ -565,9 +545,11 @@ export default function AboutTab() { ``` ```js src/PostsTab.js hidden -import {use, unstable_ViewTransition as ViewTransition} from 'react'; +import {use, unstable_ViewTransition, ViewTransition as ViewTransitionStable} from 'react'; import { fetchData } from './data.js'; +let ViewTransition = ViewTransitionStable ?? unstable_ViewTransition; + function PostsTab() { const posts = use(fetchData('/posts')); return ( @@ -593,7 +575,9 @@ export default PostsTab; ``` ```js src/ContactTab.js hidden -import {unstable_ViewTransition as ViewTransition} from 'react'; +import {unstable_ViewTransition, ViewTransition as ViewTransitionStable} from 'react'; + +let ViewTransition = ViewTransitionStable ?? unstable_ViewTransition; export default function ContactTab() { return ( @@ -660,22 +644,6 @@ b { display: inline-block; margin-right: 10px; } .pending { color: #777; } ``` -```json package.json hidden -{ - "dependencies": { - "react": "experimental", - "react-dom": "experimental", - "react-scripts": "latest", - "toastify-js": "1.12.0" - }, - "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test --env=jsdom", - "eject": "react-scripts eject" - } -} -``` @@ -685,12 +653,14 @@ b { display: inline-block; margin-right: 10px; } ```js -import { Suspense, useState, unstable_Activity as Activity } from "react"; +import { Suspense, useState, unstable_Activity, Activity as ActivityStable } from "react"; import TabButton from "./TabButton.js"; import AboutTab from "./AboutTab.js"; import PostsTab from "./PostsTab.js"; import ContactTab from "./ContactTab.js"; +let Activity = ActivityStable ?? unstable_Activity; + export default function TabContainer() { const [tab, setTab] = useState("about"); return ( @@ -744,7 +714,9 @@ export default function TabButton({ action, children, isActive }) { ``` ```js src/AboutTab.js hidden -import {unstable_ViewTransition as ViewTransition} from 'react'; +import {unstable_ViewTransition, ViewTransition as ViewTransitionStable} from 'react'; + +let ViewTransition = ViewTransitionStable ?? unstable_ViewTransition; export default function AboutTab() { return ( @@ -756,9 +728,11 @@ export default function AboutTab() { ``` ```js src/PostsTab.js hidden -import {use, unstable_ViewTransition as ViewTransition} from 'react'; +import {use, unstable_ViewTransition, ViewTransition as ViewTransitionStable} from 'react'; import { fetchData } from './data.js'; +let ViewTransition = ViewTransitionStable ?? unstable_ViewTransition; + function PostsTab() { const posts = use(fetchData('/posts')); return ( @@ -784,7 +758,9 @@ export default PostsTab; ``` ```js src/ContactTab.js hidden -import {unstable_ViewTransition as ViewTransition} from 'react'; +import {unstable_ViewTransition, ViewTransition as ViewTransitionStable} from 'react'; + +let ViewTransition = ViewTransitionStable ?? unstable_ViewTransition; export default function ContactTab() { return ( @@ -851,22 +827,6 @@ b { display: inline-block; margin-right: 10px; } .pending { color: #777; } ``` -```json package.json hidden -{ - "dependencies": { - "react": "experimental", - "react-dom": "experimental", - "react-scripts": "latest", - "toastify-js": "1.12.0" - }, - "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test --env=jsdom", - "eject": "react-scripts eject" - } -} -``` @@ -1053,9 +1013,11 @@ Activity는 처음에 "hidden" 상태로 렌더링할 때 Effect를 생성하지 ```js -import { useState, useRef, useEffect, unstable_Activity as Activity } from 'react'; +import { useState, useRef, useEffect, unstable_Activity, Activity as ActivityStable } from 'react'; import VideoChecker from './checker.js'; +let Activity = ActivityStable ?? unstable_Activity + function VideoPlayer({ src, isPlaying }) { const ref = useRef(null); @@ -1135,22 +1097,6 @@ b { display: inline-block; margin-right: 10px; } video { width: 300px; margin-top: 10px; } ``` -```json package.json hidden -{ - "dependencies": { - "react": "experimental", - "react-dom": "experimental", - "react-scripts": "latest", - "toastify-js": "1.12.0" - }, - "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test --env=jsdom", - "eject": "react-scripts eject" - } -} -```