mirror of
https://github.com/status-im/react-native.git
synced 2025-01-10 17:45:59 +00:00
6a14f0b449
Summary: This decouples non-UI logic from RCTDevMenu into a new module RCTDevSettings. **Motivation**: This allows developers to change dev settings without depending on the built-in dev menu, e.g. if they want to introduce their own UI, or have other devtools logic that doesn't depend on an action sheet. It also introduces the RCTDevSettingsDataSource protocol for storing dev tools preferences. This could allow a developer to implement alternative behaviors, e.g. loading the settings from some other config, changing settings based on the user, deciding not to persist some settings, or something else. The included data source implementation, RCTDevSettingsUserDefaultsDataSource, uses NSUserDefaults and is backwards compatible with the older implementation, so **no workflows or dependent code will break, and old saved settings will persist.** The RCTDevMenu interface has not changed and is therefore also backwards-compatible, though some methods are now deprecated. In order to ensure that RCTDevSettings Closes https://github.com/facebook/react-native/pull/11613 Reviewed By: mmmulani Differential Revision: D4571773 Pulled By: javache fbshipit-source-id: 25555d0a6eaa81f694343e079ed02439e5845fbc