Skip to content

Commit f4f46dd

Browse files
committed
Address TODOs
1 parent 89a4ba9 commit f4f46dd

15 files changed

+46
-61
lines changed

packages/react-dom/src/__tests__/ReactDOMFiberAsync-test.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -915,26 +915,25 @@ describe('ReactDOMFiberAsync', () => {
915915

916916
window.event = undefined;
917917
setState(1);
918+
expect(global.requestAnimationFrameQueue.length).toBe(1);
918919
global.flushRequestAnimationFrameQueue();
919920
expect(Scheduler).toHaveYielded(['Count: 1']);
920921

921922
setState(2);
922923
setThrowing(true);
923-
924+
expect(global.requestAnimationFrameQueue.length).toBe(1);
924925
global.flushRequestAnimationFrameQueue();
925926
expect(Scheduler).toHaveYielded(['Count: 2', 'suspending']);
926927
expect(counterRef.current.textContent).toBe('Count: 1');
927928

928929
unsuspend();
929-
setThrowing(false);
930-
931930
// Should not be scheduled in a rAF.
932931
window.event = 'test';
932+
setThrowing(false);
933933
setState(2);
934934

935-
// TODO: This should not yield
936-
// global.flushRequestAnimationFrameQueue();
937-
// expect(Scheduler).toHaveYielded([]);
935+
global.flushRequestAnimationFrameQueue();
936+
expect(Scheduler).toHaveYielded([]);
938937

939938
expect(Scheduler).toFlushAndYield(['Count: 2']);
940939
expect(counterRef.current.textContent).toBe('Count: 2');

packages/react-dom/src/client/ReactDOMHostConfig.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -402,20 +402,19 @@ export const scheduleMicrotask: any =
402402
.catch(handleErrorInNextTick)
403403
: scheduleTimeout; // TODO: Determine the best fallback here.
404404

405-
// TODO: Fix these types
406405
export const supportsFrameAlignedTask = true;
407406

408407
type FrameAlignedTask = {|
409-
rafNode: number,
410-
schedulerNode: number,
408+
rafNode: AnimationFrameID,
409+
schedulerNode: number | null,
411410
task: function,
412411
|};
413412

414413
let currentTask: FrameAlignedTask | null = null;
415414
function performFrameAlignedWork() {
416415
if (currentTask != null) {
417416
const task = currentTask.task;
418-
localCancelAnimationFrame(currentTask.id);
417+
localCancelAnimationFrame(currentTask.rafNode);
419418
Scheduler.unstable_cancelCallback(currentTask.schedulerNode);
420419
currentTask = null;
421420
if (task != null) {
@@ -424,6 +423,10 @@ function performFrameAlignedWork() {
424423
}
425424
}
426425

426+
export function isFrameAlignedTask(task: any): boolean {
427+
return task != null && task.rafNode != null && task.task != null;
428+
}
429+
427430
export function scheduleFrameAlignedTask(task: any): any {
428431
if (currentTask === null) {
429432
const rafNode = localRequestAnimationFrame(performFrameAlignedWork);
@@ -449,7 +452,7 @@ export function scheduleFrameAlignedTask(task: any): any {
449452
return currentTask;
450453
}
451454

452-
export function cancelFrameAlignedTask(task: FrameAlignedTask) {
455+
export function cancelFrameAlignedTask(task: any) {
453456
Scheduler.unstable_cancelCallback(task.schedulerNode);
454457
task.schedulerNode = null;
455458
// We don't cancel the rAF in case it gets re-used later.

packages/react-reconciler/src/ReactFiberBeginWork.new.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2795,7 +2795,7 @@ function updateDehydratedSuspenseComponent(
27952795
current,
27962796
attemptHydrationAtLane,
27972797
eventTime,
2798-
false, // TODO: what about isUnknownUpdate
2798+
false,
27992799
);
28002800
} else {
28012801
// We have already tried to ping at a higher priority than we're rendering with

packages/react-reconciler/src/ReactFiberBeginWork.old.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2795,7 +2795,7 @@ function updateDehydratedSuspenseComponent(
27952795
current,
27962796
attemptHydrationAtLane,
27972797
eventTime,
2798-
false, // TODO: what about isUnknownUpdate
2798+
false,
27992799
);
28002800
} else {
28012801
// We have already tried to ping at a higher priority than we're rendering with

packages/react-reconciler/src/ReactFiberHooks.new.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1642,8 +1642,15 @@ function checkIfSnapshotChanged<T>(inst: StoreInstance<T>): boolean {
16421642

16431643
function forceStoreRerender(fiber) {
16441644
const root = enqueueConcurrentRenderForLane(fiber, SyncLane);
1645+
const isUnknownEventPriority = requestUpdateLane_isUnknownEventPriority();
16451646
if (root !== null) {
1646-
scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp, false); // TODO: isUnknownEvent
1647+
scheduleUpdateOnFiber(
1648+
root,
1649+
fiber,
1650+
SyncLane,
1651+
NoTimestamp,
1652+
isUnknownEventPriority,
1653+
);
16471654
}
16481655
}
16491656

packages/react-reconciler/src/ReactFiberHooks.old.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1642,8 +1642,15 @@ function checkIfSnapshotChanged<T>(inst: StoreInstance<T>): boolean {
16421642

16431643
function forceStoreRerender(fiber) {
16441644
const root = enqueueConcurrentRenderForLane(fiber, SyncLane);
1645+
const isUnknownEventPriority = requestUpdateLane_isUnknownEventPriority();
16451646
if (root !== null) {
1646-
scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp, false); // TODO: isUnknownEvent
1647+
scheduleUpdateOnFiber(
1648+
root,
1649+
fiber,
1650+
SyncLane,
1651+
NoTimestamp,
1652+
isUnknownEventPriority,
1653+
);
16471654
}
16481655
}
16491656

packages/react-reconciler/src/ReactFiberHotReloading.new.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,8 +311,8 @@ function scheduleFibersWithFamiliesRecursively(
311311
}
312312
if (needsRemount || needsRender) {
313313
const root = enqueueConcurrentRenderForLane(fiber, SyncLane);
314+
314315
if (root !== null) {
315-
// TODO: isUnknownEvent
316316
scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp, false);
317317
}
318318
}

packages/react-reconciler/src/ReactFiberHotReloading.old.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,8 +311,8 @@ function scheduleFibersWithFamiliesRecursively(
311311
}
312312
if (needsRemount || needsRender) {
313313
const root = enqueueConcurrentRenderForLane(fiber, SyncLane);
314+
314315
if (root !== null) {
315-
// TODO: isUnknownEvent
316316
scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp, false);
317317
}
318318
}

packages/react-reconciler/src/ReactFiberReconciler.new.js

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,6 @@ export function attemptSynchronousHydration(fiber: Fiber): void {
436436
const root = enqueueConcurrentRenderForLane(fiber, SyncLane);
437437
if (root !== null) {
438438
const eventTime = requestEventTime();
439-
// TODO: isUnknownEvent
440439
scheduleUpdateOnFiber(root, fiber, SyncLane, eventTime, false);
441440
}
442441
});
@@ -481,7 +480,6 @@ export function attemptDiscreteHydration(fiber: Fiber): void {
481480
const root = enqueueConcurrentRenderForLane(fiber, lane);
482481
if (root !== null) {
483482
const eventTime = requestEventTime();
484-
// TODO: isUnknownEvent
485483
scheduleUpdateOnFiber(root, fiber, lane, eventTime, false);
486484
}
487485
markRetryLaneIfNotHydrated(fiber, lane);
@@ -499,7 +497,6 @@ export function attemptContinuousHydration(fiber: Fiber): void {
499497
const root = enqueueConcurrentRenderForLane(fiber, lane);
500498
if (root !== null) {
501499
const eventTime = requestEventTime();
502-
// TODO: isUnknownEvent
503500
scheduleUpdateOnFiber(root, fiber, lane, eventTime, false);
504501
}
505502
markRetryLaneIfNotHydrated(fiber, lane);
@@ -515,7 +512,6 @@ export function attemptHydrationAtCurrentPriority(fiber: Fiber): void {
515512
const root = enqueueConcurrentRenderForLane(fiber, lane);
516513
if (root !== null) {
517514
const eventTime = requestEventTime();
518-
// TODO: isUnknownEvent
519515
scheduleUpdateOnFiber(root, fiber, lane, eventTime, false);
520516
}
521517
markRetryLaneIfNotHydrated(fiber, lane);
@@ -695,7 +691,6 @@ if (__DEV__) {
695691

696692
const root = enqueueConcurrentRenderForLane(fiber, SyncLane);
697693
if (root !== null) {
698-
// TODO: isUnknownEvent
699694
scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp, false);
700695
}
701696
}
@@ -720,7 +715,6 @@ if (__DEV__) {
720715

721716
const root = enqueueConcurrentRenderForLane(fiber, SyncLane);
722717
if (root !== null) {
723-
// TODO: isUnknownEvent
724718
scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp, false);
725719
}
726720
}
@@ -746,7 +740,6 @@ if (__DEV__) {
746740

747741
const root = enqueueConcurrentRenderForLane(fiber, SyncLane);
748742
if (root !== null) {
749-
// TODO: isUnknownEvent
750743
scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp, false);
751744
}
752745
}
@@ -760,7 +753,6 @@ if (__DEV__) {
760753
}
761754
const root = enqueueConcurrentRenderForLane(fiber, SyncLane);
762755
if (root !== null) {
763-
// TODO: isUnknownEvent
764756
scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp, false);
765757
}
766758
};
@@ -771,7 +763,6 @@ if (__DEV__) {
771763
}
772764
const root = enqueueConcurrentRenderForLane(fiber, SyncLane);
773765
if (root !== null) {
774-
// TODO: isUnknownEvent
775766
scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp, false);
776767
}
777768
};
@@ -786,15 +777,13 @@ if (__DEV__) {
786777
}
787778
const root = enqueueConcurrentRenderForLane(fiber, SyncLane);
788779
if (root !== null) {
789-
// TODO: isUnknownEvent
790780
scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp, false);
791781
}
792782
};
793783

