From 549e5a87ac22b300758abcef0749f1ac59c46133 Mon Sep 17 00:00:00 2001 From: Ankit Tiwari Date: Tue, 25 Aug 2020 19:27:39 -0700 Subject: [PATCH 1/2] RNTester UI Redesign (#29685) Summary: This Pull request adds the UI changes to the RNTester app as discussed in the MLH Fellowship. ## Changelog This list is not exhaustive. - The initial App screen is redesigned. - A bottom Navbar has been added. - Filter pills are added. - The list card UI is updated. - The example page UI is updated. - Recently Viewed Sections are added. It shows the last 5 recently viewed components/APIs. - Bookmarking functionality is added. - The documentation URL is added to the example page. - RNTester doesn't lose its state on a hard refresh (even on iOS). # Screenshots Pull Request resolved: https://github.com/facebook/react-native/pull/29685 Test Plan: Imported from GitHub, without a `Test Plan:` line. # Tested RNTester in Catalyst {F302717939} # Tested in RNTester in Facebook Note: this failed **before** this diff too: {F302745716} Reviewed By: mdvacca, cpojer Differential Revision: D23240434 fbshipit-source-id: 65e2766a6a097eca0e0d0fda8dadf6871e9276c2 --- .../rn-tester/e2e/__tests__/Button-test.js | 4 +- .../e2e/__tests__/DatePickerIOS-test.js | 4 +- .../rn-tester/e2e/__tests__/Picker-test.js | 4 +- .../rn-tester/e2e/__tests__/TextInput-test.js | 2 +- .../rn-tester/e2e/__tests__/Touchable-test.js | 4 +- packages/rn-tester/e2e/test-init.js | 2 +- packages/rn-tester/js/RNTesterApp.android.js | 282 ++++++------- packages/rn-tester/js/RNTesterApp.ios.js | 183 +++++++-- .../rn-tester/js/assets/bookmark-filled.png | Bin 0 -> 217 bytes .../js/assets/bookmark-outline-blue.png | Bin 0 -> 1034 bytes .../js/assets/bookmark-outline-gray.png | Bin 0 -> 1076 bytes .../rn-tester/js/assets/bookmark-outline.png | Bin 0 -> 260 bytes .../js/assets/bottom-nav-apis-icon-active.png | Bin 0 -> 1870 bytes .../assets/bottom-nav-apis-icon-inactive.png | Bin 0 -> 1953 bytes .../js/assets/bottom-nav-bookmark-fill.png | Bin 0 -> 768 bytes .../js/assets/bottom-nav-bookmark-outline.png | Bin 0 -> 929 bytes .../js/assets/bottom-nav-center-box.png | Bin 0 -> 1340 bytes .../bottom-nav-components-icon-active.png | Bin 0 -> 1047 bytes .../bottom-nav-components-icon-inactive.png | Bin 0 -> 1026 bytes .../rn-tester/js/assets/documentation.png | Bin 0 -> 314 bytes packages/rn-tester/js/assets/empty.png | Bin 0 -> 22827 bytes .../js/assets/header-back-button.png | Bin 0 -> 446 bytes packages/rn-tester/js/assets/search-icon.png | Bin 0 -> 1728 bytes .../rn-tester/js/components/ExamplePage.js | 100 +++++ .../rn-tester/js/components/RNTesterBlock.js | 102 ++--- .../js/components/RNTesterBookmark.js | 38 ++ .../js/components/RNTesterBookmarkButton.js | 62 +++ .../js/components/RNTesterComponentTitle.js | 45 ++ .../js/components/RNTesterDocumentationURL.js | 39 ++ .../js/components/RNTesterExampleContainer.js | 38 +- .../js/components/RNTesterExampleFilter.js | 150 +++++-- .../js/components/RNTesterExampleList.js | 386 +++++++++++++++--- .../js/components/RNTesterListFilters.js | 94 +++++ .../rn-tester/js/components/RNTesterNavbar.js | 194 +++++++++ .../rn-tester/js/components/RNTesterTheme.js | 6 + .../rn-tester/js/components/TextLegend.js | 3 +- packages/rn-tester/js/components/UseCase.js | 40 ++ .../Accessibility/AccessibilityExample.js | 1 + .../ActionSheetIOS/ActionSheetIOSExample.js | 1 + .../ActivityIndicatorExample.js | 4 +- .../js/examples/Alert/AlertExample.js | 1 + .../js/examples/Animated/AnimatedExample.js | 2 + .../js/examples/AppState/AppStateExample.js | 2 + .../examples/Appearance/AppearanceExample.js | 2 + .../AsyncStorage/AsyncStorageExample.js | 103 ----- .../js/examples/Border/BorderExample.js | 1 + .../js/examples/BoxShadow/BoxShadowExample.js | 1 + .../js/examples/Button/ButtonExample.js | 4 +- .../js/examples/Clipboard/ClipboardExample.js | 68 --- .../js/examples/Crash/CrashExample.js | 1 + .../DatePicker/DatePickerAndroidExample.js | 170 -------- .../DatePicker/DatePickerIOSExample.js | 150 ------- .../DevSettings/DevSettingsExample.js | 2 + .../examples/Dimensions/DimensionsExample.js | 2 + .../js/examples/FlatList/FlatListExample.js | 4 +- .../js/examples/Image/ImageExample.js | 4 +- .../InputAccessoryViewExample.js | 2 +- .../JSResponderHandlerExample.js | 3 +- .../KeyboardAvoidingViewExample.js | 4 +- .../examples/Layout/LayoutAnimationExample.js | 2 + .../js/examples/Layout/LayoutEventsExample.js | 1 + .../js/examples/Layout/LayoutExample.js | 1 + .../js/examples/Linking/LinkingExample.js | 2 + .../examples/MaskedView/MaskedViewExample.js | 236 ----------- .../js/examples/Modal/ModalExample.js | 4 +- .../MultiColumn/MultiColumnExample.js | 3 +- .../NativeAnimationsExample.js | 1 + .../OrientationChangeExample.js | 1 + .../PanResponder/PanResponderExample.js | 2 + .../PermissionsAndroid/PermissionsExample.js | 1 + .../js/examples/Picker/PickerExample.js | 220 ---------- .../js/examples/Picker/PickerIOSExample.js | 190 --------- .../PlatformColor/PlatformColorExample.js | 2 + .../PointerEvents/PointerEventsExample.js | 1 + .../js/examples/Pressable/PressableExample.js | 4 +- .../ProgressBarAndroidExample.android.js | 94 ----- .../ProgressViewIOS/ProgressViewIOSExample.js | 103 ----- .../PushNotificationIOSExample.js | 267 ------------ .../RCTRootView/RCTRootViewIOSExample.js | 1 + .../rn-tester/js/examples/RTL/RTLExample.js | 9 +- .../RefreshControl/RefreshControlExample.js | 4 +- .../SafeAreaView/SafeAreaViewExample.js | 4 +- .../ScrollView/ScrollViewAnimatedExample.js | 3 +- .../examples/ScrollView/ScrollViewExample.js | 4 +- .../ScrollView/ScrollViewSimpleExample.js | 3 +- .../SectionList/SectionListExample.js | 4 +- .../SegmentedControlExampleComponents.js | 114 ------ .../SegmentedControlIOSExample.js | 63 --- .../js/examples/Share/ShareExample.js | 2 + .../js/examples/Slider/SliderExample.js | 136 ------ .../js/examples/Snapshot/SnapshotExample.js | 1 + .../js/examples/StatusBar/StatusBarExample.js | 4 +- .../js/examples/Switch/SwitchExample.js | 4 +- .../TVEventHandler/TVEventHandlerExample.js | 1 + .../js/examples/Text/TextExample.android.js | 4 +- .../js/examples/Text/TextExample.ios.js | 4 +- .../TextInput/TextInputExample.android.js | 4 +- .../TextInput/TextInputExample.ios.js | 4 +- .../js/examples/Timer/TimerExample.js | 1 + .../ToastAndroidExample.android.js | 1 + .../js/examples/Touchable/TouchableExample.js | 4 +- .../js/examples/Transform/TransformExample.js | 2 + .../TransparentHitTestExample.js | 3 +- .../TurboModule/TurboModuleExample.js | 1 + .../js/examples/Vibration/VibrationExample.js | 2 + .../rn-tester/js/examples/View/ViewExample.js | 4 +- .../js/examples/WebSocket/WebSocketExample.js | 1 + .../rn-tester/js/examples/XHR/XHRExample.js | 1 + packages/rn-tester/js/types/RNTesterTypes.js | 5 + .../rn-tester/js/utils/RNTesterActions.js | 8 +- .../utils/RNTesterAsyncStorageAbstraction.js | 190 +++++++++ .../js/utils/RNTesterList.android.js | 70 ++-- .../rn-tester/js/utils/RNTesterList.ios.js | 111 +++-- .../js/utils/RNTesterNavigationReducer.js | 31 +- .../js/utils/RNTesterStatePersister.js | 2 +- 115 files changed, 1854 insertions(+), 2405 deletions(-) create mode 100755 packages/rn-tester/js/assets/bookmark-filled.png create mode 100644 packages/rn-tester/js/assets/bookmark-outline-blue.png create mode 100644 packages/rn-tester/js/assets/bookmark-outline-gray.png create mode 100755 packages/rn-tester/js/assets/bookmark-outline.png create mode 100644 packages/rn-tester/js/assets/bottom-nav-apis-icon-active.png create mode 100644 packages/rn-tester/js/assets/bottom-nav-apis-icon-inactive.png create mode 100644 packages/rn-tester/js/assets/bottom-nav-bookmark-fill.png create mode 100644 packages/rn-tester/js/assets/bottom-nav-bookmark-outline.png create mode 100644 packages/rn-tester/js/assets/bottom-nav-center-box.png create mode 100644 packages/rn-tester/js/assets/bottom-nav-components-icon-active.png create mode 100644 packages/rn-tester/js/assets/bottom-nav-components-icon-inactive.png create mode 100644 packages/rn-tester/js/assets/documentation.png create mode 100644 packages/rn-tester/js/assets/empty.png create mode 100644 packages/rn-tester/js/assets/header-back-button.png create mode 100644 packages/rn-tester/js/assets/search-icon.png create mode 100644 packages/rn-tester/js/components/ExamplePage.js create mode 100644 packages/rn-tester/js/components/RNTesterBookmark.js create mode 100644 packages/rn-tester/js/components/RNTesterBookmarkButton.js create mode 100644 packages/rn-tester/js/components/RNTesterComponentTitle.js create mode 100644 packages/rn-tester/js/components/RNTesterDocumentationURL.js create mode 100644 packages/rn-tester/js/components/RNTesterListFilters.js create mode 100644 packages/rn-tester/js/components/RNTesterNavbar.js create mode 100644 packages/rn-tester/js/components/UseCase.js delete mode 100644 packages/rn-tester/js/examples/AsyncStorage/AsyncStorageExample.js delete mode 100644 packages/rn-tester/js/examples/Clipboard/ClipboardExample.js delete mode 100644 packages/rn-tester/js/examples/DatePicker/DatePickerAndroidExample.js delete mode 100644 packages/rn-tester/js/examples/DatePicker/DatePickerIOSExample.js delete mode 100644 packages/rn-tester/js/examples/MaskedView/MaskedViewExample.js delete mode 100644 packages/rn-tester/js/examples/Picker/PickerExample.js delete mode 100644 packages/rn-tester/js/examples/Picker/PickerIOSExample.js delete mode 100644 packages/rn-tester/js/examples/ProgressBarAndroid/ProgressBarAndroidExample.android.js delete mode 100644 packages/rn-tester/js/examples/ProgressViewIOS/ProgressViewIOSExample.js delete mode 100644 packages/rn-tester/js/examples/PushNotificationIOS/PushNotificationIOSExample.js delete mode 100644 packages/rn-tester/js/examples/SegmentedControlIOS/SegmentedControlExampleComponents.js delete mode 100644 packages/rn-tester/js/examples/SegmentedControlIOS/SegmentedControlIOSExample.js delete mode 100644 packages/rn-tester/js/examples/Slider/SliderExample.js create mode 100644 packages/rn-tester/js/utils/RNTesterAsyncStorageAbstraction.js diff --git a/packages/rn-tester/e2e/__tests__/Button-test.js b/packages/rn-tester/e2e/__tests__/Button-test.js index c43fdb05d6b87f..53588b168a525a 100644 --- a/packages/rn-tester/e2e/__tests__/Button-test.js +++ b/packages/rn-tester/e2e/__tests__/Button-test.js @@ -18,8 +18,8 @@ describe('Button', () => { beforeAll(async () => { await device.reloadReactNative(); await openComponentWithLabel( - '