UNPKG

react-native-web

Version:
44 lines (36 loc) 1.22 kB
/** * 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. * * @noflow */ 'use client'; import AccessibilityUtil from '../../modules/AccessibilityUtil'; import createDOMProps from '../../modules/createDOMProps'; import React from 'react'; import { LocaleProvider } from '../../modules/useLocale'; const createElement = (component, props, options) => { // Use equivalent platform elements where possible. let accessibilityComponent; if (component && component.constructor === String) { accessibilityComponent = AccessibilityUtil.propsToAccessibilityComponent(props); } const Component = accessibilityComponent || component; const domProps = createDOMProps(Component, props, options); const element = React.createElement(Component, domProps); // Update locale context if element's writing direction prop changes const elementWithLocaleProvider = domProps.dir ? ( <LocaleProvider children={element} direction={domProps.dir} locale={domProps.lang} /> ) : ( element ); return elementWithLocaleProvider; }; export default createElement;