@testing-library/react-native 12.2.1 → 12.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/config.d.ts +1 -0
- package/build/config.js.map +1 -1
- package/build/fireEvent.js +2 -1
- package/build/fireEvent.js.map +1 -1
- package/build/helpers/accessiblity.d.ts +7 -0
- package/build/helpers/accessiblity.js +73 -2
- package/build/helpers/accessiblity.js.map +1 -1
- package/build/helpers/component-tree.d.ts +7 -0
- package/build/helpers/component-tree.js +18 -0
- package/build/helpers/component-tree.js.map +1 -1
- package/build/helpers/format-default.d.ts +1 -2
- package/build/helpers/format-default.js +22 -13
- package/build/helpers/format-default.js.map +1 -1
- package/build/helpers/format.js +1 -4
- package/build/helpers/format.js.map +1 -1
- package/build/helpers/host-component-names.d.ts +5 -0
- package/build/helpers/host-component-names.js +13 -1
- package/build/helpers/host-component-names.js.map +1 -1
- package/build/helpers/matchers/accessibilityState.js +3 -3
- package/build/helpers/matchers/accessibilityState.js.map +1 -1
- package/build/helpers/matchers/accessibilityValue.js +3 -2
- package/build/helpers/matchers/accessibilityValue.js.map +1 -1
- package/build/helpers/matchers/matchLabelText.d.ts +1 -1
- package/build/helpers/matchers/matchLabelText.js +5 -8
- package/build/helpers/matchers/matchLabelText.js.map +1 -1
- package/build/helpers/matchers/matchTextContent.js +2 -2
- package/build/helpers/matchers/matchTextContent.js.map +1 -1
- package/build/helpers/{getTextContent.js → text-content.js} +1 -1
- package/build/helpers/text-content.js.map +1 -0
- package/build/helpers/text-input.d.ts +3 -0
- package/build/helpers/text-input.js +21 -0
- package/build/helpers/text-input.js.map +1 -0
- package/build/matchers/extend-expect.d.js +2 -0
- package/build/matchers/extend-expect.d.js.map +1 -0
- package/build/matchers/extend-expect.d.ts +2 -0
- package/build/matchers/extend-expect.js +26 -0
- package/build/matchers/extend-expect.js.map +1 -0
- package/build/matchers/index.d.ts +9 -0
- package/build/matchers/index.js +75 -0
- package/build/matchers/index.js.map +1 -0
- package/build/matchers/to-be-checked.d.ts +6 -0
- package/build/matchers/to-be-checked.js +31 -0
- package/build/matchers/to-be-checked.js.map +1 -0
- package/build/matchers/to-be-disabled.d.ts +10 -0
- package/build/matchers/to-be-disabled.js +52 -0
- package/build/matchers/to-be-disabled.js.map +1 -0
- package/build/matchers/to-be-empty-element.d.ts +6 -0
- package/build/matchers/to-be-empty-element.js +20 -0
- package/build/matchers/to-be-empty-element.js.map +1 -0
- package/build/matchers/to-be-on-the-screen.d.ts +6 -0
- package/build/matchers/to-be-on-the-screen.js +29 -0
- package/build/matchers/to-be-on-the-screen.js.map +1 -0
- package/build/matchers/to-be-partially-checked.d.ts +6 -0
- package/build/matchers/to-be-partially-checked.js +28 -0
- package/build/matchers/to-be-partially-checked.js.map +1 -0
- package/build/matchers/to-be-visible.d.ts +6 -0
- package/build/matchers/to-be-visible.js +56 -0
- package/build/matchers/to-be-visible.js.map +1 -0
- package/build/matchers/to-have-display-value.d.ts +7 -0
- package/build/matchers/to-have-display-value.js +26 -0
- package/build/matchers/to-have-display-value.js.map +1 -0
- package/build/matchers/to-have-prop.d.ts +6 -0
- package/build/matchers/to-have-prop.js +35 -0
- package/build/matchers/to-have-prop.js.map +1 -0
- package/build/matchers/to-have-text-content.d.ts +7 -0
- package/build/matchers/to-have-text-content.js +21 -0
- package/build/matchers/to-have-text-content.js.map +1 -0
- package/build/matchers/utils.d.ts +18 -0
- package/build/matchers/utils.js +90 -0
- package/build/matchers/utils.js.map +1 -0
- package/build/matches.d.ts +1 -1
- package/build/matches.js.map +1 -1
- package/build/queries/displayValue.js +4 -3
- package/build/queries/displayValue.js.map +1 -1
- package/build/queries/labelText.js +2 -2
- package/build/queries/labelText.js.map +1 -1
- package/build/queries/role.js +1 -1
- package/build/queries/role.js.map +1 -1
- package/build/render.d.ts +12 -48
- package/build/user-event/clear.js +2 -1
- package/build/user-event/clear.js.map +1 -1
- package/build/user-event/press/press.js +2 -1
- package/build/user-event/press/press.js.map +1 -1
- package/build/user-event/type/type.js +2 -1
- package/build/user-event/type/type.js.map +1 -1
- package/build/user-event/utils/index.d.ts +0 -1
- package/build/user-event/utils/index.js +0 -11
- package/build/user-event/utils/index.js.map +1 -1
- package/package.json +6 -23
- package/.DS_Store +0 -0
- package/.codecov.yml +0 -9
- package/.eslintcache +0 -1
- package/.eslintignore +0 -3
- package/.eslintrc +0 -19
- package/.flowconfig +0 -63
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -14
- package/.github/ISSUE_TEMPLATE/question.md +0 -9
- package/.github/PULL_REQUEST_TEMPLATE.md +0 -10
- package/.github/actions/setup-deps/action.yml +0 -22
- package/.github/actions/setup-website-deps/action.yml +0 -22
- package/.github/dependabot.yml +0 -10
- package/.github/workflows/deploy-website.yml +0 -36
- package/.github/workflows/example-apps.yml +0 -25
- package/.github/workflows/main.yml +0 -103
- package/.gitignore +0 -11
- package/.prettierrc.js +0 -5
- package/CODE_OF_CONDUCT.md +0 -73
- package/CONTRIBUTING.md +0 -64
- package/babel.config.js +0 -22
- package/build/helpers/getTextContent.js.map +0 -1
- package/build/user-event/utils/host-components.d.ts +0 -2
- package/build/user-event/utils/host-components.js +0 -11
- package/build/user-event/utils/host-components.js.map +0 -1
- package/examples/basic/.expo/README.md +0 -15
- package/examples/basic/.expo/packager-info.json +0 -4
- package/examples/basic/.expo/settings.json +0 -10
- package/examples/basic/.expo-shared/assets.json +0 -4
- package/examples/basic/.gitignore +0 -14
- package/examples/basic/App.tsx +0 -20
- package/examples/basic/README.md +0 -11
- package/examples/basic/__tests__/App.test.tsx +0 -137
- package/examples/basic/app.json +0 -31
- package/examples/basic/assets/adaptive-icon.png +0 -0
- package/examples/basic/assets/favicon.png +0 -0
- package/examples/basic/assets/icon.png +0 -0
- package/examples/basic/assets/splash.png +0 -0
- package/examples/basic/babel.config.js +0 -6
- package/examples/basic/components/Home.tsx +0 -28
- package/examples/basic/components/LoginForm.tsx +0 -138
- package/examples/basic/jest-setup.ts +0 -7
- package/examples/basic/jest.config.js +0 -5
- package/examples/basic/package.json +0 -30
- package/examples/basic/tsconfig.json +0 -7
- package/examples/basic/yarn.lock +0 -7499
- package/examples/react-navigation/README.md +0 -16
- package/examples/react-navigation/babel.config.js +0 -4
- package/examples/react-navigation/jest-setup.js +0 -11
- package/examples/react-navigation/jest.config.js +0 -10
- package/examples/react-navigation/package.json +0 -31
- package/examples/react-navigation/src/App.js +0 -21
- package/examples/react-navigation/src/DrawerNavigator.js +0 -15
- package/examples/react-navigation/src/DrawerNavigator.test.js +0 -42
- package/examples/react-navigation/src/NativeStackNavigator.js +0 -15
- package/examples/react-navigation/src/NativeStackNavigator.test.js +0 -34
- package/examples/react-navigation/src/StackNavigator.js +0 -15
- package/examples/react-navigation/src/StackNavigator.test.js +0 -34
- package/examples/react-navigation/src/TabNavigator.js +0 -15
- package/examples/react-navigation/src/TabNavigator.test.js +0 -21
- package/examples/react-navigation/src/screens/DetailsScreen.js +0 -43
- package/examples/react-navigation/src/screens/DetailsScreen.test.js +0 -27
- package/examples/react-navigation/src/screens/DrawerHomeScreen.js +0 -26
- package/examples/react-navigation/src/screens/HomeScreen.js +0 -48
- package/examples/react-navigation/src/screens/SettingsScreen.js +0 -20
- package/examples/react-navigation/src/test-utils.js +0 -12
- package/examples/react-navigation/yarn.lock +0 -5018
- package/examples/redux/App.js +0 -27
- package/examples/redux/README.md +0 -5
- package/examples/redux/actions/todoActions.js +0 -25
- package/examples/redux/babel.config.js +0 -6
- package/examples/redux/components/AddTodo.js +0 -73
- package/examples/redux/components/AddTodo.test.js +0 -27
- package/examples/redux/components/TodoElem.js +0 -25
- package/examples/redux/components/TodoList.js +0 -29
- package/examples/redux/components/TodoList.test.js +0 -34
- package/examples/redux/index.js +0 -8
- package/examples/redux/jest-setup.js +0 -2
- package/examples/redux/jest.config.js +0 -4
- package/examples/redux/package.json +0 -23
- package/examples/redux/reducers/index.js +0 -6
- package/examples/redux/reducers/todoReducer.js +0 -27
- package/examples/redux/store.js +0 -10
- package/examples/redux/test-utils.js +0 -11
- package/examples/redux/yarn.lock +0 -4819
- package/experiments-app/.expo/README.md +0 -15
- package/experiments-app/.expo/devices.json +0 -3
- package/experiments-app/.expo/packager-info.json +0 -9
- package/experiments-app/.expo/settings.json +0 -9
- package/experiments-app/.gitignore +0 -17
- package/experiments-app/.prettierrc.js +0 -5
- package/experiments-app/app.json +0 -30
- package/experiments-app/assets/adaptive-icon.png +0 -0
- package/experiments-app/assets/favicon.png +0 -0
- package/experiments-app/assets/icon.png +0 -0
- package/experiments-app/assets/splash.png +0 -0
- package/experiments-app/babel.config.js +0 -6
- package/experiments-app/index.js +0 -4
- package/experiments-app/package.json +0 -29
- package/experiments-app/src/App.tsx +0 -31
- package/experiments-app/src/MainScreen.tsx +0 -52
- package/experiments-app/src/experiments.ts +0 -35
- package/experiments-app/src/screens/FlatListEvents.tsx +0 -57
- package/experiments-app/src/screens/ScrollViewEvents.tsx +0 -65
- package/experiments-app/src/screens/SectionListEvents.tsx +0 -91
- package/experiments-app/src/screens/TextInputEventPropagation.tsx +0 -42
- package/experiments-app/src/screens/TextInputEvents.tsx +0 -48
- package/experiments-app/src/utils/helpers.ts +0 -18
- package/experiments-app/tsconfig.json +0 -6
- package/experiments-app/yarn.lock +0 -6709
- package/experiments-rtl/.babelrc +0 -8
- package/experiments-rtl/.eslintrc.json +0 -3
- package/experiments-rtl/.gitignore +0 -35
- package/experiments-rtl/README.md +0 -34
- package/experiments-rtl/jest-setup.js +0 -1
- package/experiments-rtl/jest.config.js +0 -4
- package/experiments-rtl/next.config.js +0 -4
- package/experiments-rtl/package.json +0 -38
- package/experiments-rtl/postcss.config.js +0 -6
- package/experiments-rtl/public/next.svg +0 -1
- package/experiments-rtl/public/vercel.svg +0 -1
- package/experiments-rtl/src/app/__tests__/click.test.tsx +0 -31
- package/experiments-rtl/src/app/__tests__/managed-text-input.test.tsx +0 -51
- package/experiments-rtl/src/app/globals.css +0 -27
- package/experiments-rtl/src/app/layout.tsx +0 -22
- package/experiments-rtl/src/app/page.tsx +0 -113
- package/experiments-rtl/tailwind.config.ts +0 -20
- package/experiments-rtl/tsconfig.json +0 -28
- package/experiments-rtl/yarn.lock +0 -5418
- package/flow-typed/npm/jest_v26.x.x.js +0 -1218
- package/flow-typed/npm/react-test-renderer_v16.x.x.js +0 -81
- package/jest-setup.ts +0 -10
- package/renovate.json +0 -19
- package/scripts/test_react_17 +0 -12
- package/src/__tests__/__snapshots__/render-debug.test.tsx.snap +0 -548
- package/src/__tests__/__snapshots__/render.test.tsx.snap +0 -39
- package/src/__tests__/act.test.tsx +0 -56
- package/src/__tests__/auto-cleanup-skip.test.tsx +0 -39
- package/src/__tests__/auto-cleanup.test.tsx +0 -50
- package/src/__tests__/cleanup.test.tsx +0 -26
- package/src/__tests__/config.test.ts +0 -55
- package/src/__tests__/fireEvent-textInput.test.tsx +0 -154
- package/src/__tests__/fireEvent.test.tsx +0 -485
- package/src/__tests__/host-component-names.test.tsx +0 -109
- package/src/__tests__/host-text-nesting.test.tsx +0 -90
- package/src/__tests__/jest-native.test.tsx +0 -84
- package/src/__tests__/questionsBoard.test.tsx +0 -62
- package/src/__tests__/react-native-api.test.tsx +0 -126
- package/src/__tests__/render-debug.test.tsx +0 -207
- package/src/__tests__/render-stringValidation.test.tsx +0 -157
- package/src/__tests__/render.test.tsx +0 -256
- package/src/__tests__/renderHook.test.tsx +0 -114
- package/src/__tests__/screen.test.tsx +0 -66
- package/src/__tests__/timerUtils.ts +0 -7
- package/src/__tests__/timers.test.ts +0 -27
- package/src/__tests__/waitFor.test.tsx +0 -327
- package/src/__tests__/waitForElementToBeRemoved.test.tsx +0 -151
- package/src/__tests__/within.test.tsx +0 -96
- package/src/act.ts +0 -86
- package/src/cleanup.ts +0 -15
- package/src/config.ts +0 -72
- package/src/fireEvent.ts +0 -159
- package/src/flush-micro-tasks.ts +0 -30
- package/src/helpers/__tests__/accessiblity.test.tsx +0 -373
- package/src/helpers/__tests__/component-tree.test.tsx +0 -226
- package/src/helpers/__tests__/format-default.tsx +0 -114
- package/src/helpers/__tests__/getTextContent.test.tsx +0 -49
- package/src/helpers/__tests__/includeHiddenElements.test.tsx +0 -39
- package/src/helpers/__tests__/query-name.test.ts +0 -10
- package/src/helpers/__tests__/timers.test.ts +0 -8
- package/src/helpers/accessiblity.ts +0 -108
- package/src/helpers/component-tree.ts +0 -94
- package/src/helpers/debugDeep.ts +0 -27
- package/src/helpers/debugShallow.ts +0 -22
- package/src/helpers/deprecation.ts +0 -53
- package/src/helpers/errors.ts +0 -66
- package/src/helpers/findAll.ts +0 -70
- package/src/helpers/format-default.ts +0 -72
- package/src/helpers/format.ts +0 -47
- package/src/helpers/getTextContent.ts +0 -20
- package/src/helpers/host-component-names.tsx +0 -88
- package/src/helpers/matchers/__tests__/matchArrayValue.test.ts +0 -34
- package/src/helpers/matchers/__tests__/matchObject.test.ts +0 -37
- package/src/helpers/matchers/__tests__/matchStringValue.test.ts +0 -15
- package/src/helpers/matchers/accessibilityState.ts +0 -48
- package/src/helpers/matchers/accessibilityValue.ts +0 -24
- package/src/helpers/matchers/matchArrayProp.ts +0 -21
- package/src/helpers/matchers/matchLabelText.ts +0 -50
- package/src/helpers/matchers/matchObjectProp.ts +0 -25
- package/src/helpers/matchers/matchStringProp.ts +0 -23
- package/src/helpers/matchers/matchTextContent.ts +0 -20
- package/src/helpers/pointer-events.ts +0 -27
- package/src/helpers/query-name.ts +0 -4
- package/src/helpers/stringValidation.ts +0 -36
- package/src/helpers/timers.ts +0 -98
- package/src/index.ts +0 -33
- package/src/matches.ts +0 -49
- package/src/pure.ts +0 -27
- package/src/queries/__tests__/a11yState.test.tsx +0 -439
- package/src/queries/__tests__/a11yValue.test.tsx +0 -309
- package/src/queries/__tests__/displayValue.test.tsx +0 -221
- package/src/queries/__tests__/hintText.test.tsx +0 -177
- package/src/queries/__tests__/labelText.test.tsx +0 -242
- package/src/queries/__tests__/makeQueries.test.tsx +0 -235
- package/src/queries/__tests__/placeholderText.test.tsx +0 -136
- package/src/queries/__tests__/role-value.test.tsx +0 -176
- package/src/queries/__tests__/role.test.tsx +0 -824
- package/src/queries/__tests__/testId.test.tsx +0 -200
- package/src/queries/__tests__/text.test.tsx +0 -556
- package/src/queries/a11yState.ts +0 -127
- package/src/queries/a11yValue.ts +0 -127
- package/src/queries/displayValue.ts +0 -71
- package/src/queries/hintText.ts +0 -107
- package/src/queries/labelText.ts +0 -57
- package/src/queries/makeQueries.ts +0 -255
- package/src/queries/options.ts +0 -14
- package/src/queries/placeholderText.ts +0 -72
- package/src/queries/role.ts +0 -131
- package/src/queries/testId.ts +0 -66
- package/src/queries/text.ts +0 -63
- package/src/queries/unsafeProps.ts +0 -76
- package/src/queries/unsafeType.ts +0 -73
- package/src/react-versions.ts +0 -11
- package/src/render-act.ts +0 -19
- package/src/render.tsx +0 -183
- package/src/renderHook.tsx +0 -56
- package/src/screen.ts +0 -123
- package/src/shallow.ts +0 -18
- package/src/test-utils/events.ts +0 -24
- package/src/test-utils/index.ts +0 -1
- package/src/user-event/__tests__/__snapshots__/clear.test.tsx.snap +0 -269
- package/src/user-event/__tests__/clear.test.tsx +0 -217
- package/src/user-event/clear.ts +0 -59
- package/src/user-event/event-builder/common.ts +0 -66
- package/src/user-event/event-builder/index.ts +0 -7
- package/src/user-event/event-builder/text-input.ts +0 -86
- package/src/user-event/index.ts +0 -18
- package/src/user-event/press/__tests__/longPress.real-timers.test.tsx +0 -117
- package/src/user-event/press/__tests__/longPress.test.tsx +0 -157
- package/src/user-event/press/__tests__/press.real-timers.test.tsx +0 -320
- package/src/user-event/press/__tests__/press.test.tsx +0 -457
- package/src/user-event/press/constants.ts +0 -7
- package/src/user-event/press/index.ts +0 -1
- package/src/user-event/press/press.ts +0 -163
- package/src/user-event/setup/index.ts +0 -2
- package/src/user-event/setup/setup.ts +0 -142
- package/src/user-event/type/__tests__/__snapshots__/type-managed.test.tsx.snap +0 -339
- package/src/user-event/type/__tests__/__snapshots__/type.test.tsx.snap +0 -668
- package/src/user-event/type/__tests__/parseKeys.test.ts +0 -23
- package/src/user-event/type/__tests__/type-managed.test.tsx +0 -120
- package/src/user-event/type/__tests__/type.test.tsx +0 -335
- package/src/user-event/type/index.ts +0 -1
- package/src/user-event/type/parseKeys.ts +0 -41
- package/src/user-event/type/type.ts +0 -138
- package/src/user-event/utils/__tests__/dispatch-event.test.tsx +0 -41
- package/src/user-event/utils/__tests__/wait.test.ts +0 -62
- package/src/user-event/utils/content-size.ts +0 -25
- package/src/user-event/utils/dispatch-event.ts +0 -38
- package/src/user-event/utils/host-components.ts +0 -6
- package/src/user-event/utils/index.ts +0 -6
- package/src/user-event/utils/text-range.ts +0 -4
- package/src/user-event/utils/wait.ts +0 -15
- package/src/user-event/utils/warn-about-real-timers.ts +0 -13
- package/src/waitFor.ts +0 -228
- package/src/waitForElementToBeRemoved.ts +0 -42
- package/src/within.ts +0 -30
- package/tsconfig.json +0 -17
- package/tsconfig.release.json +0 -8
- package/website/.gitignore +0 -20
- package/website/README.md +0 -33
- package/website/docker/.dockerignore +0 -3
- package/website/docker/Dockerfile +0 -9
- package/website/docker/docker-compose.yml +0 -11
- package/website/docs/API.md +0 -940
- package/website/docs/EslintPLluginTestingLibrary.md +0 -28
- package/website/docs/FAQ.md +0 -44
- package/website/docs/GettingStarted.md +0 -100
- package/website/docs/HowShouldIQuery.md +0 -21
- package/website/docs/MigrationV11.md +0 -64
- package/website/docs/MigrationV12.md +0 -67
- package/website/docs/MigrationV2.md +0 -126
- package/website/docs/MigrationV7.md +0 -119
- package/website/docs/MigrationV9.md +0 -67
- package/website/docs/Queries.md +0 -572
- package/website/docs/ReactNavigation.md +0 -371
- package/website/docs/ReduxIntegration.md +0 -137
- package/website/docs/TestingEnvironment.md +0 -154
- package/website/docs/Troubleshooting.md +0 -44
- package/website/docs/UnderstandingAct.md +0 -227
- package/website/docs/UserEvent.md +0 -191
- package/website/docusaurus.config.js +0 -114
- package/website/package.json +0 -31
- package/website/sidebars.js +0 -20
- package/website/src/components/Feature.js +0 -31
- package/website/src/css/custom.css +0 -13
- package/website/src/css/index.module.css +0 -77
- package/website/src/pages/index.js +0 -82
- package/website/static/.nojekyll +0 -0
- package/website/static/css/custom.css +0 -28
- package/website/static/img/hit.png +0 -0
- package/website/static/img/locomotive.png +0 -0
- package/website/static/img/owl.png +0 -0
- package/website/static/img/tools.png +0 -0
- package/website/yarn.lock +0 -7669
- package/yarn.lock +0 -7765
- /package/build/helpers/{getTextContent.d.ts → text-content.d.ts} +0 -0
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
> Why do I have a folder named ".expo" in my project?
|
|
2
|
-
|
|
3
|
-
The ".expo" folder is created when an Expo project is started using "expo start" command.
|
|
4
|
-
|
|
5
|
-
> What do the files contain?
|
|
6
|
-
|
|
7
|
-
- "devices.json": contains information about devices that have recently opened this project. This is used to populate the "Development sessions" list in your development builds.
|
|
8
|
-
- "packager-info.json": contains port numbers and process PIDs that are used to serve the application to the mobile device/simulator.
|
|
9
|
-
- "settings.json": contains the server configuration that is used to serve the application manifest.
|
|
10
|
-
|
|
11
|
-
> Should I commit the ".expo" folder?
|
|
12
|
-
|
|
13
|
-
No, you should not share the ".expo" folder. It does not contain any information that is relevant for other developers working on the project, it is specific to your machine.
|
|
14
|
-
|
|
15
|
-
Upon project creation, the ".expo" folder is already added to your ".gitignore" file.
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
node_modules/
|
|
2
|
-
.expo/
|
|
3
|
-
dist/
|
|
4
|
-
npm-debug.*
|
|
5
|
-
*.jks
|
|
6
|
-
*.p8
|
|
7
|
-
*.p12
|
|
8
|
-
*.key
|
|
9
|
-
*.mobileprovision
|
|
10
|
-
*.orig.*
|
|
11
|
-
web-build/
|
|
12
|
-
|
|
13
|
-
# macOS
|
|
14
|
-
.DS_Store
|
|
15
|
-
|
|
16
|
-
# Temporary files created by Metro to check the health of the file watcher
|
|
17
|
-
.metro-health-check*
|
package/experiments-app/app.json
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"expo": {
|
|
3
|
-
"name": "experiments-app",
|
|
4
|
-
"slug": "experiments-app",
|
|
5
|
-
"version": "1.0.0",
|
|
6
|
-
"orientation": "portrait",
|
|
7
|
-
"icon": "./assets/icon.png",
|
|
8
|
-
"userInterfaceStyle": "light",
|
|
9
|
-
"splash": {
|
|
10
|
-
"image": "./assets/splash.png",
|
|
11
|
-
"resizeMode": "contain",
|
|
12
|
-
"backgroundColor": "#ffffff"
|
|
13
|
-
},
|
|
14
|
-
"assetBundlePatterns": [
|
|
15
|
-
"**/*"
|
|
16
|
-
],
|
|
17
|
-
"ios": {
|
|
18
|
-
"supportsTablet": true
|
|
19
|
-
},
|
|
20
|
-
"android": {
|
|
21
|
-
"adaptiveIcon": {
|
|
22
|
-
"foregroundImage": "./assets/adaptive-icon.png",
|
|
23
|
-
"backgroundColor": "#ffffff"
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
"web": {
|
|
27
|
-
"favicon": "./assets/favicon.png"
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/experiments-app/index.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "experiments-app",
|
|
3
|
-
"private": true,
|
|
4
|
-
"description": "Expo app for conducting experiments of React Native behaviour.",
|
|
5
|
-
"version": "1.0.0",
|
|
6
|
-
"main": "index.js",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"typecheck": "tsc -noEmit",
|
|
9
|
-
"start": "expo start",
|
|
10
|
-
"android": "expo start --android",
|
|
11
|
-
"ios": "expo start --ios",
|
|
12
|
-
"web": "expo start --web"
|
|
13
|
-
},
|
|
14
|
-
"dependencies": {
|
|
15
|
-
"@react-navigation/native": "^6.1.6",
|
|
16
|
-
"@react-navigation/native-stack": "^6.9.12",
|
|
17
|
-
"expo": "^49.0.0",
|
|
18
|
-
"expo-status-bar": "~1.6.0",
|
|
19
|
-
"react": "18.2.0",
|
|
20
|
-
"react-native": "0.72.3",
|
|
21
|
-
"react-native-safe-area-context": "4.6.3",
|
|
22
|
-
"react-native-screens": "~3.22.0"
|
|
23
|
-
},
|
|
24
|
-
"devDependencies": {
|
|
25
|
-
"@babel/core": "^7.20.0",
|
|
26
|
-
"@types/react": "~18.2.14",
|
|
27
|
-
"typescript": "^5.1.3"
|
|
28
|
-
}
|
|
29
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { StatusBar } from 'expo-status-bar';
|
|
3
|
-
import { NavigationContainer } from '@react-navigation/native';
|
|
4
|
-
import { createNativeStackNavigator } from '@react-navigation/native-stack';
|
|
5
|
-
import { MainScreen } from './MainScreen';
|
|
6
|
-
import { experiments } from './experiments';
|
|
7
|
-
|
|
8
|
-
const Stack = createNativeStackNavigator();
|
|
9
|
-
|
|
10
|
-
export default function App() {
|
|
11
|
-
return (
|
|
12
|
-
<NavigationContainer>
|
|
13
|
-
<Stack.Navigator>
|
|
14
|
-
<Stack.Screen
|
|
15
|
-
name="main"
|
|
16
|
-
component={MainScreen}
|
|
17
|
-
options={{ title: 'Experiments' }}
|
|
18
|
-
/>
|
|
19
|
-
{experiments.map((exp) => (
|
|
20
|
-
<Stack.Screen
|
|
21
|
-
key={exp.key}
|
|
22
|
-
name={exp.key}
|
|
23
|
-
component={exp.component}
|
|
24
|
-
options={{ title: exp.title }}
|
|
25
|
-
/>
|
|
26
|
-
))}
|
|
27
|
-
</Stack.Navigator>
|
|
28
|
-
<StatusBar style="auto" />
|
|
29
|
-
</NavigationContainer>
|
|
30
|
-
);
|
|
31
|
-
}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
StyleSheet,
|
|
4
|
-
SafeAreaView,
|
|
5
|
-
Text,
|
|
6
|
-
FlatList,
|
|
7
|
-
Pressable,
|
|
8
|
-
} from 'react-native';
|
|
9
|
-
import { useNavigation } from '@react-navigation/native';
|
|
10
|
-
import { Experiment, experiments } from './experiments';
|
|
11
|
-
|
|
12
|
-
export function MainScreen() {
|
|
13
|
-
return (
|
|
14
|
-
<SafeAreaView style={styles.container}>
|
|
15
|
-
<FlatList
|
|
16
|
-
data={experiments}
|
|
17
|
-
renderItem={({ item }) => <ListItem item={item} />}
|
|
18
|
-
/>
|
|
19
|
-
</SafeAreaView>
|
|
20
|
-
);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
interface ListItemProps {
|
|
24
|
-
item: Experiment;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
function ListItem({ item }: ListItemProps) {
|
|
28
|
-
const navigation = useNavigation();
|
|
29
|
-
|
|
30
|
-
const handlePress = () => {
|
|
31
|
-
// @ts-expect-error missing navigation typing
|
|
32
|
-
navigation.navigate(item.key);
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
return (
|
|
36
|
-
<Pressable style={styles.item} onPress={handlePress}>
|
|
37
|
-
<Text style={styles.itemTitle}>{item.title}</Text>
|
|
38
|
-
</Pressable>
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const styles = StyleSheet.create({
|
|
43
|
-
container: {
|
|
44
|
-
flex: 1,
|
|
45
|
-
},
|
|
46
|
-
item: {
|
|
47
|
-
padding: 20,
|
|
48
|
-
},
|
|
49
|
-
itemTitle: {
|
|
50
|
-
fontSize: 20,
|
|
51
|
-
},
|
|
52
|
-
});
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { TextInputEventPropagation } from './screens/TextInputEventPropagation';
|
|
2
|
-
import { TextInputEvents } from './screens/TextInputEvents';
|
|
3
|
-
import { ScrollViewEvents } from './screens/ScrollViewEvents';
|
|
4
|
-
import { FlatListEvents } from './screens/FlatListEvents';
|
|
5
|
-
import { SectionListEvents } from './screens/SectionListEvents';
|
|
6
|
-
|
|
7
|
-
export type Experiment = (typeof experiments)[number];
|
|
8
|
-
|
|
9
|
-
export const experiments = [
|
|
10
|
-
{
|
|
11
|
-
key: 'TextInputEvents',
|
|
12
|
-
title: 'TextInput Events',
|
|
13
|
-
component: TextInputEvents,
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
key: 'TextInputEventPropagation',
|
|
17
|
-
title: 'TextInput Event Propagation',
|
|
18
|
-
component: TextInputEventPropagation,
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
key: 'ScrollViewEvents',
|
|
22
|
-
title: 'ScrollView Events',
|
|
23
|
-
component: ScrollViewEvents,
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
key: 'FlatListEvents',
|
|
27
|
-
title: 'FlatList Events',
|
|
28
|
-
component: FlatListEvents,
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
key: 'SectionListEvents',
|
|
32
|
-
title: 'SectionList Events',
|
|
33
|
-
component: SectionListEvents,
|
|
34
|
-
},
|
|
35
|
-
];
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { FlatList, StyleSheet, Text, View } from 'react-native';
|
|
3
|
-
import { customEventLogger, nativeEventLogger } from '../utils/helpers';
|
|
4
|
-
|
|
5
|
-
interface ItemData {
|
|
6
|
-
id: string;
|
|
7
|
-
title: string;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
const data: ItemData[] = [...new Array(25)].map((_, index) => ({
|
|
11
|
-
id: `${index + 1}`,
|
|
12
|
-
title: `Item ${index + 1}`,
|
|
13
|
-
}));
|
|
14
|
-
|
|
15
|
-
export function FlatListEvents() {
|
|
16
|
-
const renderItem = ({ item }: { item: ItemData }) => {
|
|
17
|
-
return <Item item={item} />;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
return (
|
|
21
|
-
<FlatList
|
|
22
|
-
data={data}
|
|
23
|
-
renderItem={renderItem}
|
|
24
|
-
keyExtractor={(item) => item.id}
|
|
25
|
-
contentInsetAdjustmentBehavior="scrollableAxes"
|
|
26
|
-
scrollEventThrottle={150}
|
|
27
|
-
onScroll={nativeEventLogger('scroll')}
|
|
28
|
-
onScrollBeginDrag={nativeEventLogger('scrollBeginDrag')}
|
|
29
|
-
onScrollEndDrag={nativeEventLogger('scrollEndDrag')}
|
|
30
|
-
onMomentumScrollBegin={nativeEventLogger('momentumScrollBegin')}
|
|
31
|
-
onMomentumScrollEnd={nativeEventLogger('momentumScrollEnd')}
|
|
32
|
-
onScrollToTop={nativeEventLogger('scrollToTop')}
|
|
33
|
-
onEndReached={customEventLogger('endReached')}
|
|
34
|
-
onContentSizeChange={customEventLogger('contentSizeChange')}
|
|
35
|
-
/>
|
|
36
|
-
);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
interface ItemProps {
|
|
40
|
-
item: ItemData;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const Item = ({ item }: ItemProps) => (
|
|
44
|
-
<View style={styles.item}>
|
|
45
|
-
<Text style={styles.title}>{item.title}</Text>
|
|
46
|
-
</View>
|
|
47
|
-
);
|
|
48
|
-
|
|
49
|
-
const styles = StyleSheet.create({
|
|
50
|
-
item: {
|
|
51
|
-
paddingVertical: 16,
|
|
52
|
-
paddingHorizontal: 20,
|
|
53
|
-
},
|
|
54
|
-
title: {
|
|
55
|
-
fontSize: 20,
|
|
56
|
-
},
|
|
57
|
-
});
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { StyleSheet, Text, ScrollView } from 'react-native';
|
|
3
|
-
import { customEventLogger, nativeEventLogger } from '../utils/helpers';
|
|
4
|
-
|
|
5
|
-
export function ScrollViewEvents() {
|
|
6
|
-
return (
|
|
7
|
-
<ScrollView
|
|
8
|
-
contentInsetAdjustmentBehavior="scrollableAxes"
|
|
9
|
-
scrollEventThrottle={150}
|
|
10
|
-
onScroll={nativeEventLogger('scroll')}
|
|
11
|
-
onScrollBeginDrag={nativeEventLogger('scrollBeginDrag')}
|
|
12
|
-
onScrollEndDrag={nativeEventLogger('scrollEndDrag')}
|
|
13
|
-
onMomentumScrollBegin={nativeEventLogger('momentumScrollBegin')}
|
|
14
|
-
onMomentumScrollEnd={nativeEventLogger('momentumScrollEnd')}
|
|
15
|
-
onScrollToTop={nativeEventLogger('scrollToTop')}
|
|
16
|
-
onContentSizeChange={customEventLogger('contentSizeChange')}
|
|
17
|
-
>
|
|
18
|
-
<Text style={styles.text}>
|
|
19
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
|
|
20
|
-
tempor incididunt ut labore et dolore magna aliqua. Gravida neque
|
|
21
|
-
convallis a cras semper auctor neque. Ultrices in iaculis nunc sed augue
|
|
22
|
-
lacus. Vulputate ut pharetra sit amet aliquam id. Eget sit amet tellus
|
|
23
|
-
cras adipiscing enim. Velit aliquet sagittis id consectetur purus ut
|
|
24
|
-
faucibus pulvinar.
|
|
25
|
-
</Text>
|
|
26
|
-
<Text style={styles.text}>
|
|
27
|
-
Eget gravida cum sociis natoque penatibus. Nunc sed blandit libero
|
|
28
|
-
volutpat sed cras. Aliquet bibendum enim facilisis gravida neque
|
|
29
|
-
convallis a cras. Euismod nisi porta lorem mollis aliquam. Consequat
|
|
30
|
-
mauris nunc congue nisi vitae suscipit tellus. Mauris pellentesque
|
|
31
|
-
pulvinar pellentesque habitant morbi tristique. Nulla aliquet enim
|
|
32
|
-
tortor at auctor.
|
|
33
|
-
</Text>
|
|
34
|
-
<Text style={styles.text}>
|
|
35
|
-
A condimentum vitae sapien pellentesque. Quis eleifend quam adipiscing
|
|
36
|
-
vitae. Elit ut aliquam purus sit amet luctus venenatis. Id faucibus nisl
|
|
37
|
-
tincidunt eget nullam non nisi est. Nunc non blandit massa enim nec dui
|
|
38
|
-
nunc. Urna nec tincidunt praesent semper feugiat nibh. Malesuada fames
|
|
39
|
-
ac turpis egestas maecenas. Viverra nibh cras pulvinar mattis nunc sed
|
|
40
|
-
blandit.
|
|
41
|
-
</Text>
|
|
42
|
-
<Text style={styles.text}>
|
|
43
|
-
Molestie nunc non blandit massa enim nec dui nunc. Velit laoreet id
|
|
44
|
-
donec ultrices tincidunt arcu. Imperdiet nulla malesuada pellentesque
|
|
45
|
-
elit eget. Id neque aliquam vestibulum morbi blandit cursus. Ut
|
|
46
|
-
tristique et egestas quis. Nisl nunc mi ipsum faucibus vitae aliquet nec
|
|
47
|
-
ullamcorper sit. Cursus mattis molestie a iaculis at erat.
|
|
48
|
-
</Text>
|
|
49
|
-
<Text style={styles.text}>
|
|
50
|
-
Tincidunt arcu non sodales neque sodales ut etiam. Ultrices dui sapien
|
|
51
|
-
eget mi proin sed. Metus vulputate eu scelerisque felis. In pellentesque
|
|
52
|
-
massa placerat duis ultricies lacus sed turpis. Id leo in vitae turpis
|
|
53
|
-
massa sed elementum.
|
|
54
|
-
</Text>
|
|
55
|
-
</ScrollView>
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
const styles = StyleSheet.create({
|
|
60
|
-
text: {
|
|
61
|
-
paddingHorizontal: 20,
|
|
62
|
-
paddingTop: 20,
|
|
63
|
-
fontSize: 24,
|
|
64
|
-
},
|
|
65
|
-
});
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { StyleSheet, Text, View, SectionList } from 'react-native';
|
|
3
|
-
import { customEventLogger, nativeEventLogger } from '../utils/helpers';
|
|
4
|
-
|
|
5
|
-
interface SectionData {
|
|
6
|
-
title: string;
|
|
7
|
-
data: string[];
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
const sections: SectionData[] = [
|
|
11
|
-
{
|
|
12
|
-
title: 'Main dishes',
|
|
13
|
-
data: [
|
|
14
|
-
'Pizza',
|
|
15
|
-
'Burger',
|
|
16
|
-
'Risotto',
|
|
17
|
-
'Pasta',
|
|
18
|
-
'Fish',
|
|
19
|
-
'Chicken',
|
|
20
|
-
'Beef',
|
|
21
|
-
'Dumplings',
|
|
22
|
-
],
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
title: 'Sides',
|
|
26
|
-
data: [
|
|
27
|
-
'French Fries',
|
|
28
|
-
'Onion Rings',
|
|
29
|
-
'Fried Shrimps',
|
|
30
|
-
'Potatoes',
|
|
31
|
-
'Salad',
|
|
32
|
-
'Garlic Bread',
|
|
33
|
-
],
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
title: 'Drinks',
|
|
37
|
-
data: ['Water', 'Coke', 'Beer', 'Tea', 'Coffee', 'Soda', 'Matcha'],
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
title: 'Desserts',
|
|
41
|
-
data: ['Cheese Cake', 'Ice Cream', 'Chocolate', 'Cookies', 'Fruits'],
|
|
42
|
-
},
|
|
43
|
-
];
|
|
44
|
-
|
|
45
|
-
export function SectionListEvents() {
|
|
46
|
-
const renderSectionHeader = ({ section }: { section: SectionData }) => (
|
|
47
|
-
<Text style={styles.header}>{section.title}</Text>
|
|
48
|
-
);
|
|
49
|
-
|
|
50
|
-
const renderItem = ({ item }: { item: string }) => (
|
|
51
|
-
<View style={styles.item}>
|
|
52
|
-
<Text style={styles.title}>{item}</Text>
|
|
53
|
-
</View>
|
|
54
|
-
);
|
|
55
|
-
|
|
56
|
-
return (
|
|
57
|
-
<SectionList
|
|
58
|
-
sections={sections}
|
|
59
|
-
keyExtractor={(item, index) => item + index}
|
|
60
|
-
renderSectionHeader={renderSectionHeader}
|
|
61
|
-
renderItem={renderItem}
|
|
62
|
-
contentInsetAdjustmentBehavior="scrollableAxes"
|
|
63
|
-
scrollEventThrottle={150}
|
|
64
|
-
onScroll={nativeEventLogger('scroll')}
|
|
65
|
-
onScrollBeginDrag={nativeEventLogger('scrollBeginDrag')}
|
|
66
|
-
onScrollEndDrag={nativeEventLogger('scrollEndDrag')}
|
|
67
|
-
onMomentumScrollBegin={nativeEventLogger('momentumScrollBegin')}
|
|
68
|
-
onMomentumScrollEnd={nativeEventLogger('momentumScrollEnd')}
|
|
69
|
-
onScrollToTop={nativeEventLogger('scrollToTop')}
|
|
70
|
-
onEndReached={customEventLogger('endReached')}
|
|
71
|
-
onContentSizeChange={customEventLogger('contentSizeChange')}
|
|
72
|
-
/>
|
|
73
|
-
);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
const styles = StyleSheet.create({
|
|
77
|
-
header: {
|
|
78
|
-
paddingVertical: 8,
|
|
79
|
-
paddingHorizontal: 16,
|
|
80
|
-
backgroundColor: 'white',
|
|
81
|
-
fontSize: 24,
|
|
82
|
-
},
|
|
83
|
-
item: {
|
|
84
|
-
paddingVertical: 16,
|
|
85
|
-
paddingHorizontal: 16,
|
|
86
|
-
},
|
|
87
|
-
|
|
88
|
-
title: {
|
|
89
|
-
fontSize: 20,
|
|
90
|
-
},
|
|
91
|
-
});
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { StyleSheet, SafeAreaView, TextInput, Pressable } from 'react-native';
|
|
3
|
-
import { nativeEventLogger } from '../utils/helpers';
|
|
4
|
-
|
|
5
|
-
export function TextInputEventPropagation() {
|
|
6
|
-
const [value, setValue] = React.useState('');
|
|
7
|
-
|
|
8
|
-
const handleChangeText = (value: string) => {
|
|
9
|
-
setValue(value);
|
|
10
|
-
console.log(`Event: changeText`, value);
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
return (
|
|
14
|
-
<SafeAreaView style={styles.container}>
|
|
15
|
-
<Pressable onPress={nativeEventLogger('Pressable.press')}>
|
|
16
|
-
<TextInput
|
|
17
|
-
style={styles.textInput}
|
|
18
|
-
value={value}
|
|
19
|
-
editable={true}
|
|
20
|
-
onChangeText={handleChangeText}
|
|
21
|
-
onChange={nativeEventLogger('TextInput.change')}
|
|
22
|
-
onPressIn={nativeEventLogger('TextInput.pressIn')}
|
|
23
|
-
onPressOut={nativeEventLogger('TextInput.pressOut')}
|
|
24
|
-
/>
|
|
25
|
-
</Pressable>
|
|
26
|
-
</SafeAreaView>
|
|
27
|
-
);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
const styles = StyleSheet.create({
|
|
31
|
-
container: {
|
|
32
|
-
flex: 1,
|
|
33
|
-
},
|
|
34
|
-
textInput: {
|
|
35
|
-
backgroundColor: 'white',
|
|
36
|
-
margin: 20,
|
|
37
|
-
padding: 8,
|
|
38
|
-
fontSize: 18,
|
|
39
|
-
borderWidth: 1,
|
|
40
|
-
borderColor: 'grey',
|
|
41
|
-
},
|
|
42
|
-
});
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { StyleSheet, SafeAreaView, TextInput } from 'react-native';
|
|
3
|
-
import { nativeEventLogger, logEvent } from '../utils/helpers';
|
|
4
|
-
|
|
5
|
-
export function TextInputEvents() {
|
|
6
|
-
const [value, setValue] = React.useState('');
|
|
7
|
-
|
|
8
|
-
const handleChangeText = (value: string) => {
|
|
9
|
-
setValue(value);
|
|
10
|
-
logEvent('changeText', value);
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
return (
|
|
14
|
-
<SafeAreaView style={styles.container}>
|
|
15
|
-
<TextInput
|
|
16
|
-
style={styles.textInput}
|
|
17
|
-
value={value}
|
|
18
|
-
editable={true}
|
|
19
|
-
onChangeText={handleChangeText}
|
|
20
|
-
onChange={nativeEventLogger('change')}
|
|
21
|
-
onKeyPress={nativeEventLogger('keyPress')}
|
|
22
|
-
onEndEditing={nativeEventLogger('endEditing')}
|
|
23
|
-
onSubmitEditing={nativeEventLogger('submitEditing')}
|
|
24
|
-
onTextInput={nativeEventLogger('textInput')}
|
|
25
|
-
onSelectionChange={nativeEventLogger('selectionChange')}
|
|
26
|
-
onContentSizeChange={nativeEventLogger('contentSizeChange')}
|
|
27
|
-
onFocus={nativeEventLogger('focus')}
|
|
28
|
-
onBlur={nativeEventLogger('blur')}
|
|
29
|
-
onPressIn={nativeEventLogger('pressIn')}
|
|
30
|
-
onPressOut={nativeEventLogger('pressOut')}
|
|
31
|
-
/>
|
|
32
|
-
</SafeAreaView>
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
const styles = StyleSheet.create({
|
|
37
|
-
container: {
|
|
38
|
-
flex: 1,
|
|
39
|
-
},
|
|
40
|
-
textInput: {
|
|
41
|
-
backgroundColor: 'white',
|
|
42
|
-
margin: 20,
|
|
43
|
-
padding: 8,
|
|
44
|
-
fontSize: 18,
|
|
45
|
-
borderWidth: 1,
|
|
46
|
-
borderColor: 'grey',
|
|
47
|
-
},
|
|
48
|
-
});
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { NativeSyntheticEvent } from 'react-native/types';
|
|
2
|
-
|
|
3
|
-
export function nativeEventLogger(name: string) {
|
|
4
|
-
return (event: NativeSyntheticEvent<unknown>) => {
|
|
5
|
-
logEvent(name, event?.nativeEvent);
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export function customEventLogger(name: string) {
|
|
10
|
-
return (...args: unknown[]) => {
|
|
11
|
-
logEvent(name, ...args);
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export function logEvent(name: string, ...args: unknown[]) {
|
|
16
|
-
// eslint-disable-next-line no-console
|
|
17
|
-
console.log(`Event: ${name}`, ...args);
|
|
18
|
-
}
|