794784
scheduleUpdate = (fiber: Fiber) => {
795785
const root = enqueueConcurrentRenderForLane(fiber, SyncLane);
796786
if (root !== null) {
797-
// TODO: isUnknownEvent
798787
scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp, false);
799788
}
800789
};

packages/react-reconciler/src/ReactFiberReconciler.old.js

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,6 @@ export function attemptSynchronousHydration(fiber: Fiber): void {
436436
const root = enqueueConcurrentRenderForLane(fiber, SyncLane);
437437
if (root !== null) {
438438
const eventTime = requestEventTime();
439-
// TODO: isUnknownEvent
440439
scheduleUpdateOnFiber(root, fiber, SyncLane, eventTime, false);
441440
}
442441
});
@@ -481,7 +480,6 @@ export function attemptDiscreteHydration(fiber: Fiber): void {
481480
const root = enqueueConcurrentRenderForLane(fiber, lane);
482481
if (root !== null) {
483482
const eventTime = requestEventTime();
484-
// TODO: isUnknownEvent
485483
scheduleUpdateOnFiber(root, fiber, lane, eventTime, false);
486484
}
487485
markRetryLaneIfNotHydrated(fiber, lane);
@@ -499,7 +497,6 @@ export function attemptContinuousHydration(fiber: Fiber): void {
499497
const root = enqueueConcurrentRenderForLane(fiber, lane);
500498
if (root !== null) {
501499
const eventTime = requestEventTime();
502-
// TODO: isUnknownEvent
503500
scheduleUpdateOnFiber(root, fiber, lane, eventTime, false);
504501
}
505502
markRetryLaneIfNotHydrated(fiber, lane);
@@ -515,7 +512,6 @@ export function attemptHydrationAtCurrentPriority(fiber: Fiber): void {
515512
const root = enqueueConcurrentRenderForLane(fiber, lane);
516513
if (root !== null) {
517514
const eventTime = requestEventTime();
518-
// TODO: isUnknownEvent
519515
scheduleUpdateOnFiber(root, fiber, lane, eventTime, false);
520516
}
521517
markRetryLaneIfNotHydrated(fiber, lane);
@@ -695,7 +691,6 @@ if (__DEV__) {
695691

696692
const root = enqueueConcurrentRenderForLane(fiber, SyncLane);
697693
if (root !== null) {
698-
// TODO: isUnknownEvent
699694
scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp, false);
700695
}
701696
}
@@ -720,7 +715,6 @@ if (__DEV__) {
720715

721716
const root = enqueueConcurrentRenderForLane(fiber, SyncLane);
722717
if (root !== null) {
723-
// TODO: isUnknownEvent
724718
scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp, false);
725719
}
726720
}
@@ -746,7 +740,6 @@ if (__DEV__) {
746740

747741
const root = enqueueConcurrentRenderForLane(fiber, SyncLane);
748742
if (root !== null) {
749-
// TODO: isUnknownEvent
750743
scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp, false);
751744
}
752745
}
@@ -760,7 +753,6 @@ if (__DEV__) {
760753
}
761754
const root = enqueueConcurrentRenderForLane(fiber, SyncLane);
762755
if (root !== null) {
763-
// TODO: isUnknownEvent
764756
scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp, false);
765757
}
766758
};
@@ -771,7 +763,6 @@ if (__DEV__) {
771763
}
772764
const root = enqueueConcurrentRenderForLane(fiber, SyncLane);
773765
if (root !== null) {
774-
// TODO: isUnknownEvent
775766
scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp, false);
776767
}
777768
};
@@ -786,15 +777,13 @@ if (__DEV__) {
786777
}
787778
const root = enqueueConcurrentRenderForLane(fiber, SyncLane);
788779
if (root !== null) {
789-
// TODO: isUnknownEvent
790780
scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp, false);
791781
}
792782
};
793783

794784
scheduleUpdate = (fiber: Fiber) => {
795785
const root = enqueueConcurrentRenderForLane(fiber, SyncLane);
796786
if (root !== null) {
797-
// TODO: isUnknownEvent
798787
scheduleUpdateOnFiber(root, fiber, SyncLane, NoTimestamp, false);
799788
}
800789
};

0 commit comments

Comments
 (0)