diff --git a/packages/react-native-web/src/exports/AccessibilityInfo/index.js b/packages/react-native-web/src/exports/AccessibilityInfo/index.js index 7c2f66d253..b69e3f3548 100644 --- a/packages/react-native-web/src/exports/AccessibilityInfo/index.js +++ b/packages/react-native-web/src/exports/AccessibilityInfo/index.js @@ -6,6 +6,9 @@ * * @flow */ + +'use client'; + import canUseDOM from '../../modules/canUseDom'; function isScreenReaderEnabled(): Promise<*> { diff --git a/packages/react-native-web/src/exports/ActivityIndicator/index.js b/packages/react-native-web/src/exports/ActivityIndicator/index.js index 151337204e..64478165c1 100644 --- a/packages/react-native-web/src/exports/ActivityIndicator/index.js +++ b/packages/react-native-web/src/exports/ActivityIndicator/index.js @@ -8,6 +8,8 @@ * @flow */ +'use client'; + import type { ViewProps } from '../View'; import * as React from 'react'; diff --git a/packages/react-native-web/src/exports/Animated/index.js b/packages/react-native-web/src/exports/Animated/index.js index 7dcb2222ef..bf3497c1fe 100644 --- a/packages/react-native-web/src/exports/Animated/index.js +++ b/packages/react-native-web/src/exports/Animated/index.js @@ -7,5 +7,7 @@ * @flow */ +'use client'; + import Animated from '../../vendor/react-native/Animated/Animated'; export default Animated; diff --git a/packages/react-native-web/src/exports/AppRegistry/index.js b/packages/react-native-web/src/exports/AppRegistry/index.js index 25e70c3a06..53a0af51a8 100644 --- a/packages/react-native-web/src/exports/AppRegistry/index.js +++ b/packages/react-native-web/src/exports/AppRegistry/index.js @@ -8,6 +8,8 @@ * @flow */ +'use client'; + import type { Application } from './renderApplication'; import type { ComponentType, Node } from 'react'; diff --git a/packages/react-native-web/src/exports/AppState/index.js b/packages/react-native-web/src/exports/AppState/index.js index 3e4fab60a5..c730a0ab18 100644 --- a/packages/react-native-web/src/exports/AppState/index.js +++ b/packages/react-native-web/src/exports/AppState/index.js @@ -8,6 +8,8 @@ * @noflow */ +'use client'; + import invariant from 'fbjs/lib/invariant'; import EventEmitter from '../../vendor/react-native/vendor/emitter/EventEmitter'; import canUseDOM from '../../modules/canUseDom'; diff --git a/packages/react-native-web/src/exports/Appearance/index.js b/packages/react-native-web/src/exports/Appearance/index.js index 40b0fa6b1b..3942859775 100644 --- a/packages/react-native-web/src/exports/Appearance/index.js +++ b/packages/react-native-web/src/exports/Appearance/index.js @@ -7,6 +7,9 @@ * * @flow */ + +'use client'; + import canUseDOM from '../../modules/canUseDom'; export type ColorSchemeName = 'light' | 'dark'; diff --git a/packages/react-native-web/src/exports/CheckBox/index.js b/packages/react-native-web/src/exports/CheckBox/index.js index 1df7f3ab7d..144eb90c3b 100644 --- a/packages/react-native-web/src/exports/CheckBox/index.js +++ b/packages/react-native-web/src/exports/CheckBox/index.js @@ -8,6 +8,8 @@ * @flow */ +'use client'; + import type { ColorValue } from '../../types'; import type { ViewProps } from '../View'; diff --git a/packages/react-native-web/src/exports/Clipboard/index.js b/packages/react-native-web/src/exports/Clipboard/index.js index e17a766e87..6ce3a988cd 100644 --- a/packages/react-native-web/src/exports/Clipboard/index.js +++ b/packages/react-native-web/src/exports/Clipboard/index.js @@ -8,6 +8,8 @@ * @flow */ +'use client'; + let clipboardAvailable; export default class Clipboard { diff --git a/packages/react-native-web/src/exports/Dimensions/index.js b/packages/react-native-web/src/exports/Dimensions/index.js index ceb971af7f..45c9e519ee 100644 --- a/packages/react-native-web/src/exports/Dimensions/index.js +++ b/packages/react-native-web/src/exports/Dimensions/index.js @@ -8,6 +8,8 @@ * @flow */ +'use client'; + import type { EventSubscription } from '../../vendor/react-native/vendor/emitter/EventEmitter'; import invariant from 'fbjs/lib/invariant'; import canUseDOM from '../../modules/canUseDom'; diff --git a/packages/react-native-web/src/exports/FlatList/index.js b/packages/react-native-web/src/exports/FlatList/index.js index b7732a4e7d..bcbc3db8dc 100644 --- a/packages/react-native-web/src/exports/FlatList/index.js +++ b/packages/react-native-web/src/exports/FlatList/index.js @@ -8,5 +8,7 @@ * @flow */ +'use client'; + import FlatList from '../../vendor/react-native/FlatList'; export default FlatList; diff --git a/packages/react-native-web/src/exports/Image/index.js b/packages/react-native-web/src/exports/Image/index.js index 5a81b0b461..1c0bc8bc64 100644 --- a/packages/react-native-web/src/exports/Image/index.js +++ b/packages/react-native-web/src/exports/Image/index.js @@ -8,6 +8,8 @@ * @flow */ +'use client'; + import type { ImageProps } from './types'; import * as React from 'react'; diff --git a/packages/react-native-web/src/exports/KeyboardAvoidingView/index.js b/packages/react-native-web/src/exports/KeyboardAvoidingView/index.js index 08cb547f7e..5beae81b87 100644 --- a/packages/react-native-web/src/exports/KeyboardAvoidingView/index.js +++ b/packages/react-native-web/src/exports/KeyboardAvoidingView/index.js @@ -8,6 +8,8 @@ * @flow */ +'use client'; + import type { LayoutEvent, LayoutValue } from '../../types'; import type { ViewProps } from '../View'; diff --git a/packages/react-native-web/src/exports/Modal/index.js b/packages/react-native-web/src/exports/Modal/index.js index 330a1d56af..89fffbc750 100644 --- a/packages/react-native-web/src/exports/Modal/index.js +++ b/packages/react-native-web/src/exports/Modal/index.js @@ -8,6 +8,8 @@ * @flow */ +'use client'; + import type { ViewProps } from '../View'; import * as React from 'react'; diff --git a/packages/react-native-web/src/exports/Picker/index.js b/packages/react-native-web/src/exports/Picker/index.js index fa2fde9a10..27fa5b1472 100644 --- a/packages/react-native-web/src/exports/Picker/index.js +++ b/packages/react-native-web/src/exports/Picker/index.js @@ -8,6 +8,8 @@ * @flow */ +'use client'; + import type { PlatformMethods } from '../../types'; import type { ViewProps } from '../View'; diff --git a/packages/react-native-web/src/exports/Pressable/index.js b/packages/react-native-web/src/exports/Pressable/index.js index 19d3649129..28118ddcd0 100644 --- a/packages/react-native-web/src/exports/Pressable/index.js +++ b/packages/react-native-web/src/exports/Pressable/index.js @@ -7,7 +7,7 @@ * @flow strict-local */ -'use strict'; +'use client'; import type { HoverEventsConfig } from '../../modules/useHover'; import type { PressResponderConfig } from '../../modules/usePressEvents/PressResponder'; diff --git a/packages/react-native-web/src/exports/ProgressBar/index.js b/packages/react-native-web/src/exports/ProgressBar/index.js index d5bca56a61..25069e724b 100644 --- a/packages/react-native-web/src/exports/ProgressBar/index.js +++ b/packages/react-native-web/src/exports/ProgressBar/index.js @@ -7,6 +7,8 @@ * @flow */ +'use client'; + import type { ColorValue } from '../../types'; import type { ViewProps } from '../View'; diff --git a/packages/react-native-web/src/exports/ScrollView/index.js b/packages/react-native-web/src/exports/ScrollView/index.js index d387e26273..6b56e894fd 100644 --- a/packages/react-native-web/src/exports/ScrollView/index.js +++ b/packages/react-native-web/src/exports/ScrollView/index.js @@ -8,6 +8,8 @@ * @noflow */ +'use client'; + import type { ViewProps, ViewStyle } from '../View/types'; import Dimensions from '../Dimensions'; diff --git a/packages/react-native-web/src/exports/SectionList/index.js b/packages/react-native-web/src/exports/SectionList/index.js index 01e8365b04..2228ad6593 100644 --- a/packages/react-native-web/src/exports/SectionList/index.js +++ b/packages/react-native-web/src/exports/SectionList/index.js @@ -7,5 +7,7 @@ * @flow */ +'use client'; + import SectionList from '../../vendor/react-native/SectionList'; export default SectionList; diff --git a/packages/react-native-web/src/exports/Switch/index.js b/packages/react-native-web/src/exports/Switch/index.js index 4f3e659d8e..93282f621e 100644 --- a/packages/react-native-web/src/exports/Switch/index.js +++ b/packages/react-native-web/src/exports/Switch/index.js @@ -7,6 +7,8 @@ * @flow */ +'use client'; + import type { ColorValue } from '../../types'; import type { ViewProps } from '../View'; diff --git a/packages/react-native-web/src/exports/Text/TextAncestorContext.js b/packages/react-native-web/src/exports/Text/TextAncestorContext.js index 52a7e2964c..164b271393 100644 --- a/packages/react-native-web/src/exports/Text/TextAncestorContext.js +++ b/packages/react-native-web/src/exports/Text/TextAncestorContext.js @@ -7,6 +7,8 @@ * @flow strict */ +'use client'; + import type { Context } from 'react'; import { createContext } from 'react'; diff --git a/packages/react-native-web/src/exports/Text/index.js b/packages/react-native-web/src/exports/Text/index.js index 071ae10253..316939ee74 100644 --- a/packages/react-native-web/src/exports/Text/index.js +++ b/packages/react-native-web/src/exports/Text/index.js @@ -8,6 +8,8 @@ * @flow */ +'use client'; + import type { PlatformMethods } from '../../types'; import type { TextProps } from './types'; diff --git a/packages/react-native-web/src/exports/TextInput/index.js b/packages/react-native-web/src/exports/TextInput/index.js index 83f89af333..c67ffc9e5c 100644 --- a/packages/react-native-web/src/exports/TextInput/index.js +++ b/packages/react-native-web/src/exports/TextInput/index.js @@ -8,6 +8,8 @@ * @flow */ +'use client'; + import type { PlatformMethods } from '../../types'; import type { TextInputProps } from './types'; diff --git a/packages/react-native-web/src/exports/TouchableHighlight/index.js b/packages/react-native-web/src/exports/TouchableHighlight/index.js index 7814fcc59f..e96692da39 100644 --- a/packages/react-native-web/src/exports/TouchableHighlight/index.js +++ b/packages/react-native-web/src/exports/TouchableHighlight/index.js @@ -8,7 +8,7 @@ * @format */ -'use strict'; +'use client'; import type { ColorValue } from '../../types'; import type { Props as TouchableWithoutFeedbackProps } from '../TouchableWithoutFeedback'; diff --git a/packages/react-native-web/src/exports/TouchableOpacity/index.js b/packages/react-native-web/src/exports/TouchableOpacity/index.js index 5dba64e0ae..c94be1b43b 100644 --- a/packages/react-native-web/src/exports/TouchableOpacity/index.js +++ b/packages/react-native-web/src/exports/TouchableOpacity/index.js @@ -8,7 +8,7 @@ * @format */ -'use strict'; +'use client'; import type { Props as TouchableWithoutFeedbackProps } from '../TouchableWithoutFeedback'; import type { ViewProps } from '../View'; diff --git a/packages/react-native-web/src/exports/TouchableWithoutFeedback/index.js b/packages/react-native-web/src/exports/TouchableWithoutFeedback/index.js index e77794a5cb..e2ef7d080a 100644 --- a/packages/react-native-web/src/exports/TouchableWithoutFeedback/index.js +++ b/packages/react-native-web/src/exports/TouchableWithoutFeedback/index.js @@ -8,7 +8,7 @@ * @format */ -'use strict'; +'use client'; import type { PressResponderConfig } from '../../modules/usePressEvents/PressResponder'; import type { ViewProps } from '../View'; diff --git a/packages/react-native-web/src/exports/View/index.js b/packages/react-native-web/src/exports/View/index.js index 18d0c86cf3..573bfe2b5b 100644 --- a/packages/react-native-web/src/exports/View/index.js +++ b/packages/react-native-web/src/exports/View/index.js @@ -8,6 +8,8 @@ * @flow */ +'use client'; + import type { PlatformMethods } from '../../types'; import type { ViewProps } from './types'; diff --git a/packages/react-native-web/src/exports/VirtualizedList/index.js b/packages/react-native-web/src/exports/VirtualizedList/index.js index e4deb974c5..4badaebd2a 100644 --- a/packages/react-native-web/src/exports/VirtualizedList/index.js +++ b/packages/react-native-web/src/exports/VirtualizedList/index.js @@ -7,5 +7,7 @@ * @flow */ +'use client'; + import VirtualizedList from '../../vendor/react-native/VirtualizedList'; export default VirtualizedList; diff --git a/packages/react-native-web/src/exports/createElement/index.js b/packages/react-native-web/src/exports/createElement/index.js index 068f85892b..e6a7f172a1 100644 --- a/packages/react-native-web/src/exports/createElement/index.js +++ b/packages/react-native-web/src/exports/createElement/index.js @@ -7,6 +7,8 @@ * @noflow */ +'use client'; + import AccessibilityUtil from '../../modules/AccessibilityUtil'; import createDOMProps from '../../modules/createDOMProps'; import React from 'react'; diff --git a/packages/react-native-web/src/exports/render/index.js b/packages/react-native-web/src/exports/render/index.js index 8002132585..c578e3e619 100644 --- a/packages/react-native-web/src/exports/render/index.js +++ b/packages/react-native-web/src/exports/render/index.js @@ -7,6 +7,8 @@ * @noflow */ +'use client'; + import { hydrate as domLegacyHydrate, render as domLegacyRender diff --git a/packages/react-native-web/src/exports/useColorScheme/index.js b/packages/react-native-web/src/exports/useColorScheme/index.js index 2e70d030f1..a2970115d3 100644 --- a/packages/react-native-web/src/exports/useColorScheme/index.js +++ b/packages/react-native-web/src/exports/useColorScheme/index.js @@ -8,6 +8,8 @@ * @flow */ +'use client'; + import * as React from 'react'; import type { ColorSchemeName } from '../Appearance'; import Appearance from '../Appearance'; diff --git a/packages/react-native-web/src/exports/useLocaleContext/index.js b/packages/react-native-web/src/exports/useLocaleContext/index.js index e80b354b89..758320ce87 100644 --- a/packages/react-native-web/src/exports/useLocaleContext/index.js +++ b/packages/react-native-web/src/exports/useLocaleContext/index.js @@ -7,5 +7,7 @@ * @flow strict */ +'use client'; + import { useLocaleContext } from '../../modules/useLocale'; export default useLocaleContext; diff --git a/packages/react-native-web/src/exports/useWindowDimensions/index.js b/packages/react-native-web/src/exports/useWindowDimensions/index.js index 114e424609..818dbe2d85 100644 --- a/packages/react-native-web/src/exports/useWindowDimensions/index.js +++ b/packages/react-native-web/src/exports/useWindowDimensions/index.js @@ -8,7 +8,7 @@ * @flow strict-local */ -'use strict'; +'use client'; import type { DisplayMetrics } from '../Dimensions'; diff --git a/packages/react-native-web/src/modules/UnimplementedView/index.js b/packages/react-native-web/src/modules/UnimplementedView/index.js index f28147cb0c..1cabc94040 100644 --- a/packages/react-native-web/src/modules/UnimplementedView/index.js +++ b/packages/react-native-web/src/modules/UnimplementedView/index.js @@ -6,8 +6,8 @@ * * @flow */ - import type { Node } from 'React'; +import type { ViewProps } from '../../exports/View/types'; import View from '../../exports/View'; import React from 'react'; @@ -15,14 +15,8 @@ import React from 'react'; /** * Common implementation for a simple stubbed view. */ -class UnimplementedView extends React.Component<*, *> { - render(): Node { - return ( - - {this.props.children} - - ); - } +function UnimplementedView({ style, ...props }: ViewProps): Node { + return ; } const unimplementedViewStyles =