diff --git a/.eslintrc b/.eslintrc index 53e0250b..4b8b43b4 100644 --- a/.eslintrc +++ b/.eslintrc @@ -118,7 +118,7 @@ "no-with": 2, "prefer-const": 2, "prefer-rest-params": 2, - "quotes": [2, "single", "avoid-escape"], + "quotes": [2, "single", { "avoidEscape": true, "allowTemplateLiterals": true }], "radix": 2, "use-isnan": 2, "valid-typeof": 2, diff --git a/.flowconfig b/.flowconfig index f70d3418..407b75d4 100644 --- a/.flowconfig +++ b/.flowconfig @@ -1,11 +1,12 @@ [version] -^0.148.0 +0.148.0 [ignore] /.*/__tests__/.* /packages/.*/dist/.* /packages/docs/.* /packages/examples/.* +.*/node_modules/.*/.*.json .*/node_modules/@emotion/css/* .*/node_modules/babel-plugin-transform-react-remove-prop-types/* diff --git a/packages/dom-event-testing-library/src/createEvent.js b/packages/dom-event-testing-library/src/createEvent.js index b8d90eb4..3d3ce382 100644 --- a/packages/dom-event-testing-library/src/createEvent.js +++ b/packages/dom-event-testing-library/src/createEvent.js @@ -232,12 +232,15 @@ export default function createEvent(type, init) { if (data != null) { Object.keys(data).forEach((key) => { const value = data[key]; - // Ensure the value of 'defaultPrevented' is updated if 'preventDefault' is mocked. - // The property is marked as 'configurable' to allow mocking. + // Ensure that mocks for 'preventDefault' can be called without interferring with + // the native behavior of 'preventDefault' (inc for passive events) if (key === 'preventDefault' && typeof value === 'function') { + const originalPreventDefault = event.preventDefault.bind(event); const preventDefault = function () { + // call the original function + originalPreventDefault(); + // call the mock function value(); - Object.defineProperty(this, 'defaultPrevented', { value: true }); }; Object.defineProperty(event, key, { configurable: true, diff --git a/packages/dom-event-testing-library/src/domEnvironment.js b/packages/dom-event-testing-library/src/domEnvironment.js index 8771cbd1..2a9bca8b 100644 --- a/packages/dom-event-testing-library/src/domEnvironment.js +++ b/packages/dom-event-testing-library/src/domEnvironment.js @@ -1,5 +1,3 @@ -/* eslint-env jasmine, jest */ - /** * Copyright (c) Facebook, Inc. and its affiliates. * @@ -7,8 +5,6 @@ * LICENSE file in the root directory of this source tree. */ -'use strict'; - /** * Change environment support for PointerEvent. */ diff --git a/packages/dom-event-testing-library/src/domEventSequences.js b/packages/dom-event-testing-library/src/domEventSequences.js index fc8e910e..e92b7d48 100644 --- a/packages/dom-event-testing-library/src/domEventSequences.js +++ b/packages/dom-event-testing-library/src/domEventSequences.js @@ -105,7 +105,7 @@ function getPointerType(payload) { * - 'targetTouches' contains any of the remaining active pointers for the target. */ -export function contextmenu(target, defaultPayload) { +export function contextmenu(target, defaultPayload = {}) { const dispatch = (arg) => target.dispatchEvent(arg); const pointerType = getPointerType(defaultPayload); diff --git a/packages/dom-event-testing-library/src/index.js b/packages/dom-event-testing-library/src/index.js index 5681c898..230c6a15 100644 --- a/packages/dom-event-testing-library/src/index.js +++ b/packages/dom-event-testing-library/src/index.js @@ -32,9 +32,6 @@ const createEventTarget = (node) => ({ }, focus(payload) { domEventSequences.focus(node, payload); - try { - node.focus(); - } catch (e) {} }, keydown(payload) { node.dispatchEvent(domEvents.keydown(payload)); @@ -111,7 +108,9 @@ const createEventTarget = (node) => ({ left: x, right: x + width, top: y, - bottom: y + height + bottom: y + height, + x, + y }; }; } diff --git a/packages/dom-event-testing-library/src/testHelpers.js b/packages/dom-event-testing-library/src/testHelpers.js index 519e9811..19d2c9ec 100644 --- a/packages/dom-event-testing-library/src/testHelpers.js +++ b/packages/dom-event-testing-library/src/testHelpers.js @@ -1,5 +1,3 @@ -/* eslint-env jasmine, jest */ - /** * Copyright (c) Facebook, Inc. and its affiliates. * diff --git a/packages/react-native-web/src/exports/AccessibilityInfo/index.js b/packages/react-native-web/src/exports/AccessibilityInfo/index.js index 4ad14bbc..ad0417b8 100644 --- a/packages/react-native-web/src/exports/AccessibilityInfo/index.js +++ b/packages/react-native-web/src/exports/AccessibilityInfo/index.js @@ -7,7 +7,8 @@ * @flow */ -import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment'; +import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; +const { canUseDOM } = ExecutionEnvironment; function isScreenReaderEnabled(): Promise<*> { return new Promise((resolve, reject) => { diff --git a/packages/react-native-web/src/exports/AppState/__tests__/index-test.js b/packages/react-native-web/src/exports/AppState/__tests__/index-test.js index 1dd0218e..681cef9d 100644 --- a/packages/react-native-web/src/exports/AppState/__tests__/index-test.js +++ b/packages/react-native-web/src/exports/AppState/__tests__/index-test.js @@ -1,4 +1,9 @@ -/* eslint-env jasmine, jest */ +/** + * Copyright (c) Nicolas Gallagher. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ import AppState from '..'; diff --git a/packages/react-native-web/src/exports/AppState/index.js b/packages/react-native-web/src/exports/AppState/index.js index 36b8a70a..5283c6e6 100644 --- a/packages/react-native-web/src/exports/AppState/index.js +++ b/packages/react-native-web/src/exports/AppState/index.js @@ -8,9 +8,10 @@ * @noflow */ -import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment'; import invariant from 'fbjs/lib/invariant'; import EventEmitter from '../../vendor/react-native/emitter/_EventEmitter'; +import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; +const { canUseDOM } = ExecutionEnvironment; // Android 4.4 browser const isPrefixed = diff --git a/packages/react-native-web/src/exports/Appearance/index.js b/packages/react-native-web/src/exports/Appearance/index.js index 78787f7f..43720022 100644 --- a/packages/react-native-web/src/exports/Appearance/index.js +++ b/packages/react-native-web/src/exports/Appearance/index.js @@ -8,7 +8,8 @@ * @flow */ -import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment'; +import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; +const { canUseDOM } = ExecutionEnvironment; export type ColorSchemeName = 'light' | 'dark'; diff --git a/packages/react-native-web/src/exports/CheckBox/__tests__/index-test.js b/packages/react-native-web/src/exports/CheckBox/__tests__/index-test.js index ecee5795..3d7e82a2 100644 --- a/packages/react-native-web/src/exports/CheckBox/__tests__/index-test.js +++ b/packages/react-native-web/src/exports/CheckBox/__tests__/index-test.js @@ -1,4 +1,9 @@ -/* eslint-env jest */ +/** + * Copyright (c) Nicolas Gallagher. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ import CheckBox from '../'; import React from 'react'; diff --git a/packages/react-native-web/src/exports/DeviceInfo/index.js b/packages/react-native-web/src/exports/DeviceInfo/index.js index 7a832e8f..3f59b0e1 100644 --- a/packages/react-native-web/src/exports/DeviceInfo/index.js +++ b/packages/react-native-web/src/exports/DeviceInfo/index.js @@ -9,8 +9,9 @@ import type { DisplayMetrics } from '../Dimensions'; -import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment'; import Dimensions from '../Dimensions'; +import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; +const { canUseDOM } = ExecutionEnvironment; const DeviceInfo = { Dimensions: { diff --git a/packages/react-native-web/src/exports/Dimensions/index.js b/packages/react-native-web/src/exports/Dimensions/index.js index 6629d180..7d9ded32 100644 --- a/packages/react-native-web/src/exports/Dimensions/index.js +++ b/packages/react-native-web/src/exports/Dimensions/index.js @@ -9,8 +9,9 @@ */ import type { EventSubscription } from '../../vendor/react-native/emitter/EventEmitter'; -import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment'; import invariant from 'fbjs/lib/invariant'; +import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; +const { canUseDOM } = ExecutionEnvironment; export type DisplayMetrics = {| fontScale: number, diff --git a/packages/react-native-web/src/exports/I18nManager/__tests__/index-test.js b/packages/react-native-web/src/exports/I18nManager/__tests__/index-test.js index 8873e8f1..09a1b063 100644 --- a/packages/react-native-web/src/exports/I18nManager/__tests__/index-test.js +++ b/packages/react-native-web/src/exports/I18nManager/__tests__/index-test.js @@ -1,4 +1,9 @@ -/* eslint-env jasmine, jest */ +/** + * Copyright (c) Nicolas Gallagher. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ import I18nManager from '..'; diff --git a/packages/react-native-web/src/exports/Image/__tests__/index-test.js b/packages/react-native-web/src/exports/Image/__tests__/index-test.js index a08bad56..45196b86 100644 --- a/packages/react-native-web/src/exports/Image/__tests__/index-test.js +++ b/packages/react-native-web/src/exports/Image/__tests__/index-test.js @@ -1,4 +1,10 @@ -/* eslint-env jasmine, jest */ +/** + * Copyright (c) Nicolas Gallagher. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + /* eslint-disable react/jsx-no-bind */ import { act } from 'react-dom/test-utils'; diff --git a/packages/react-native-web/src/exports/Linking/index.js b/packages/react-native-web/src/exports/Linking/index.js index 4cd1b254..7152a645 100644 --- a/packages/react-native-web/src/exports/Linking/index.js +++ b/packages/react-native-web/src/exports/Linking/index.js @@ -8,8 +8,9 @@ * @flow */ -import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment'; import invariant from 'fbjs/lib/invariant'; +import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; +const { canUseDOM } = ExecutionEnvironment; const initialURL = canUseDOM ? window.location.href : ''; diff --git a/packages/react-native-web/src/exports/Modal/ModalContent.js b/packages/react-native-web/src/exports/Modal/ModalContent.js index ee11e7af..6cdfcc9a 100644 --- a/packages/react-native-web/src/exports/Modal/ModalContent.js +++ b/packages/react-native-web/src/exports/Modal/ModalContent.js @@ -9,9 +9,10 @@ */ import * as React from 'react'; -import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment'; import View from '../View'; import StyleSheet from '../StyleSheet'; +import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; +const { canUseDOM } = ExecutionEnvironment; export type ModalContentProps = {| active?: ?(boolean | (() => boolean)), diff --git a/packages/react-native-web/src/exports/Modal/ModalFocusTrap.js b/packages/react-native-web/src/exports/Modal/ModalFocusTrap.js index 5b11636a..855b6859 100644 --- a/packages/react-native-web/src/exports/Modal/ModalFocusTrap.js +++ b/packages/react-native-web/src/exports/Modal/ModalFocusTrap.js @@ -9,11 +9,12 @@ */ import * as React from 'react'; -import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment'; import View from '../View'; import createElement from '../createElement'; import StyleSheet from '../StyleSheet'; import UIManager from '../UIManager'; +import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; +const { canUseDOM } = ExecutionEnvironment; /** * This Component is used to "wrap" the modal we're opening diff --git a/packages/react-native-web/src/exports/Modal/ModalPortal.js b/packages/react-native-web/src/exports/Modal/ModalPortal.js index 10fc4c2b..ff0c7314 100644 --- a/packages/react-native-web/src/exports/Modal/ModalPortal.js +++ b/packages/react-native-web/src/exports/Modal/ModalPortal.js @@ -9,8 +9,9 @@ */ import * as React from 'react'; -import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment'; import ReactDOM from 'react-dom'; +import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; +const { canUseDOM } = ExecutionEnvironment; export type ModalPortalProps = {| children: any diff --git a/packages/react-native-web/src/exports/Picker/__tests__/index-test.js b/packages/react-native-web/src/exports/Picker/__tests__/index-test.js index 44dd6a1b..c16aba5f 100644 --- a/packages/react-native-web/src/exports/Picker/__tests__/index-test.js +++ b/packages/react-native-web/src/exports/Picker/__tests__/index-test.js @@ -1,4 +1,9 @@ -/* eslint-env jasmine, jest */ +/** + * Copyright (c) Nicolas Gallagher. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ import React from 'react'; import { render } from '@testing-library/react'; diff --git a/packages/react-native-web/src/exports/Platform/__tests__/index-test.js b/packages/react-native-web/src/exports/Platform/__tests__/index-test.js index a2b34dfe..c316b6cf 100644 --- a/packages/react-native-web/src/exports/Platform/__tests__/index-test.js +++ b/packages/react-native-web/src/exports/Platform/__tests__/index-test.js @@ -1,4 +1,9 @@ -/* eslint-env jasmine, jest */ +/** + * Copyright (c) Nicolas Gallagher. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ import Platform from '../'; diff --git a/packages/react-native-web/src/exports/Pressable/__tests__/index-test.js b/packages/react-native-web/src/exports/Pressable/__tests__/index-test.js index b9a4a2d8..484333f5 100644 --- a/packages/react-native-web/src/exports/Pressable/__tests__/index-test.js +++ b/packages/react-native-web/src/exports/Pressable/__tests__/index-test.js @@ -1,4 +1,9 @@ -/* eslint-env jasmine, jest */ +/** + * Copyright (c) Nicolas Gallagher. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ import React from 'react'; import Pressable from '../'; diff --git a/packages/react-native-web/src/exports/ProgressBar/__tests__/index-test.js b/packages/react-native-web/src/exports/ProgressBar/__tests__/index-test.js index db0d77cd..8ddc6970 100644 --- a/packages/react-native-web/src/exports/ProgressBar/__tests__/index-test.js +++ b/packages/react-native-web/src/exports/ProgressBar/__tests__/index-test.js @@ -1,4 +1,9 @@ -/* eslint-env jasmine, jest */ +/** + * Copyright (c) Nicolas Gallagher. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ import React from 'react'; import { render } from '@testing-library/react'; diff --git a/packages/react-native-web/src/exports/SafeAreaView/index.js b/packages/react-native-web/src/exports/SafeAreaView/index.js index 3f51a637..cef933c7 100644 --- a/packages/react-native-web/src/exports/SafeAreaView/index.js +++ b/packages/react-native-web/src/exports/SafeAreaView/index.js @@ -11,9 +11,10 @@ import type { ViewProps } from '../View'; import * as React from 'react'; -import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment'; import StyleSheet from '../StyleSheet'; import View from '../View'; +import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; +const { canUseDOM } = ExecutionEnvironment; const cssFunction: 'constant' | 'env' = (function () { if ( diff --git a/packages/react-native-web/src/exports/Switch/__tests__/index-test.js b/packages/react-native-web/src/exports/Switch/__tests__/index-test.js index 92b17310..c7eea04d 100644 --- a/packages/react-native-web/src/exports/Switch/__tests__/index-test.js +++ b/packages/react-native-web/src/exports/Switch/__tests__/index-test.js @@ -1,4 +1,9 @@ -/* eslint-env jasmine, jest */ +/** + * Copyright (c) Nicolas Gallagher. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ import React from 'react'; import { render } from '@testing-library/react'; diff --git a/packages/react-native-web/src/exports/Text/__tests__/index-test.js b/packages/react-native-web/src/exports/Text/__tests__/index-test.js index f8b47bd4..ac7530dc 100644 --- a/packages/react-native-web/src/exports/Text/__tests__/index-test.js +++ b/packages/react-native-web/src/exports/Text/__tests__/index-test.js @@ -1,4 +1,10 @@ -/* eslint-env jasmine, jest */ +/** + * Copyright (c) Nicolas Gallagher. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + /* eslint-disable react/jsx-no-bind */ import React from 'react'; diff --git a/packages/react-native-web/src/exports/TextInput/__tests__/index-test.js b/packages/react-native-web/src/exports/TextInput/__tests__/index-test.js index 5a798667..69af09b1 100644 --- a/packages/react-native-web/src/exports/TextInput/__tests__/index-test.js +++ b/packages/react-native-web/src/exports/TextInput/__tests__/index-test.js @@ -1,4 +1,9 @@ -/* eslint-env jasmine, jest */ +/** + * Copyright (c) Nicolas Gallagher. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ import React from 'react'; import TextInput from '..'; @@ -285,6 +290,7 @@ describe('components/TextInput', () => { target.focus(); }); expect(onFocus).toHaveBeenCalledTimes(1); + target.node.focus(); expect(TextInput.State.currentlyFocusedField()).toBe(target.node); }); @@ -509,7 +515,7 @@ describe('components/TextInput', () => { const { container } = render(); const input = findInput(container); // This doesn't cause ReactDOM to trigger 'change' event... ¯\_(ツ)_/¯ - input.dispatchEvent(new window.Event('change', { bubbles: true })); + input.dispatchEvent(new window.Event('input', { bubbles: true })); expect(onSelectionChange).toHaveBeenCalledTimes(1); }); }); @@ -607,9 +613,9 @@ describe('components/TextInput', () => { const cursorLocation = { start: 3, end: 3 }; const { container: defaultContainer } = render(); const inputDefaultSelection = findInput(defaultContainer); - // default selection is 0 - expect(inputDefaultSelection.selectionStart).toEqual(0); - expect(inputDefaultSelection.selectionEnd).toEqual(0); + // default selection is at the end + expect(inputDefaultSelection.selectionStart).toEqual(5); + expect(inputDefaultSelection.selectionEnd).toEqual(5); const { container: customContainer } = render( diff --git a/packages/react-native-web/src/exports/UIManager/__tests__/index-test.js b/packages/react-native-web/src/exports/UIManager/__tests__/index-test.js index 1feed387..6d547607 100644 --- a/packages/react-native-web/src/exports/UIManager/__tests__/index-test.js +++ b/packages/react-native-web/src/exports/UIManager/__tests__/index-test.js @@ -1,4 +1,9 @@ -/* eslint-env jasmine, jest */ +/** + * Copyright (c) Nicolas Gallagher. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ import UIManager from '..'; diff --git a/packages/react-native-web/src/exports/View/__tests__/index-test.js b/packages/react-native-web/src/exports/View/__tests__/index-test.js index 592db3f6..4a129c51 100644 --- a/packages/react-native-web/src/exports/View/__tests__/index-test.js +++ b/packages/react-native-web/src/exports/View/__tests__/index-test.js @@ -1,4 +1,9 @@ -/* eslint-env jasmine, jest */ +/** + * Copyright (c) Nicolas Gallagher. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ import React from 'react'; import View from '../'; diff --git a/packages/react-native-web/src/exports/createElement/__tests__/index-test.js b/packages/react-native-web/src/exports/createElement/__tests__/index-test.js index 6401a436..95e64219 100644 --- a/packages/react-native-web/src/exports/createElement/__tests__/index-test.js +++ b/packages/react-native-web/src/exports/createElement/__tests__/index-test.js @@ -1,4 +1,9 @@ -/* eslint-env jasmine, jest */ +/** + * Copyright (c) Nicolas Gallagher. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ import createElement from '..'; import React from 'react'; diff --git a/packages/react-native-web/src/exports/processColor/__tests__/index-test.js b/packages/react-native-web/src/exports/processColor/__tests__/index-test.js index fed99c49..77fc8baa 100644 --- a/packages/react-native-web/src/exports/processColor/__tests__/index-test.js +++ b/packages/react-native-web/src/exports/processColor/__tests__/index-test.js @@ -1,7 +1,5 @@ -/* eslint-env jasmine, jest */ - /** - * Copyright (c) 2015-present, Facebook, Inc. + * Copyright (c) Nicolas Gallagher. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. diff --git a/packages/react-native-web/src/modules/AccessibilityUtil/__tests__/propsToAccessibilityComponent-test.js b/packages/react-native-web/src/modules/AccessibilityUtil/__tests__/propsToAccessibilityComponent-test.js index 6ace887f..22615971 100644 --- a/packages/react-native-web/src/modules/AccessibilityUtil/__tests__/propsToAccessibilityComponent-test.js +++ b/packages/react-native-web/src/modules/AccessibilityUtil/__tests__/propsToAccessibilityComponent-test.js @@ -1,4 +1,9 @@ -/* eslint-env jasmine, jest */ +/** + * Copyright (c) Nicolas Gallagher. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ import propsToAccessibilityComponent from '../propsToAccessibilityComponent'; diff --git a/packages/react-native-web/src/modules/AccessibilityUtil/__tests__/propsToAriaRole-test.js b/packages/react-native-web/src/modules/AccessibilityUtil/__tests__/propsToAriaRole-test.js index fd69aec8..5513ca14 100644 --- a/packages/react-native-web/src/modules/AccessibilityUtil/__tests__/propsToAriaRole-test.js +++ b/packages/react-native-web/src/modules/AccessibilityUtil/__tests__/propsToAriaRole-test.js @@ -1,4 +1,9 @@ -/* eslint-env jasmine, jest */ +/** + * Copyright (c) Nicolas Gallagher. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ import propsToAriaRole from '../propsToAriaRole'; diff --git a/packages/react-native-web/src/modules/createDOMProps/__tests__/index-test.js b/packages/react-native-web/src/modules/createDOMProps/__tests__/index-test.js index 0a208eda..a5068e1b 100644 --- a/packages/react-native-web/src/modules/createDOMProps/__tests__/index-test.js +++ b/packages/react-native-web/src/modules/createDOMProps/__tests__/index-test.js @@ -1,4 +1,9 @@ -/* eslint-env jasmine, jest */ +/** + * Copyright (c) Nicolas Gallagher. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ import createDOMProps from '..'; diff --git a/packages/react-native-web/src/modules/createEventHandle/index.js b/packages/react-native-web/src/modules/createEventHandle/index.js index b64f6d5d..3be10202 100644 --- a/packages/react-native-web/src/modules/createEventHandle/index.js +++ b/packages/react-native-web/src/modules/createEventHandle/index.js @@ -9,7 +9,8 @@ 'use strict'; -import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment'; +import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; +const { canUseDOM } = ExecutionEnvironment; type Listener = (e: any) => void; diff --git a/packages/react-native-web/src/modules/modality/index.js b/packages/react-native-web/src/modules/modality/index.js index b0b5f7fb..5b748d27 100644 --- a/packages/react-native-web/src/modules/modality/index.js +++ b/packages/react-native-web/src/modules/modality/index.js @@ -7,8 +7,9 @@ * @flow */ -import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment'; import createEventHandle from '../createEventHandle'; +import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; +const { canUseDOM } = ExecutionEnvironment; export type Modality = 'keyboard' | 'mouse' | 'touch' | 'pen'; diff --git a/packages/react-native-web/src/modules/multiplyStyleLengthValue/__tests__/index-test.js b/packages/react-native-web/src/modules/multiplyStyleLengthValue/__tests__/index-test.js index a7ae061a..e43b5960 100644 --- a/packages/react-native-web/src/modules/multiplyStyleLengthValue/__tests__/index-test.js +++ b/packages/react-native-web/src/modules/multiplyStyleLengthValue/__tests__/index-test.js @@ -1,4 +1,9 @@ -/* eslint-env jasmine, jest */ +/** + * Copyright (c) Nicolas Gallagher. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ import multiplyStyleLengthValue from '..'; diff --git a/packages/react-native-web/src/modules/requestIdleCallback/index.js b/packages/react-native-web/src/modules/requestIdleCallback/index.js index 209d209a..57aaa66b 100644 --- a/packages/react-native-web/src/modules/requestIdleCallback/index.js +++ b/packages/react-native-web/src/modules/requestIdleCallback/index.js @@ -7,7 +7,8 @@ * @flow */ -import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment'; +import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; +const { canUseDOM } = ExecutionEnvironment; const _requestIdleCallback = function (cb: Function, options?: Object) { return setTimeout(() => { diff --git a/packages/react-native-web/src/modules/useElementLayout/index.js b/packages/react-native-web/src/modules/useElementLayout/index.js index 529e9d8e..bce49979 100644 --- a/packages/react-native-web/src/modules/useElementLayout/index.js +++ b/packages/react-native-web/src/modules/useElementLayout/index.js @@ -10,9 +10,10 @@ import type { ElementRef } from 'react'; import type { LayoutEvent } from '../../types'; -import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment'; import useLayoutEffect from '../useLayoutEffect'; import UIManager from '../../exports/UIManager'; +import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; +const { canUseDOM } = ExecutionEnvironment; const DOM_LAYOUT_HANDLER_NAME = '__reactLayoutHandler'; diff --git a/packages/react-native-web/src/modules/useLayoutEffect/index.js b/packages/react-native-web/src/modules/useLayoutEffect/index.js index ba3ee240..0de8d9f8 100644 --- a/packages/react-native-web/src/modules/useLayoutEffect/index.js +++ b/packages/react-native-web/src/modules/useLayoutEffect/index.js @@ -10,8 +10,9 @@ * @flow */ -import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment'; import { useEffect, useLayoutEffect } from 'react'; +import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; +const { canUseDOM } = ExecutionEnvironment; const useLayoutEffectImpl: typeof useLayoutEffect = canUseDOM ? useLayoutEffect : useEffect; diff --git a/packages/react-native-web/src/modules/useResponderEvents/ResponderSystem.js b/packages/react-native-web/src/modules/useResponderEvents/ResponderSystem.js index b9aaad70..99e2d0a9 100644 --- a/packages/react-native-web/src/modules/useResponderEvents/ResponderSystem.js +++ b/packages/react-native-web/src/modules/useResponderEvents/ResponderSystem.js @@ -133,7 +133,6 @@ to return true:wantsResponderID| | import type { ResponderEvent } from './createResponderEvent'; -import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment'; import createResponderEvent from './createResponderEvent'; import { isCancelish, @@ -152,6 +151,8 @@ import { setResponderId } from './utils'; import ResponderTouchHistoryStore from './ResponderTouchHistoryStore'; +import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; +const { canUseDOM } = ExecutionEnvironment; /* ------------ TYPES ------------ */ diff --git a/packages/react-native-web/src/modules/useResponderEvents/__tests__/index-test.js b/packages/react-native-web/src/modules/useResponderEvents/__tests__/index-test.js index 8dc5106d..c2a265d7 100644 --- a/packages/react-native-web/src/modules/useResponderEvents/__tests__/index-test.js +++ b/packages/react-native-web/src/modules/useResponderEvents/__tests__/index-test.js @@ -1,4 +1,9 @@ -/* eslint-env jasmine, jest */ +/** + * Copyright (c) Nicolas Gallagher. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ import { act } from 'react-dom/test-utils'; import React, { createRef } from 'react';