# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ## [0.22.8] - 2024-04-11 ### Fixed - Fixed compile issues with 0.22.7. ## [0.22.7] - 2024-04-10 ### Fixed - Removed Babel dependencies that were causing audit warnings. ## [0.22.6] - 2023-11-03 ### Fixed - Fixed issue that prevents events from being sent when the navigator is not initialized. - Fixed linking and auto-initialization when using `use_frameworks!`. ### Changed - Error logging has been refined to surface more timely and precise messages. ## [0.22.5] - 2023-09-26 ### Fixed - `Heap.withHeapNavigationWrapper` returns the same object when called multiple times, preventing app refreshes when used within a re-evaluated function like `App` with `useEffect`. - The typescript definition for `` has been updated to support React 18. - Podspec now produces a stable checksum in Podfile.lock across machines. ## [0.22.4] - 2023-09-05 ### Fixed - Fixed `` change event capture on React Native 0.66 and later. ## [0.22.3] - 2023-06-29 ### Fixed - Removed unnecessary expo dependency that had a critical vulnerability. ## [0.22.2] - 2023-04-04 ### Fixed - Updated podspec to work with Ruby 3.2. ## [0.22.1] - 2022-12-02 ### Changed - Switched repositories from jcenter to mavenCentral. ### Fixed - Fixed Android compilation, moving log to `RNLog.w`. ## [0.22.0] - 2022-09-23 ### Added - Added tests for sending bad data to the native bridge ### Changed - Changed track bridge to warn instead of throw an exception when bad data is sent. - Upgraded iOS sdk from 8.2 to 9.0 ## [0.21.0] - 2022-06-29 ### Added - Added `getSessionId()` method for fetching the current Heap Session ID from the underlying native SDK. - Added Expo config plugin to support Android in managed workflows. ## [0.20.0] - 2022-04-28 ### Changed - Upgraded the Android library to use Heap version 1.10.+. ### Fixed - Fixed type definition for `withReactNavigationAutotrack` on React Navigation 6. ## [0.19.0] - 2022-04-12 ### Added - Added support for Event Visualizer on iOS, with a pairing option in the React Native developer menu. - Added iOS-only option to enable Heap SDK debug logging in the iOS console, enabled by default on dev builds. - Disabled tracking of view controllers on iOS when `enableNativeTouchEventCapture` is off. ### Changed - Updated `Heap.setAppId` on iOS to turn off native touch capture on iOS. - Updated `Heap.setAppId` on iOS to enable logging on debug builds. ## [0.18.0] - 2022-02-28 ### Fixed - Fixed iOS build in folders with spaces. - Fixed minSdkVersion build error on React Native 0.64+. ## [0.17.1] - 2021-12-01 ### Fixed - Hotfix for misconfigured iOS event uploads. ## [0.17.0] - 2021-11-09 ### Changed - iOS now consumes the Heap sdk via CocoaPods, linking to versions 8.0.0 and above, but not 9.0.0. - Upgraded the Android library to use 1.9.+. ### Fixed - Linked heap-ios-sdk now supports development on M1 Macs. - Fixed performance issue on iOS where Heap would scan the native view hierarchy despite native touch autocapture being disabled. - Improved TypeScript definitions. - Fixed a path issue in the podspec. ### Removed - Support for manually linking Heap on iOS. - Support for versions below React Native v0.63. ## [0.17.0-alpha1] - 2021-06-09 ### Fixed - Fixed sporadic Babel instrumentation (`Cannot read property 'end' of null`) issues ## [0.16.0] - 2021-06-01 ### Added - Added support for React 17 (resolves #241). ## [0.15.0] - 2021-05-04 ### Added - Added support for `Pressable` components (introduced in React Native v0.63) via HOC instrumentation. ### Changed - Upgraded the native Heap iOS (7.5.0) and Android (1.9.1) libraries ## [0.14.0] - 2020-09-23 ### Added - Added 'enableNativeTouchEventCapture' config option that controls whether the native iOS SDK captures touch-like events. ### Changed - Upgraded the native Heap iOS SDK dependency to 7.2.0. ### Fixed - Fixed bug that broke ref-forwarding on `TextInput` components on React Native v0.62+. ## [0.13.0] - 2020-08-31 ### Added - 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. ## [0.12.0] - 2020-06-22 ### Changed - 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 ### Fixed - Improve support for 'HeapIgnore' and its convenience components in minified apps. - Updated `index.d.ts` typings to include `HeapIgnore` and related components. ## [0.11.0] - 2020-04-10 ### Changed - Upgraded the native Android Heap SDK to v1.6.0. - Upgraded Heap iOS SDK dependency to 6.7.0. ### Fixed - Updated `index.d.ts` typings to include `resetIdentity()` and `getUserId()` methods. ## [0.10.0] - 2020-01-21 ### Added - Added `getUserId()` method for fetching the current Heap User ID from the underlying native SDK. ## [0.9.1] - 2019-12-20 ### Fixed - Fixed bug where app would crash when `Heap.track()` is called if React Navigation autocapture isn't set up. [#165](https://github.com/heap/react-native-heap/issues/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. ## [0.9.0] - 2019-12-05 ### Changed - 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](https://docs.heap.io//docs/migrating-legacy-react-native-events-for-heap-090) 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](https://reactjs.org/docs/higher-order-components.html#convention-wrap-the-display-name-for-easy-debugging)). ### Fixed - Fixed React Navigation autocapture when [manual screen tracking](https://reactnavigation.org/docs/en/screen-tracking.html) is also used. ## [0.8.0] - 2019-08-26 ### Added - Autocapture of changes to React Native `TextInput` components. ### Fixed - Fixed bug where the iOS build would fail in an obscure way when the `prod` or `dev` field is missing from `heap.config.json`. ## [0.7.1] - 2019-08-15 ### Fixed - 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. ## [0.7.0] - 2019-08-07 ### Added - `resetIdentity` method for resetting an identified user to an anonymous user. ### Changed - Updated sessionization semantics; sessions now expire after 5 idle minutes, regardless of the app's background/foreground state. ### Fixed - Fixed bug on RN 0.60.4 in which `ScrollView` instrumentation breaks the component. [#119](https://github.com/heap/react-native-heap/issues/119) ## [0.6.0] - 2019-07-24 ### Added - React Navigation screen name + route path properties on autocaptured events. ### Fixed - Fixed bug where iOS settings script might fail when the dev is using `rvm` or `rbenv` to manage Ruby versions. (@marcferna) ## [0.5.1] - 2019-07-03 ### Fixed - Fixed bug where re-rendered React Navigation containers wrapped with the React Navigation HOC would cause a "Cannot read property 'nav' of null" error. ## [0.5.0] - 2019-06-27 ### Added - Autocapture of paging events on React Native `ScrollView` components with `pagingEnabled`. - Added automatic property capture for NativeBase and React Native Elements component libraries. ### Fixed - Ref-forwarding on the React Navigation HOC ## [0.4.0] - 2019-05-22 ### Added - Auto-initialization of Heap for both iOS and Android apps. - Added `HeapIgnore` and `HeapIgnoreTargetText` components. ### Fixed - Prevent Heap library errors from crashing the client app. - Passthrough props on React Navigation autocapture HOC. ## [0.3.0] - 2019-04-23 ### Added - 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. ### Fixed - Get Android+Detox tests working after breaking changes in a prior Detox upgrade. ## [0.2.0] - 2019-03-29 ### Added - 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 ### Fixed - 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. ## [0.1.1] - 2019-01-08 ### Added - Typescript bindings for manual tracking API. ## [0.1.0] - 2018-12-23 ### Added - 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. [unreleased]: https://github.com/heap/react-native-heap/compare/0.22.7...HEAD [0.22.7]: https://github.com/heap/react-native-heap/compare/0.22.6...0.22.7 [0.22.6]: https://github.com/heap/react-native-heap/compare/0.22.5...0.22.6 [0.22.5]: https://github.com/heap/react-native-heap/compare/0.22.4...0.22.5 [0.22.4]: https://github.com/heap/react-native-heap/compare/0.22.3...0.22.4 [0.22.3]: https://github.com/heap/react-native-heap/compare/0.22.2...0.22.3 [0.22.2]: https://github.com/heap/react-native-heap/compare/0.22.1...0.22.2 [0.22.1]: https://github.com/heap/react-native-heap/compare/0.22.0...0.22.1 [0.22.0]: https://github.com/heap/react-native-heap/compare/0.21.0...0.22.0 [0.21.0]: https://github.com/heap/react-native-heap/compare/0.20.0...0.21.0 [0.20.0]: https://github.com/heap/react-native-heap/compare/0.19.0...0.20.0 [0.19.0]: https://github.com/heap/react-native-heap/compare/0.18.0...0.19.0 [0.18.0]: https://github.com/heap/react-native-heap/compare/0.17.1...0.18.0 [0.17.1]: https://github.com/heap/react-native-heap/compare/0.17.0...0.17.1 [0.17.0]: https://github.com/heap/react-native-heap/compare/0.17.0-alpha1...0.17.0 [0.17.0-alpha1]: https://github.com/heap/react-native-heap/compare/0.16.0...0.17.0-alpha1 [0.16.0]: https://github.com/heap/react-native-heap/compare/0.15.0...0.16.0 [0.15.0]: https://github.com/heap/react-native-heap/compare/0.14.0...0.15.0 [0.14.0]: https://github.com/heap/react-native-heap/compare/0.13.0...0.14.0 [0.13.0]: https://github.com/heap/react-native-heap/compare/0.12.0...0.13.0 [0.12.0]: https://github.com/heap/react-native-heap/compare/0.11.0...0.12.0 [0.11.0]: https://github.com/heap/react-native-heap/compare/0.10.0...0.11.0 [0.10.0]: https://github.com/heap/react-native-heap/compare/0.9.1...0.10.0 [0.9.1]: https://github.com/heap/react-native-heap/compare/0.9.0...0.9.1 [0.9.0]: https://github.com/heap/react-native-heap/compare/0.8.0...0.9.0 [0.8.0]: https://github.com/heap/react-native-heap/compare/0.7.1...0.8.0 [0.7.1]: https://github.com/heap/react-native-heap/compare/0.7.0...0.7.1 [0.7.0]: https://github.com/heap/react-native-heap/compare/0.6.0...0.7.0 [0.6.0]: https://github.com/heap/react-native-heap/compare/0.5.1...0.6.0 [0.5.1]: https://github.com/heap/react-native-heap/compare/0.5.0...0.5.1 [0.5.0]: https://github.com/heap/react-native-heap/compare/0.4.0...0.5.0 [0.4.0]: https://github.com/heap/react-native-heap/compare/0.3.0...0.4.0 [0.3.0]: https://github.com/heap/react-native-heap/compare/0.2.0...0.3.0 [0.2.0]: https://github.com/heap/react-native-heap/compare/0.1.1...0.2.0 [0.1.1]: https://github.com/heap/react-native-heap/compare/0.1.0...0.1.1 [0.1.0]: https://github.com/heap/react-native-heap/releases/tag/0.1.0