React-Reactxp 2.0.0: Library for cross-platform app development.

icon
Latest Release: 2.0.0

Note: We have switched to using the GitHub releases page for version notes. The version_history.md file has been deprecated.

The 2.0.0 major-version-bump of ReactXP reflects a few different breaking changes since the last non-RC release (1.6.1):

  • #1119 and #1101 Keeping in line with React Native's diet regimen, NetInfo and WebView have been broken out from the core ReactXP package and are being released as their own separate reactxp-netinfo/reactxp-webview projects, which use the correspondingly-broken-out packages for RN
  • #1129 Stopped using SyncTasks in favor of ES6 Promises
  • #1127 Renamed usage of the older-style React lifecycle methods to use the UNSAFE_ prefix to avoid deprecation issues for a while

These changes, and several supporting PRs along the way, bring ReactXP back in line with supporting the very latest releases of React and React Native. We are also switching over to eslint from tslint, and @a-tarasyuk has released an eslint-plugin-reactxp to help with that (#1155). The package, samples, and extensions have also all received some love, being updated to the latest packages (except we left the samples on RN 0.59, since moving to 0.61 requires some nontrival package structure changes that we haven't gotten around to yet.)

Other updates/fixes that this release brings in since the last documented release (2.0.0-rc.1):

  • #1167 Touch gesture support for web in GestureView
  • #1141 Enable 'handled' mode of ScrollView['keyboardShouldPersistTaps']
  • #1132 Remove ScrollView vertical prop that has no effect on RN platforms
  • #1165 Removed maxContentSizeMultiplier references
Source code(tar.gz)
Source code(zip)

ReactXP

GitHub license npm version Build Status Build Status npm downloads PRs Welcome Gitter

ReactXP is a library for cross-platform app development using React and React Native.

Why ReactXP

With React and React Native, your web app can share most of its logic with your iOS and Android apps, but the view layer needs to be implemented separately for each platform. We have taken this a step further and developed a thin cross-platform layer we call ReactXP. If you write your app to this abstraction, you can share your view definitions, styles and animations across multiple target platforms. Of course, you can still provide platform-specific UI variants, but this can be done selectively where desired.

Getting Started

The samples directory contains a minimal “Hello World” app that demonstrates some basic ReactXP functionality. You can use this as a starting point. Just follow the build instructions in the README file.

Also included in the samples directory is the RXPTest app which attempts to exercise all of the functionality of ReactXP. It is a good source to consult for sample usage of APIs, components, and props.

You can read more about ReactXP and its APIs from the ReactXP official Documentation.

Use the command-line tool called create-rx-app to create a starter project.

npm install create-rx-app -g
create-rx-app AppName

or

npx create-rx-app AppName

By default the project will be created in TypeScript. However if you prefer JavaScript instead, add --javascript when creating the project.

This will create a directory called AppName inside the current working directory. Inside AppName, this will generate the initial project structure and install all of its dependencies. Once this installation is done, there are some commands you can run in the project directory:

  • npm run start:web - runs the Web version of the app in the development mode
  • npm run build:web - builds the Web version of the app for production to the dist-web folder
  • npm run start:ios - runs the iOS version of the app and attempts to open in the iOS Simulator if you're on a Mac and have it installed
  • npm run start:android - runs the Android version of the app and attempts to open your app on a connected Android device or emulator
  • npm run start:windows - runs the Windows version of the app
  • npm start:rn-dev-server - runs react native (RN) development server

Prerequisites

ESLint rules

TSLint will be deprecated some time in 2019

If you plan to migrate your projects from TSLint to ESlint and want to continue using the rules to automate search common problems in ReactXP usage, you can use eslint-plugin-reactxp.

Contributing

We welcome contributions to ReactXP. See the CONTRIBUTING file for how to help out.

License

This project is licensed under the MIT License - see the LICENSE file for details

Comments

  • Discontinued
    Discontinued

    Jun 2, 2021

    Two years and no updates, sad to see another technology fail. Had a lot of potential.

    Reply
  • Modified VirtualListCell component to enable 'useNativeDriver' as Animated parameter
    Modified VirtualListCell component to enable 'useNativeDriver' as Animated parameter

    Jun 22, 2021

    The VirtualListCell component of the VirtualListView extension does not use useNativeDriver: true for Animated styles, resulting in no animations on Android.

    This PR modifies the component to use 'useNativeDriver' for animating the 'top' value (moving the cell vertically in the list). The 'width' and 'left' values needed to be moved to a static style, as these values are not supported by 'useNativeDriver' (and it seems to me they were not part of the 'timing' animation anyway).

    Tested on a physical device (LG G6 running Android 9).

    Reply
  • "'useNativeDriver' was not specified" warning - unless disableTouchOpacityAnimation is true

    Jul 8, 2021

    Running latest ReactXp (v 2.0.0). I set up a basic animated View component to test some things I am seeing. I found that even though my animation has useNativeDriver defined in the config I was still getting the warning on iPad, "'useNativeDriver' was not specified". I found that adding disableTouchOpacityAnimation={true} resolved this and so it seems the definition for that animation needs to be updated to be compatible with the requirement to have useNativeDriver defined.

    Reply
  • useNativeDriver: true not supported if a non-native animated value style is present albeit not being animated
    useNativeDriver: true not supported if a non-native animated value style is present albeit not being animated

    Jul 8, 2021

    Running latest ReactXp (v 2.0.0). I set up a basic animated View component to test some things I am seeing. I found that if I add two animated value styles to the same component, one that is native animatable (eg, opacity) and one that is not (eg, top), and then try to animate only the former (opacity) with useNativeDriver: true, it fails on iPad with the error "Style property 'top' is not supported by native animated module". This is despite the fact that top is not being animated. NO animation is being run on the 'top' value at all (both are present because different actions could animate one or the other, they never animate together and in fact I've taken out the portion of the code that would animate top, so it currently never animates). This seems very wrong as the value being animated IS native animatable and should be able to run with native drivers.

    Reply
  • Bump react-native from 0.59.10 to 0.62.3 in /samples/hello-world
    Bump react-native from 0.59.10 to 0.62.3 in /samples/hello-world

    Jul 20, 2021

    Bumps react-native from 0.59.10 to 0.62.3.

    Release notes

    Sourced from react-native's releases.

    v0.62.3

    This patch release is specifically targetted towards Xcode 12.5. The changes done are tailored to unblock developers still relying on v0.62 of RN.

    Aside from bumping your version from 0.62.2 to 0.62.3, please make sure to add this line to your podfile (or modify it if you already had it):

    use_flipper!('Flipper' => '0.75.1', 'Flipper-Folly' => '2.5.3', 'Flipper-RSocket' => '1.3.1')
    

    After which, do all the classic necessary cleans (node_modules, caches, pod folders, etc)(react-native-clean-project is your ally) then do yarn install and a pod install --repo-update (if pod install fails on an error about a Flipper package, just remove the relevant lines from the podfile.lock and run the pod install again).

    The only other commit picked & released along the Xcode 12.5 fixes is:

    • Update validateBaseUrl to use latest regex (commit) which fixes CVE-2020-1920, GHSL-2020-293.

    To help you upgrade to this version, you can use the upgrade helper ⚛️


    You can find the whole changelog history over at react-native-releases.

    v0.62.2

    This release fixes a few minor issues that were reported by the community. You can view the complete changelog here.

    You can participate in the conversation for the next patch release in the dedicated issue.


    To help you upgrade to this version, you can use the new upgrade helper ⚛️


    You can find the whole changelog history over at react-native-releases.

    v0.62.1

    This release fixes a YellowBox regression in v0.62.0 where the Flipper network inspector causes YellowBox to crash the app due to using base64 images.

    You can view the complete changelog here.

    You can participate in the conversation for the next patch release in the dedicated issue.


    To help you upgrade to this version, you can use the new upgrade helper ⚛️


    You can find the whole changelog history over at react-native-releases.

    ... (truncated)

    Commits
    • 83425fa [0.62.3] Bump version numbers
    • c6f4611 [local] change autolink to match requirements for FlipperFolly working with X...
    • c4ea556 [local] change podfile to rely on the autolink-ios rb file
    • ca09ae8 Update validateBaseUrl to use latest regex
    • 166a5dd Get ReactiveNative compiled with Clang 10 (#28362)
    • 158b558 [local] update detox to work on Xcode 12
    • b9944e5 [0.62.2] Bump version numbers
    • f89c509 Make Vibration.vibrate compatible with TurboModules (#27951)
    • 8858d87 Exclude all FlipperKit transitive dependencies from iOS Release builds (#28504)
    • 4fd9c9d Fix Appearance module when using Chrome Debugger
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    Reply
  • Bump react-native from 0.59.10 to 0.62.3 in /samples/ImageList
    Bump react-native from 0.59.10 to 0.62.3 in /samples/ImageList

    Jul 20, 2021

    Bumps react-native from 0.59.10 to 0.62.3.

    Release notes

    Sourced from react-native's releases.

    v0.62.3

    This patch release is specifically targetted towards Xcode 12.5. The changes done are tailored to unblock developers still relying on v0.62 of RN.

    Aside from bumping your version from 0.62.2 to 0.62.3, please make sure to add this line to your podfile (or modify it if you already had it):

    use_flipper!('Flipper' => '0.75.1', 'Flipper-Folly' => '2.5.3', 'Flipper-RSocket' => '1.3.1')
    

    After which, do all the classic necessary cleans (node_modules, caches, pod folders, etc)(react-native-clean-project is your ally) then do yarn install and a pod install --repo-update (if pod install fails on an error about a Flipper package, just remove the relevant lines from the podfile.lock and run the pod install again).

    The only other commit picked & released along the Xcode 12.5 fixes is:

    • Update validateBaseUrl to use latest regex (commit) which fixes CVE-2020-1920, GHSL-2020-293.

    To help you upgrade to this version, you can use the upgrade helper ⚛️


    You can find the whole changelog history over at react-native-releases.

    v0.62.2

    This release fixes a few minor issues that were reported by the community. You can view the complete changelog here.

    You can participate in the conversation for the next patch release in the dedicated issue.


    To help you upgrade to this version, you can use the new upgrade helper ⚛️


    You can find the whole changelog history over at react-native-releases.

    v0.62.1

    This release fixes a YellowBox regression in v0.62.0 where the Flipper network inspector causes YellowBox to crash the app due to using base64 images.

    You can view the complete changelog here.

    You can participate in the conversation for the next patch release in the dedicated issue.


    To help you upgrade to this version, you can use the new upgrade helper ⚛️


    You can find the whole changelog history over at react-native-releases.

    ... (truncated)

    Commits
    • 83425fa [0.62.3] Bump version numbers
    • c6f4611 [local] change autolink to match requirements for FlipperFolly working with X...
    • c4ea556 [local] change podfile to rely on the autolink-ios rb file
    • ca09ae8 Update validateBaseUrl to use latest regex
    • 166a5dd Get ReactiveNative compiled with Clang 10 (#28362)
    • 158b558 [local] update detox to work on Xcode 12
    • b9944e5 [0.62.2] Bump version numbers
    • f89c509 Make Vibration.vibrate compatible with TurboModules (#27951)
    • 8858d87 Exclude all FlipperKit transitive dependencies from iOS Release builds (#28504)
    • 4fd9c9d Fix Appearance module when using Chrome Debugger
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    Reply
  • Bump react-native from 0.59.10 to 0.62.3 in /samples/hello-world-js
    Bump react-native from 0.59.10 to 0.62.3 in /samples/hello-world-js

    Jul 20, 2021

    Bumps react-native from 0.59.10 to 0.62.3.

    Release notes

    Sourced from react-native's releases.

    v0.62.3

    This patch release is specifically targetted towards Xcode 12.5. The changes done are tailored to unblock developers still relying on v0.62 of RN.

    Aside from bumping your version from 0.62.2 to 0.62.3, please make sure to add this line to your podfile (or modify it if you already had it):

    use_flipper!('Flipper' => '0.75.1', 'Flipper-Folly' => '2.5.3', 'Flipper-RSocket' => '1.3.1')
    

    After which, do all the classic necessary cleans (node_modules, caches, pod folders, etc)(react-native-clean-project is your ally) then do yarn install and a pod install --repo-update (if pod install fails on an error about a Flipper package, just remove the relevant lines from the podfile.lock and run the pod install again).

    The only other commit picked & released along the Xcode 12.5 fixes is:

    • Update validateBaseUrl to use latest regex (commit) which fixes CVE-2020-1920, GHSL-2020-293.

    To help you upgrade to this version, you can use the upgrade helper ⚛️


    You can find the whole changelog history over at react-native-releases.

    v0.62.2

    This release fixes a few minor issues that were reported by the community. You can view the complete changelog here.

    You can participate in the conversation for the next patch release in the dedicated issue.


    To help you upgrade to this version, you can use the new upgrade helper ⚛️


    You can find the whole changelog history over at react-native-releases.

    v0.62.1

    This release fixes a YellowBox regression in v0.62.0 where the Flipper network inspector causes YellowBox to crash the app due to using base64 images.

    You can view the complete changelog here.

    You can participate in the conversation for the next patch release in the dedicated issue.


    To help you upgrade to this version, you can use the new upgrade helper ⚛️


    You can find the whole changelog history over at react-native-releases.

    ... (truncated)

    Commits
    • 83425fa [0.62.3] Bump version numbers
    • c6f4611 [local] change autolink to match requirements for FlipperFolly working with X...
    • c4ea556 [local] change podfile to rely on the autolink-ios rb file
    • ca09ae8 Update validateBaseUrl to use latest regex
    • 166a5dd Get ReactiveNative compiled with Clang 10 (#28362)
    • 158b558 [local] update detox to work on Xcode 12
    • b9944e5 [0.62.2] Bump version numbers
    • f89c509 Make Vibration.vibrate compatible with TurboModules (#27951)
    • 8858d87 Exclude all FlipperKit transitive dependencies from iOS Release builds (#28504)
    • 4fd9c9d Fix Appearance module when using Chrome Debugger
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    Reply
  • Bump react-native from 0.62.2 to 0.62.3 in /samples/TodoList
    Bump react-native from 0.62.2 to 0.62.3 in /samples/TodoList

    Jul 20, 2021

    Bumps react-native from 0.62.2 to 0.62.3.

    Release notes

    Sourced from react-native's releases.

    v0.62.3

    This patch release is specifically targetted towards Xcode 12.5. The changes done are tailored to unblock developers still relying on v0.62 of RN.

    Aside from bumping your version from 0.62.2 to 0.62.3, please make sure to add this line to your podfile (or modify it if you already had it):

    use_flipper!('Flipper' => '0.75.1', 'Flipper-Folly' => '2.5.3', 'Flipper-RSocket' => '1.3.1')
    

    After which, do all the classic necessary cleans (node_modules, caches, pod folders, etc)(react-native-clean-project is your ally) then do yarn install and a pod install --repo-update (if pod install fails on an error about a Flipper package, just remove the relevant lines from the podfile.lock and run the pod install again).

    The only other commit picked & released along the Xcode 12.5 fixes is:

    • Update validateBaseUrl to use latest regex (commit) which fixes CVE-2020-1920, GHSL-2020-293.

    To help you upgrade to this version, you can use the upgrade helper ⚛️


    You can find the whole changelog history over at react-native-releases.

    Commits
    • 83425fa [0.62.3] Bump version numbers
    • c6f4611 [local] change autolink to match requirements for FlipperFolly working with X...
    • c4ea556 [local] change podfile to rely on the autolink-ios rb file
    • ca09ae8 Update validateBaseUrl to use latest regex
    • 166a5dd Get ReactiveNative compiled with Clang 10 (#28362)
    • 158b558 [local] update detox to work on Xcode 12
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    Reply
  • ReactXP not compatible with react-native 0.65 without patch
    ReactXP not compatible with react-native 0.65 without patch

    Aug 23, 2021

    AccessibilityInfo.fetch was finally removed, this PR needs a merge+release for ReactXP to work with react-native 0.65+: #1126

    If anyone else runs into this, there's a patch-package / https://github.com/ds300/patch-package format patch attached on the PR, works

    Reply
  • Bump tmpl from 1.0.4 to 1.0.5 in /samples/hello-world-js
    Bump tmpl from 1.0.4 to 1.0.5 in /samples/hello-world-js

    Sep 20, 2021

    Bumps tmpl from 1.0.4 to 1.0.5.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    Reply
  • React-Native 0.65 compatibility / Forward-port Accessibility to react-native 0.60 API (#1125)
    React-Native 0.65 compatibility / Forward-port Accessibility to react-native 0.60 API (#1125)

    Aug 8, 2019

    React-Native 0.59 -> 0.60 changed a lot of the AccessibilityInfo API, and this does a straight forward-port of existing functionality (screen reader status detection) to the new API.

    Here is the related PR https://github.com/facebook/react-native-website/pull/835

    And the doc with new APIs https://facebook.github.io/react-native/docs/accessibilityinfo

    This depends on the PR here for types I believe https://github.com/DefinitelyTyped/DefinitelyTyped/pull/37486

    There is an opportunity to also expand API coverage to cover the other new accessibility features react-native exposes but if this is desired it might be best to do it separately? Additionally the majority are iOS-specific so if I proposed that change I'd need some guidance.

    Fixes #1319

    Reply
  • unable to run TodoList example on android
    unable to run TodoList example on android

    Jun 28, 2020

    hello i execute npm run start-android on TodoList example but stay forever on [17:46:20] Finished 'run' after 6.88 s complete log:

    npm run start-android

    [email protected] start-android C:\Users\Golfredo\Documents\reactxp\TodoList npm install && npm run gulp-android

    npm WARN @react-native-community/[email protected] requires a peer of [email protected]^0.59.0 but none is installed. You must install peer dependencies yourself. npm WARN [email protected] requires a peer of [email protected] but none is installed. You must install peer dependencies yourself. npm WARN [email protected] requires a peer of [email protected] but none is installed. You must install peer dependencies yourself. npm WARN [email protected] requires a peer of [email protected]~0.59.0 but none is installed. You must install peer dependencies yourself. npm WARN [email protected] requires a peer of [email protected]^0.57.1 but none is installed. You must install peer dependencies yourself. npm WARN [email protected] requires a peer of [email protected]^0.57.1 but none is installed. You must install peer dependencies yourself. npm WARN [email protected] requires a peer of [email protected]^0.57.1 but none is installed. You must install peer dependencies yourself. npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

    up to date in 24.725s

    1 package is looking for funding run npm fund for details

    [email protected] gulp-android C:\Users\Golfredo\Documents\reactxp\TodoList cross-env NODE_ENV=development node node_modules/gulp/bin/gulp run --platform=android

    [17:46:13] platform: android [17:46:13] developer mode: enabled [17:46:13] source maps: true [17:46:13] Using gulpfile ~\Documents\reactxp\TodoList\gulpfile.js [17:46:13] Starting 'run'... [17:46:13] Starting 'clean'... [17:46:13] Finished 'clean' after 121 ms [17:46:13] Starting 'copy'... [17:46:13] Finished 'copy' after 165 ms [17:46:13] Starting 'build'... [17:46:13] Starting 'copy'... [17:46:14] Finished 'copy' after 75 ms [17:46:14] Starting 'compile-rn'... [17:46:18] Finished 'compile-rn' after 4.74 s [17:46:18] Finished 'build' after 4.82 s [17:46:18] Starting 'apply-aliases'... (node:3028) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. (Use node --trace-deprecation ... to show where the warning was created) [17:46:19] Finished 'apply-aliases' after 224 ms [17:46:19] Starting 'watch'... [17:46:19] Finished 'watch' after 31 ms [17:46:19] Starting 'noop'... [17:46:19] Finished 'noop' after 958 μs [17:46:19] Starting 'lint'... [17:46:19] Starting 'ts-lint'... C:/Users/Golfredo/Documents/reactxp/TodoList/src/ts/controls/Modal.tsx:85:5 ERROR: 85:5 function-name Method name does not match /^[a-z]\w+$/: UNSAFE_componentWillMount ERROR: 113:5 function-name Method name does not match /^[a-z]\w+$/: UNSAFE_componentWillUpdate

    [17:46:20] Finished 'ts-lint' after 1.39 s [17:46:20] Starting 'gulpfile-lint'... [17:46:20] Finished 'gulpfile-lint' after 116 ms [17:46:20] Finished 'lint' after 1.51 s [17:46:20] Finished 'run' after 6.88 s

    Reply
  • RX.FastText for plain text?
    RX.FastText for plain text?

    Nov 7, 2017

    In UWP there are two elements for rendering text: RichTextBlock and TextBlock. The latter is faster, but supports only plain text. Hence there is a proposal to implement this in RNW: https://github.com/Microsoft/react-native-windows/pull/1256

    The original idea was to choose RichTextBlock or TextBlock on the fly, based on the text content: if text has no markup, RNW creates a TextBlock. However it was pointed out that this will cause problems with Narrator: if a TextBlock is swapped with a RichTextBlock while Narrator had a focus on it, the focus will be lost. This is why it was decided to make this feature opt-in.

    We've been discussing two options:

    1. A new flag like <RX.Text fast=true>abc</RX.Text> would tell RNW to dynamically switch between RichTextBlock and TextBlock.
    2. A new element <RX.FastText value="abc"/> would render only plain text and would always create a XAML TextBlock.

    Any thoughts?

    enhancement 
    Reply
  • Improvement : Add the testID prop to the supported native components
    Improvement : Add the testID prop to the supported native components

    Mar 21, 2018

    In order to safely use a test framework like Detox, we have to rely on the React Native's testID prop that is not exposed yet.

    feature request 
    Reply
  • How do I use other React Native libraries etc...in a ReactXP project?
    How do I use other React Native libraries etc...in a ReactXP project?

    Dec 16, 2017

    I'm new to a lot of stuff, I have been playing with ReactXP and like it a lot...

    In general, let's say I have a "pure" React Native folder/project....

    In order to use a library for RN, I would do something like this npm i react-native-elements --save

    But if I do the same for a ReactXP project, it will install the library folder inside node-modules folder. But when I try to use it I get a whole bunch of typescript compile errors when I compile the typescript file that imports the npm-ed library.

    Is there a procedure that I need to use or go throught, to be able to use "regular" React-Native libraries/kits?

    Reply
  • (How to) Disable GestureView in underlying layers?
    (How to) Disable GestureView in underlying layers?

    Oct 2, 2018

    Hello,

    we use a RX.GestureView inside a RX.ScrollView to recognize pan gestures. In case something is rendered above our view (wich can happen without our view knowing), we would like to disable the feature, that the GestureView receives the gestures.

    I expected, there might be a way like state.stopPropagation(), so I could implement an own RX.GestureView in my blurred alpha background view, which absorbs all events.

    bildschirmfoto 2018-10-02 um 18 08 08

    In my case, you are able to move/resize the overlayed views, which is really not desired.

    Looking forward for a suggestion to solve this. Am I missing something?

    Regards, Sascha

    Reply
  • RX.TextInput default value always returns error/warning
    RX.TextInput default value always returns error/warning

    Sep 25, 2017

    When trying to set a default value on page load, I always get this error: screen shot 2017-09-25 at 6 00 21 pm

    This is the simplest example that produces the error:

    import React from 'react'
    import RX from 'reactxp'
    
    export default class TextInputValue extends RX.Component {
      constructor(props) {
        super(props);
    
        this.state = {
            inputValue: 'hello'
        };
      }
    
      onChangeTextValue = (value) => {
        this.setState({ inputValue: value });
      }
    
      render() {
        return (
          <RX.TextInput
            placeholder="Placeholder"
            value={ this.state.inputValue }
            onChangeText={this.onChangeTextValue}
            // defaultValue={ this.state.inputValue }
            />
        );
      }
    }
    

    I tested as is (with value) alone and also tested with defaultValue alone, but no matter what, I keep getting that error. I would rather not use the defaultValue and instead have the value prop pull in the default text from state. That way I can reuse the same field for inputting text as well as editing it, with the value being assigned its state from inputValue.

    Any idea how to fix this to get rid of the pesky error?

    bug 
    Reply
  • ReactNative >= 0.44?
    ReactNative >= 0.44?

    Aug 21, 2017

    Hey guys, I´ve seen that there is some break changes on react native >= 0.44 but i couldn't find any feed back on when that will be done. I´m waiting for >= 0.45 and just kindle would like to know how that is going on? Any news or an idea when that will happen?

    Tks

    Reply
  • Image Component (Local/Remote) source not rendering?
    Image Component (Local/Remote) source not rendering?

    Jun 23, 2017

    As a sibling to the src directory, I created an images directory with a react.png in it (I grabbed a copy from the remote url in the gist, and placed it in the local directory to test it).

    I added the test to MainPanel here is the gist and defined the image style and the RX.Image respectively.

    Here is what I see on both platforms: reactxp-image

    It seems like it's not working with the same source url api for both platforms?

    Reply
  • use react-navigation!
    use react-navigation!

    Apr 8, 2017

    https://microsoft.github.io/reactxp/docs/components/navigator.html

    my guess is that when you guys built this there is no react-navigation, is it possible to adopt https://reactnavigation.org/ instead of creating one more navigation lib/API, we already have plenty now ;)

    feature request 
    Reply