All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
BEGIN_UNRELEASED
- Added support for
Pressable
components (introduced in React Native v0.63) via HOC instrumentation.
END_UNRELEASED
- Added 'enableNativeTouchEventCapture' config option that controls whether the native iOS SDK captures touch-like events.
- Upgraded the native Heap iOS SDK dependency to 7.2.0.
- Fixed bug that broke ref-forwarding on
TextInput
components on React Native v0.62+.
- Added support for
Touchable
components in React Native v0.62+ via HOC instrumentation. - Added support for
TextInput
components in React Native v0.62+ via HOC instrumentation. - Added support for React Navigation 5.
- Upgraded the native Heap iOS SDK dependency to 6.8.1. This fixes an issue in which Install/Upgrade events would not fire for some installations
- Improve support for 'HeapIgnore' and its convenience components in minified apps.
- Updated
index.d.ts
typings to includeHeapIgnore
and related components.
- Upgraded the native Android Heap SDK to v1.6.0.
- Upgraded Heap iOS SDK dependency to 6.7.0.
- Updated
index.d.ts
typings to includeresetIdentity()
andgetUserId()
methods.
- Added
getUserId()
method for fetching the current Heap User ID from the underlying native SDK.
- Fixed bug where app would crash when
Heap.track()
is called if React Navigation autocapture isn't set up. #165. - Strip additional special characters from props and component names to prevent hierarchy matching/parsing breakages.
- Upgraded Heap iOS SDK dependency to 6.5.3 to pick up bug fixes since version 6.5.0.
- Don't crash when capturing props with circular references or React JSX elements.
- Updated the way events are sent to the Heap backend to allow for first-class support of React Native as a library. See the upgrade guide for details.
- Upgraded the native Android Heap SDK to v1.3.0.
- Upgraded vendored iOS Heap library to 6.5.1.
- Updated higher-order components to use display name conventions (described here).
- Fixed React Navigation autocapture when manual screen tracking is also used.
- Autocapture of changes to React Native
TextInput
components.
- Fixed bug where the iOS build would fail in an obscure way when the
prod
ordev
field is missing fromheap.config.json
.
- Upgraded vendored iOS Heap library to 6.2.1, which fixed an issue where user IDs were not being reused across sessions in some cases.
- Now using proper ref forwarding for HeapIgnore HOC.
resetIdentity
method for resetting an identified user to an anonymous user.
- Updated sessionization semantics; sessions now expire after 5 idle minutes, regardless of the app's background/foreground state.
- Fixed bug on RN 0.60.4 in which
ScrollView
instrumentation breaks the component. #119
- React Navigation screen name + route path properties on autocaptured events.
- Fixed bug where iOS settings script might fail when the dev is using
rvm
orrbenv
to manage Ruby versions. (@marcferna)
- Fixed bug where re-rendered React Navigation containers wrapped with the React Navigation HOC would cause a "Cannot read property 'nav' of null" error.
- Autocapture of paging events on React Native
ScrollView
components withpagingEnabled
. - Added automatic property capture for NativeBase and React Native Elements component libraries.
- Ref-forwarding on the React Navigation HOC
- Auto-initialization of Heap for both iOS and Android apps.
- Added
HeapIgnore
andHeapIgnoreTargetText
components.
- Prevent Heap library errors from crashing the client app.
- Passthrough props on React Navigation autocapture HOC.
- Autotrack for React Native and NativeBase
Switch
components. - Android: use the parent project's version information if available. (@natethebosch)
- Use the
Navigate/INITIAL
identifier for the initial React Navigation action. - Capture the
key
property for list items that have it set.
- Get Android+Detox tests working after breaking changes in a prior Detox upgrade.
- Debug logging at startup to warn if SDK has not been properly installed or if app is not instrumented successfully
- Autotrack for React Navigation
- Capturing
testID
for every component - (iOS) Cocoapods configuration so dynamic frameworks can be built alongside Heap.
- Autotrack Touchable events
- Configurable property capture for React hierarchy
- addUserProperties and addEventProperties would fail due to a missing
require
. - Using a TypeScript build now, so everything we ship is vanilla JS. This enables compatibility with some older versions of React Native (tested back to 0.54).
- Handles the case of missing or a null properties object passed to
Heap.track
. - Property capture configuration for functional components
- Target text capture for functional components
- Vendored native iOS libHeap.a library for manual installation.
- Typescript bindings for manual tracking API.
- Ability to manually track events from React Native code.
- Ability to use Heap's identity APIs from React Native code.
- Instructions for install and use.