elemental-design / elemental-design/react-platform

What is a React Platform?

Open
#10 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
17
Forks
0
PR merge metrics
No merged PRs in 30d

Description

[WIP **umbrella issue** for discussion/ideas, to help surface proposals]

## What counts as a React platform?

Is using react-reconciler enough to count as a platform? Or does `react-test-renderer` count, for the case of `react-sketchapp`?

Will Metro be an explicit requirement, or will Webpack/ be supported as entrypoint bundlers?
- Some runtime environments may be in sandboxes where running bundlers like Metro aren't appropriate, such as in design software plugins, where file extensions are nice as a universally accepted standard across bundlers, especially with Babel extension preferences.
- Should file extensions remain a stable/supported default for out-of-tree platforms?

## How should imports work?
- Is `import { ... } from 'react-native';` a safe pattern for out-of-tree platforms?
- How can we make sure that props are types without `tsconfig` hacks?

**Proposal**

Standardise platform-specific imports around `react-native-ios`, `react-native-windows`, or `@react-native/ios`.

Support `react-native` as a common API surface across platforms, or have `react-platform`/`react-primitives` as a common API layer that maps to `react-native-windows`, etc. Or have `react-primitives` for `react-reconciler` platforms that don't have the full Metro/Fabric setup (e.g. `react-primitives` `View` import aliases to `react-native-` ``, and `react-native` for those that do.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.