Replace fbjs canUseDom with inline module

Close #2336
Ref #2333
This commit is contained in:
Cody Rathor
2022-07-08 11:35:50 -07:00
committed by Nicolas Gallagher
parent 80a72c327c
commit 8c365d9892
22 changed files with 42 additions and 48 deletions
+5 -2
View File
@@ -1,9 +1,12 @@
import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment';
import { Dimensions, Platform } from 'react-native'; import { Dimensions, Platform } from 'react-native';
const baseFontSize = 14; const baseFontSize = 14;
const baseUnit = 1.3125; const baseUnit = 1.3125;
const { canUseDOM } = ExecutionEnvironment; const canUseDOM = !!(
typeof window !== 'undefined' &&
window.document &&
window.document.createElement
);
const createPlatformLength = (multiplier) => const createPlatformLength = (multiplier) =>
Platform.select({ Platform.select({
@@ -6,9 +6,7 @@
* *
* @flow * @flow
*/ */
import canUseDOM from '../../modules/canUseDom';
import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment';
const { canUseDOM } = ExecutionEnvironment;
function isScreenReaderEnabled(): Promise<*> { function isScreenReaderEnabled(): Promise<*> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
+1 -2
View File
@@ -10,8 +10,7 @@
import invariant from 'fbjs/lib/invariant'; import invariant from 'fbjs/lib/invariant';
import EventEmitter from '../../vendor/react-native/emitter/_EventEmitter'; import EventEmitter from '../../vendor/react-native/emitter/_EventEmitter';
import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; import canUseDOM from '../../modules/canUseDom';
const { canUseDOM } = ExecutionEnvironment;
// Android 4.4 browser // Android 4.4 browser
const isPrefixed = const isPrefixed =
+1 -3
View File
@@ -7,9 +7,7 @@
* *
* @flow * @flow
*/ */
import canUseDOM from '../../modules/canUseDom';
import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment';
const { canUseDOM } = ExecutionEnvironment;
export type ColorSchemeName = 'light' | 'dark'; export type ColorSchemeName = 'light' | 'dark';
+1 -2
View File
@@ -10,8 +10,7 @@
import type { DisplayMetrics } from '../Dimensions'; import type { DisplayMetrics } from '../Dimensions';
import Dimensions from '../Dimensions'; import Dimensions from '../Dimensions';
import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; import canUseDOM from '../../modules/canUseDom';
const { canUseDOM } = ExecutionEnvironment;
const DeviceInfo = { const DeviceInfo = {
Dimensions: { Dimensions: {
+1 -2
View File
@@ -10,8 +10,7 @@
import type { EventSubscription } from '../../vendor/react-native/emitter/EventEmitter'; import type { EventSubscription } from '../../vendor/react-native/emitter/EventEmitter';
import invariant from 'fbjs/lib/invariant'; import invariant from 'fbjs/lib/invariant';
import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; import canUseDOM from '../../modules/canUseDom';
const { canUseDOM } = ExecutionEnvironment;
export type DisplayMetrics = {| export type DisplayMetrics = {|
fontScale: number, fontScale: number,
+1 -2
View File
@@ -9,8 +9,7 @@
*/ */
import invariant from 'fbjs/lib/invariant'; import invariant from 'fbjs/lib/invariant';
import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; import canUseDOM from '../../modules/canUseDom';
const { canUseDOM } = ExecutionEnvironment;
const initialURL = canUseDOM ? window.location.href : ''; const initialURL = canUseDOM ? window.location.href : '';
@@ -13,8 +13,7 @@ import type { ViewProps } from '../View';
import * as React from 'react'; import * as React from 'react';
import View from '../View'; import View from '../View';
import StyleSheet from '../StyleSheet'; import StyleSheet from '../StyleSheet';
import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; import canUseDOM from '../../modules/canUseDom';
const { canUseDOM } = ExecutionEnvironment;
export type ModalContentProps = { export type ModalContentProps = {
...ViewProps, ...ViewProps,
@@ -13,8 +13,7 @@ import View from '../View';
import createElement from '../createElement'; import createElement from '../createElement';
import StyleSheet from '../StyleSheet'; import StyleSheet from '../StyleSheet';
import UIManager from '../UIManager'; import UIManager from '../UIManager';
import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; import canUseDOM from '../../modules/canUseDom';
const { canUseDOM } = ExecutionEnvironment;
/** /**
* This Component is used to "wrap" the modal we're opening * This Component is used to "wrap" the modal we're opening
+1 -2
View File
@@ -10,8 +10,7 @@
import * as React from 'react'; import * as React from 'react';
import ReactDOM from 'react-dom'; import ReactDOM from 'react-dom';
import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; import canUseDOM from '../../modules/canUseDom';
const { canUseDOM } = ExecutionEnvironment;
export type ModalPortalProps = {| export type ModalPortalProps = {|
children: any children: any
@@ -13,8 +13,7 @@ import type { ViewProps } from '../View';
import * as React from 'react'; import * as React from 'react';
import StyleSheet from '../StyleSheet'; import StyleSheet from '../StyleSheet';
import View from '../View'; import View from '../View';
import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; import canUseDOM from '../../modules/canUseDom';
const { canUseDOM } = ExecutionEnvironment;
const cssFunction: 'constant' | 'env' = (function () { const cssFunction: 'constant' | 'env' = (function () {
if ( if (
@@ -8,8 +8,7 @@
*/ */
import normalizeValueWithProperty from './normalizeValueWithProperty'; import normalizeValueWithProperty from './normalizeValueWithProperty';
import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; import canUseDOM from '../../../modules/canUseDom';
const { canUseDOM } = ExecutionEnvironment;
type Style = { [key: string]: any }; type Style = { [key: string]: any };
@@ -6,9 +6,7 @@
* *
* @flow strict-local * @flow strict-local
*/ */
import canUseDOM from '../../../modules/canUseDom';
import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment';
const { canUseDOM } = ExecutionEnvironment;
// $FlowFixMe: HTMLStyleElement is incorrectly typed - https://github.com/facebook/flow/issues/2696 // $FlowFixMe: HTMLStyleElement is incorrectly typed - https://github.com/facebook/flow/issues/2696
export default function createCSSStyleSheet( export default function createCSSStyleSheet(
@@ -8,8 +8,7 @@
*/ */
import type { OrderedCSSStyleSheet } from './createOrderedCSSStyleSheet'; import type { OrderedCSSStyleSheet } from './createOrderedCSSStyleSheet';
import canUseDOM from '../../../modules/canUseDom';
import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment';
import createCSSStyleSheet from './createCSSStyleSheet'; import createCSSStyleSheet from './createCSSStyleSheet';
import createOrderedCSSStyleSheet from './createOrderedCSSStyleSheet'; import createOrderedCSSStyleSheet from './createOrderedCSSStyleSheet';
@@ -37,7 +36,7 @@ export function createSheet(
): Sheet { ): Sheet {
let sheet; let sheet;
if (ExecutionEnvironment.canUseDOM) { if (canUseDOM) {
const rootNode: Node = root != null ? root.getRootNode() : document; const rootNode: Node = root != null ? root.getRootNode() : document;
// Create the initial style sheet // Create the initial style sheet
if (sheets.length === 0) { if (sheets.length === 0) {
+1 -2
View File
@@ -13,9 +13,8 @@ import { localizeStyle } from 'styleq/transform-localize-style';
import { preprocess } from './preprocess'; import { preprocess } from './preprocess';
import { styleq } from 'styleq'; import { styleq } from 'styleq';
import { validate } from './validate'; import { validate } from './validate';
import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; import canUseDOM from '../../modules/canUseDom';
const { canUseDOM } = ExecutionEnvironment;
const staticStyleMap: WeakMap<Object, Object> = new WeakMap(); const staticStyleMap: WeakMap<Object, Object> = new WeakMap();
const sheet = createSheet(); const sheet = createSheet();
@@ -0,0 +1,16 @@
/**
* 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 strict
*/
const canUseDOM: boolean = !!(
typeof window !== 'undefined' &&
window.document &&
window.document.createElement
);
export default canUseDOM;
@@ -8,9 +8,7 @@
*/ */
'use strict'; 'use strict';
import canUseDOM from '../canUseDom';
import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment';
const { canUseDOM } = ExecutionEnvironment;
type Listener = (e: any) => void; type Listener = (e: any) => void;
+1 -2
View File
@@ -8,8 +8,7 @@
*/ */
import createEventHandle from '../createEventHandle'; import createEventHandle from '../createEventHandle';
import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; import canUseDOM from '../canUseDom';
const { canUseDOM } = ExecutionEnvironment;
export type Modality = 'keyboard' | 'mouse' | 'touch' | 'pen'; export type Modality = 'keyboard' | 'mouse' | 'touch' | 'pen';
@@ -6,9 +6,7 @@
* *
* @flow * @flow
*/ */
import canUseDOM from '../canUseDom';
import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment';
const { canUseDOM } = ExecutionEnvironment;
const _requestIdleCallback = function (cb: Function, options?: Object) { const _requestIdleCallback = function (cb: Function, options?: Object) {
return setTimeout(() => { return setTimeout(() => {
@@ -12,8 +12,7 @@ import type { LayoutEvent } from '../../types';
import useLayoutEffect from '../useLayoutEffect'; import useLayoutEffect from '../useLayoutEffect';
import UIManager from '../../exports/UIManager'; import UIManager from '../../exports/UIManager';
import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; import canUseDOM from '../canUseDom';
const { canUseDOM } = ExecutionEnvironment;
const DOM_LAYOUT_HANDLER_NAME = '__reactLayoutHandler'; const DOM_LAYOUT_HANDLER_NAME = '__reactLayoutHandler';
@@ -11,8 +11,7 @@
*/ */
import { useEffect, useLayoutEffect } from 'react'; import { useEffect, useLayoutEffect } from 'react';
import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; import canUseDOM from '../canUseDom';
const { canUseDOM } = ExecutionEnvironment;
const useLayoutEffectImpl: typeof useLayoutEffect = canUseDOM const useLayoutEffectImpl: typeof useLayoutEffect = canUseDOM
? useLayoutEffect ? useLayoutEffect
@@ -151,8 +151,7 @@ import {
setResponderId setResponderId
} from './utils'; } from './utils';
import ResponderTouchHistoryStore from './ResponderTouchHistoryStore'; import ResponderTouchHistoryStore from './ResponderTouchHistoryStore';
import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; import canUseDOM from '../canUseDom';
const { canUseDOM } = ExecutionEnvironment;
/* ------------ TYPES ------------ */ /* ------------ TYPES ------------ */