fix Infinite useEffect loop in audio playback
#3037
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🎯 Goal
Fix the bug described in #3036, where playing a voice note triggers an infinite
useEffectloop, causing a massive performance impact, and even crashing the React Native bridge when using the old architecture🛠 Implementation details
Wraps
pauseAudioandplayAudioinuseCallbackto avoid having the refs of these functions being redefined on each re-render of theAudioAttachmentcomponent. This avoids theuseEffectbeing re-triggered on each render, causing another render indefinitely.🎨 UI Changes
None
🧪 Testing
The reproduction steps for the issue have been described in #3036 . Applying this fix on the reproduction repo fixes the issue.
☑️ Checklist
developbranch