-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Transitions on iOS are extremely glitchy when moving to gifted-chat #228
Comments
Hello, |
I experience the same issue. I have implemented the linked performance tweets and the problem appears in a release build. Edit: looked at the code, found the source of my problem. Chat is only show when |
@jonathanewerner can you elaborate on how you solved this? Where did you move the state the was set inside EDIT: nevermind, literally all I had to do was remove |
Maybe related #377 |
This is hopefully fixed now on master. As @iclems mentioned here, the change is a good workaround that should make things better for most people, but it could lead to less performant animations in some cases. PRs to improve performance are always welcome! Please try it out and let us know if the new code didn't actually resolve this particular issue. |
I'm experiencing extremely slow transitions with GC starting from v0.1.5 (where runAfterInteractions was deleted). I tried every v0.2.x, but the problem stays. It literally takes 3-4 seconds to go from one screen to the other and it looks horribly glitchy/buggy. 0.1.4 works fine, but on Android also has slow transitions from time to time. Did anyone by any chance find a proper solution for this? Cheers |
Hi @abeltje1, what navigation library are you using? Can you try running a Release build with chrome debugging turned off? Sometimes the debugger causes things like that. |
* [Request] Add prop for tintColor for ActionSheet in Actions FaridSafi#185 Add prop optionTintColor for ActionSheet options text * Update default optionTintColor to native color * Initial support tick messages * The message sent and delivered props have been removed from GiftedChat and are now read from the message state * Added possibility to override the behaviour of renderTicks, deleted nested function in renderTicks * Updated example and ticks on the right the time and ticks only appear for the sent messages * renderTick: Move the constant declaration to the top of the function * Expose GiftedAvatar * renderTick: Possibility to change style of the ticks passing the parameter tickStyle to GiftedChat * Change the new messages' ids Now are UUIDs generated with `node-uuid` and is possible to change this behavior using `messageIdGenerator` prop. * fixed chat height bug * Refactor utils into stand-alone functions * Improve readability of utils * Keep improving readability of utils * Add utils to root exports * Add prop onInputTextChanged on GiftedChat API and help fix FaridSafi#286 * Maintain backward compatibility with deprecation warning * Add eslint script (extends airbnb + react + react-native) Currently 506 errors, 7 warnings :D * Upgrade to eslint config v0.2.3 Removed a few unnecessarily strict rules, so we're down to 486 errors now. * Add react-native-lightbox for enlarging chat images * Add navigator to propTypes * Use a commit hash to fix Lightbox warning [Android] Currently the fix is unpublished. * Remove touch events and external keyboard dependency * Bump RN version * Remove commented code * Downgrade RN version * Enabling access to Library Example crashes when you want to choose an image via „choose from library“ . Fixed that. Example should work with this edit like intended. * Remove dependency from package.json * Update property Deprecated property true for keyboardShouldPersistTaps * Update property for Gifted Chat Deprecated property true for keyboardShouldPersistTaps * Add 'onPressActionButton' prop * Add 'imageProps' prop, passed through to <Image> * Use 'lightboxProps' instead of just 'navigator' * config ListView props support * fix warning for Avatar Warning: Failed prop type: Invalid prop `left` of type `object` supplied to `Avatar`, expected `number`. Bad object: { "left": { "borderWidth": 1, "borderColor": "#236CC3" } } * avoid listViewProps to override render methd and datasources * Add listViewPoprs description to README * add listViewProps to default props and propTypes * Downgrade RN version to original * Update prop validation for keyboardShouldPersistTaps * Update Readme * Update RN version to 0.40 * readme for 0.1.0 * bump npm versions * Improve send message performance * add missing props to inner message components * v0.1.0 * fix for npm dependency * node-uuid -> uuid * v0.1.1 * Create GiftedChatInteractionManager.js * Update GiftedChat.js * v0.1.2 * v0.1.3 * render avatar on top * Remove duplicated enableEmptySections * If the keyboard has been dismissed and the user sends a message, the text input tool bar can be rendered incorrectly due to the bottom offset * Allow minimum input tool bar height to be configurable in properties * Update Bubble.js * Export MessageContainer in GiftedChat * fix for _messageContainerRef === null * Bubble.js: Default value for prop bottomContainerStyle * Applying fixes per comments * rename @exponent to @expo * v0.1.4 * image source add number type * formatting * Bump react-native-communications version to 2.2.1 * Support for orientation changes. Turned on onLayout handler for all platforms. Android only: on-screen keyboard resized main container and has own height. https://developer.android.com/training/keyboard-input/visibility.html So for calculate the messages container height need ignore keyboard height. * Fix messagesContainerHeight resetting on orientation change By using the same formula for messagesContainerHeight in onMainViewLayout as everywhere else. * Factor out repeated math into getBasicMessagesContainerHeight() * Factor out repeated math into getMessagesContainerHeightWithKeyboard() * Add onPressAvatar prop * Pass currentMessage to onLongPress callback * Add maxLength parameter for Composer input * fix-extra spacing shown when avatar is not rendered * fix isSameDay function * Update @expo/react-native-action-sheet * incorporate review and documentation * incorporate review * Fix default rendering of avatars (FaridSafi#479) * Default renderAvatar to undefined so that it renders by default Fixes bug introduced in FaridSafi#447 * Ignore .idea for IntelliJ * Commit yarn.lock files No changes to dependencies * Remove `runAfterInteractions` during init (FaridSafi#380) Fixes FaridSafi#377. Fixes FaridSafi#228. * 0.1.5 * Upgrade all dependencies to latest And RN v0.45 on the example app * [Example] Remove extraneous files when installing They get copied by Yarn, or libraries that publish their babel configs * Temporarily fork shallowequal to get rid of babel config dashed/shallowequal#14 * Upgrade shallowequal now that PR is merged * Change deprecated View.propTypes to ViewPropTypes (FaridSafi#478) * [Example] Migrate to react-native-maps (MapView was deprecated) * [Example] Temporarily fork react-native-nav to update ViewPropTypes jineshshah36/react-native-nav#17 * Temporarily fork RN-action-sheet for deprecated React.PropTypes expo/react-native-action-sheet#51 * Update README with new RN dependency requirements * Clean up README * 0.2.0 * [Example] Run react-native upgrade for RN v0.45 * [Example] Add back RCTCameraRoll.xcodeproj for camera roll picker * Replace deprecated `onChange` with `onContentSizeChange` (FaridSafi#500) * Migrate from deprecated React.PropTypes to prop-types (FaridSafi#508) * Commit new prop-types dependency in yarn.lock * Fix URLs that get linkified but are missing a scheme (FaridSafi#506) * Add code comment and error logging for MessageText.onUrlPress * Clarify Android installation steps for CRNA/Expo (FaridSafi#482) Explain that no native project changes are required in Create React Native App or Expo * Fix janky fullscreen Lightbox images by using flex: 1 (FaridSafi#467) Setting image to full width/height makes animation returning image to previous spot look extremely awkward. flex: 1 allows image to resize between thumbnail and fullscreen as was intended with lightbox. * Add `timeFormat` prop (FaridSafi#273) * Added property for time format * Added property to readme * Add `dateFormat` prop * Add .watchmanconfig and README notes for local development * [Example] Upgrade to RN v0.46 to verify compatibility * 0.2.1 * Add some README badges * 0.2.2 * Remove dead code introduced by FaridSafi#467 (FaridSafi#509) * Add 'showUserAvatar' prop; don't render null avatars (FaridSafi#511) * fix(Avatar): display user chat message avatar - check if current message user has an avatar to display - don't base the logic of the display of the avatar on the user object id Issue: FaridSafi#495 Issue URL: FaridSafi#495 * Only return null if avatar is set to null (otherwise render initials) * Add 'showUserAvatar' prop, default to false * Rearrange existing propTypes to match the README * Add missing props to GiftedChat root component * 0.2.3 * Accept a 'text' prop to override the internal state (e.g. redux) * Add Redux notes to the README * 0.2.4 * Use both onChange and onContentSizeChange to support Android RN <0.46 * 0.2.5 * Fix call/text onPhonePress actions ordering (FaridSafi#521) * Fix email sending recipient array (FaridSafi#522) * Fix minor typo in README (FaridSafi#517) * Fix `Linking.canOpenURL` usage (FaridSafi#516) * Add children props to Send component (FaridSafi#487) * Simplify logic for Send component children * 0.2.6 * Add imperative focusTextInput() method * 0.2.7 * Add `parsePatterns` prop for custom message links (FaridSafi#551) * Add a more generic function prop `parsePatterns` * Clean up README * [Example] Don't remove extraneous git dir Just in case someone is mistakenly trying to use symlinks with RN. * [Example] Update path to scripts/react-native-xcode.sh for RN v0.46 * Use better doc link for onLongPress (FaridSafi#573) * Fixed doc link for long press * Hard-code date for code link * rm test command * clean up * fix: use newer version of parsed-text which has fixed propTypes * fix: use newer version of lightbox which has fixed propTypes * fix: use newer invertible-scroll-view that has fixed propTypes for react 16 * fix: do not account for keyboard here, as we have our own component in differ which does that * reimplement inputToolbar ref * reimplement listview ref * add proptype for renderSuggestions
Issue Description
When navigating the a page containing the
<GiftedChat
component the transition is extremely buggy, the page behind moves over slightly to the left and then after 2-3 seconds the chat component instantly flashes onto the screen. This is happening with every animation type under SceneConfigs in which there is a movement transition. I have not tested withFadeAndroid
.The Footer for the
<GiftedChat
also does not occur until this delay is finished.NOTE: I added a custom component on the top of the screen with a fixed height and absolute positioning of 64 (A navigation bar) and it transitions over smoothly, it's only the
<GiftedChat
component with a problem.NOTE2: A blank array of messages on start-up time does not fix the issue, it takes roughly 600ms after the transition completes to snap into place.
Steps to Reproduce / Code Snippets
Just use the example code with React-natives
Navigator
component. Move to it usingpush({...})
and the problem occurs.Expected Results
A smooth transition
Additional Information
The text was updated successfully, but these errors were encountered: