/
githubmr
/
facebook-react
Обзор
Документация
Войти
/
githubmr
/
facebook-react
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
v19.2.0
packages/react/src/ReactSharedInternalsClient.js
82 строки
2 KB
Sebastian Markbåge
Solidify addTransitionType Semantics (#32797)
01 апр 2025, 19:11
Не верифицирован
01 апр 2025, 19:11
731ae3e
Код
Авторство
О чём код?
/** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @flow */ import type {Dispatcher} from 'react-reconciler/src/ReactInternalTypes'; import type {AsyncDispatcher} from 'react-reconciler/src/ReactInternalTypes'; import type {Transition} from './ReactStartTransition'; import type {GestureProvider, GestureOptions} from 'shared/ReactTypes'; import {enableGestureTransition} from 'shared/ReactFeatureFlags'; type onStartTransitionFinish = (Transition, mixed) => void; type onStartGestureTransitionFinish = ( Transition, GestureProvider, ?GestureOptions, ) => () => void; export type SharedStateClient = { H: null | Dispatcher, // ReactCurrentDispatcher for Hooks A: null | AsyncDispatcher, // ReactCurrentCache for Cache T: null | Transition, // ReactCurrentBatchConfig for Transitions S: null | onStartTransitionFinish, G: null | onStartGestureTransitionFinish, // DEV-only // ReactCurrentActQueue actQueue: null | Array<RendererTask>, // When zero this means we're outside an async startTransition. asyncTransitions: number, // Used to reproduce behavior of `batchedUpdates` in legacy mode. isBatchingLegacy: boolean, didScheduleLegacyUpdate: boolean, // Tracks whether something called `use` during the current batch of work. // Determines whether we should yield to microtasks to unwrap already resolved // promises without suspending. didUsePromise: boolean, // Track first uncaught error within this act thrownErrors: Array<mixed>, // ReactDebugCurrentFrame getCurrentStack: null | (() => string), // ReactOwnerStackReset recentlyCreatedOwnerStacks: 0, }; export type RendererTask = boolean => RendererTask | null; const ReactSharedInternals: SharedStateClient = ({ H: null, A: null, T: null, S: null, }: any); if (enableGestureTransition) { ReactSharedInternals.G = null; } if (__DEV__) { ReactSharedInternals.actQueue = null; ReactSharedInternals.asyncTransitions = 0; ReactSharedInternals.isBatchingLegacy = false; ReactSharedInternals.didScheduleLegacyUpdate = false; ReactSharedInternals.didUsePromise = false; ReactSharedInternals.thrownErrors = []; // Stack implementation injected by the current renderer. ReactSharedInternals.getCurrentStack = (null: null | (() => string)); ReactSharedInternals.recentlyCreatedOwnerStacks = 0; } export default ReactSharedInternals;