11import React from "react" ;
2- import invariant from "fbjs/lib/ invariant" ;
3- import emptyObject from "fbjs/lib/emptyObject " ;
2+ import invariant from "invariant" ;
3+ import { emptyObject } from "./utils " ;
44import Gradient from "./Gradient" ;
55import Text from "./Text" ;
66import Group from "./Group" ;
77import { RawImage } from "./Image" ;
8- import ReactDOMFrameScheduling from "./ReactDOMFrameScheduling" ;
98import ReactFiberReconciler from "react-reconciler" ;
109import CanvasComponent from "./CanvasComponent" ;
1110import { getClosestInstanceFromNode } from "./ReactDOMComponentTree" ;
11+ import {
12+ unstable_now as now ,
13+ unstable_shouldYield as shouldYield ,
14+ unstable_scheduleCallback as scheduleDeferredCallback ,
15+ unstable_cancelCallback as cancelDeferredCallback
16+ } from 'scheduler' ;
1217
1318const UPDATE_SIGNAL = { } ;
1419const MAX_POOLED_COMPONENTS_PER_TYPE = 1024 ;
@@ -120,86 +125,90 @@ const CanvasHostConfig = {
120125 return emptyObject ;
121126 } ,
122127
123- scheduleDeferredCallback : ReactDOMFrameScheduling . rIC ,
128+ scheduleDeferredCallback,
129+
130+ cancelDeferredCallback,
131+
132+ shouldYield,
124133
125134 shouldSetTextContent ( type , props ) {
126135 return (
127136 typeof props . children === "string" || typeof props . children === "number"
128137 ) ;
129138 } ,
130139
131- now : ReactDOMFrameScheduling . now ,
140+ now,
132141
133142 isPrimaryRenderer : false ,
134143
135144 useSyncScheduling : true ,
136145
137- mutation : {
138- appendChild ( parentInstance , child ) {
139- const childLayer = child . getLayer ( ) ;
140- const parentLayer = parentInstance . getLayer ( ) ;
141-
142- if ( childLayer . parentLayer === parentLayer ) {
143- childLayer . moveToTop ( ) ;
144- } else {
145- childLayer . inject ( parentLayer ) ;
146- }
147-
148- parentLayer . invalidateLayout ( ) ;
149- } ,
150-
151- appendChildToContainer ( parentInstance , child ) {
152- const childLayer = child . getLayer ( ) ;
153- const parentLayer = parentInstance . getLayer ( ) ;
154-
155- if ( childLayer . parentLayer === parentLayer ) {
156- childLayer . moveToTop ( ) ;
157- } else {
158- childLayer . inject ( parentLayer ) ;
159- }
160-
161- parentLayer . invalidateLayout ( ) ;
162- } ,
163-
164- insertBefore ( parentInstance , child , beforeChild ) {
165- const parentLayer = parentInstance . getLayer ( ) ;
166- child . getLayer ( ) . injectBefore ( parentLayer , beforeChild . getLayer ( ) ) ;
167- parentLayer . invalidateLayout ( ) ;
168- } ,
169-
170- insertInContainerBefore ( parentInstance , child , beforeChild ) {
171- const parentLayer = parentInstance . getLayer ( ) ;
172- child . getLayer ( ) . injectBefore ( parentLayer , beforeChild . getLayer ( ) ) ;
173- parentLayer . invalidateLayout ( ) ;
174- } ,
175-
176- removeChild ( parentInstance , child ) {
177- const parentLayer = parentInstance . getLayer ( ) ;
178- child . getLayer ( ) . remove ( ) ;
179- freeComponentAndChildren ( child ) ;
180- parentLayer . invalidateLayout ( ) ;
181- } ,
182-
183- removeChildFromContainer ( parentInstance , child ) {
184- const parentLayer = parentInstance . getLayer ( ) ;
185- child . getLayer ( ) . remove ( ) ;
186- freeComponentAndChildren ( child ) ;
187- parentLayer . invalidateLayout ( ) ;
188- } ,
189-
190- commitTextUpdate ( /*textInstance, oldText, newText*/ ) {
191- // Noop
192- } ,
193-
194- commitMount ( /*instance, type, newProps*/ ) {
195- // Noop
196- } ,
197-
198- commitUpdate ( instance , updatePayload , type , oldProps , newProps ) {
199- if ( typeof instance . applyLayerProps !== "undefined" ) {
200- instance . applyLayerProps ( oldProps , newProps ) ;
201- instance . getLayer ( ) . invalidateLayout ( ) ;
202- }
146+ supportsMutation : true ,
147+
148+ appendChild ( parentInstance , child ) {
149+ const childLayer = child . getLayer ( ) ;
150+ const parentLayer = parentInstance . getLayer ( ) ;
151+
152+ if ( childLayer . parentLayer === parentLayer ) {
153+ childLayer . moveToTop ( ) ;
154+ } else {
155+ childLayer . inject ( parentLayer ) ;
156+ }
157+
158+ parentLayer . invalidateLayout ( ) ;
159+ } ,
160+
161+ appendChildToContainer ( parentInstance , child ) {
162+ const childLayer = child . getLayer ( ) ;
163+ const parentLayer = parentInstance . getLayer ( ) ;
164+
165+ if ( childLayer . parentLayer === parentLayer ) {
166+ childLayer . moveToTop ( ) ;
167+ } else {
168+ childLayer . inject ( parentLayer ) ;
169+ }
170+
171+ parentLayer . invalidateLayout ( ) ;
172+ } ,
173+
174+ insertBefore ( parentInstance , child , beforeChild ) {
175+ const parentLayer = parentInstance . getLayer ( ) ;
176+ child . getLayer ( ) . injectBefore ( parentLayer , beforeChild . getLayer ( ) ) ;
177+ parentLayer . invalidateLayout ( ) ;
178+ } ,
179+
180+ insertInContainerBefore ( parentInstance , child , beforeChild ) {
181+ const parentLayer = parentInstance . getLayer ( ) ;
182+ child . getLayer ( ) . injectBefore ( parentLayer , beforeChild . getLayer ( ) ) ;
183+ parentLayer . invalidateLayout ( ) ;
184+ } ,
185+
186+ removeChild ( parentInstance , child ) {
187+ const parentLayer = parentInstance . getLayer ( ) ;
188+ child . getLayer ( ) . remove ( ) ;
189+ freeComponentAndChildren ( child ) ;
190+ parentLayer . invalidateLayout ( ) ;
191+ } ,
192+
193+ removeChildFromContainer ( parentInstance , child ) {
194+ const parentLayer = parentInstance . getLayer ( ) ;
195+ child . getLayer ( ) . remove ( ) ;
196+ freeComponentAndChildren ( child ) ;
197+ parentLayer . invalidateLayout ( ) ;
198+ } ,
199+
200+ commitTextUpdate ( /*textInstance, oldText, newText*/ ) {
201+ // Noop
202+ } ,
203+
204+ commitMount ( /*instance, type, newProps*/ ) {
205+ // Noop
206+ } ,
207+
208+ commitUpdate ( instance , updatePayload , type , oldProps , newProps ) {
209+ if ( typeof instance . applyLayerProps !== "undefined" ) {
210+ instance . applyLayerProps ( oldProps , newProps ) ;
211+ instance . getLayer ( ) . invalidateLayout ( ) ;
203212 }
204213 }
205214} ;
@@ -216,8 +225,11 @@ CanvasRenderer.injectIntoDevTools({
216225 }
217226} ) ;
218227
219- CanvasRenderer . registerComponentConstructor = ( name , ctor ) => {
228+ const registerComponentConstructor = ( name , ctor ) => {
220229 componentConstructors [ name ] = ctor ;
221230} ;
222231
223- export default CanvasRenderer ;
232+ export {
233+ CanvasRenderer ,
234+ registerComponentConstructor
235+ } ;
0 commit comments