{"record":{"id":"a70d297d26818b89","repo":"facebook/react","slug":"not-implemented","errorCode":null,"errorMessage":"Not implemented.","messagePattern":"Not implemented\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/react-art/src/ReactFiberConfigART.js","lineNumber":508,"sourceCode":"\nexport function restoreViewTransitionName(instance, props) {\n  // Noop\n}\n\nexport function cancelViewTransitionName(instance, name, props) {\n  // Noop\n}\n\nexport function cancelRootViewTransitionName(rootContainer) {\n  // Noop\n}\n\nexport function restoreRootViewTransitionName(rootContainer) {\n  // Noop\n}\n\nexport function cloneRootViewTransitionContainer(rootContainer) {\n  throw new Error('Not implemented.');\n}\n\nexport function removeRootViewTransitionClone(rootContainer, clone) {\n  throw new Error('Not implemented.');\n}\n\nexport type InstanceMeasurement = null;\n\nexport function measureInstance(instance) {\n  return null;\n}\n\nexport function measureClonedInstance(instance) {\n  return null;\n}\n\nexport function wasInstanceInViewport(measurement): boolean {\n  return true;","sourceCodeStart":490,"sourceCodeEnd":526,"githubUrl":"https://github.com/facebook/react/blob/eafeac097ba51e1eab809c07102126bd5f8e5425/packages/react-art/src/ReactFiberConfigART.js#L490-L526","documentation":"react-art stubs most of the View Transition host-config surface as no-ops because it renders to a canvas, not to DOM views. cloneRootViewTransitionContainer cannot be a no-op: React expects a real clone of the container element when it prepares a root-level view transition, and ART has nothing to clone, so it throws 'Not implemented.' instead of silently corrupting the transition.","triggerScenarios":"Triggering a ViewTransition (e.g. <ViewTransition> or the document-preparing transition APIs) whose root container is a react-art Surface; React internally calling cloneRootViewTransitionContainer on an ART root during the transition start/prepare phase.","commonSituations":"Experimenting with the ViewTransition API in an app that renders through react-art; libraries that wrap arbitrary renderer roots in ViewTransition; enabling experimental view-transition flags globally and having them apply to ART roots.","solutions":["Do not use ViewTransition around react-art content - animate ART shape properties (fill, opacity, transform) directly instead","Move the ViewTransition boundary so it wraps only DOM-rendered siblings, leaving the ART <Surface> outside it","Treat the <Surface> itself as the animation unit: it backs onto a real DOM node, so apply CSS transitions to that container element"],"exampleFix":"// before\n<ViewTransition>\n  <Surface width={300} height={300}>...</Surface>\n</ViewTransition>\n\n// after\n<div className=\"surface-wrap\" style={{transition: 'opacity 200ms'}}>\n  <Surface width={300} height={300}>...</Surface>\n</div>","handlingStrategy":"fallback","validationCode":"// Gate the feature by renderer before mounting, so ViewTransition never wraps ART roots\nconst isDomRenderer = rendererName === 'dom';\nconst tree = isDomRenderer\n  ? <ViewTransition>{children}</ViewTransition>\n  : children; // ART path: no ViewTransition, animate the container instead","typeGuard":null,"tryCatchPattern":"Wrap the ART mount in an error boundary that, on this Error (match /Not implemented/), re-renders the same children without the ViewTransition wrapper - a graceful degradation path for library code you do not control.","preventionTips":["Treat react-art's host config as a DOM subset; check supported APIs before using new React features","Keep ViewTransition boundaries inside DOM-owned trees only","Animate the Surface's DOM container with CSS instead of React ViewTransition"],"tags":["react-art","view-transitions","not-implemented","host-config"],"backgroundTag":"renderer-api-not-implemented","analyzedSha":"eafeac097ba51e1eab809c07102126bd5f8e5425","analyzedAt":"2026-08-21T22:01:08.818Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}