Skip to content

CW-Message-performance Increase message performance #2696

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Merged
merged 1 commit into from
Jun 10, 2024

Conversation

MeyerPV
Copy link
Collaborator

@MeyerPV MeyerPV commented Jun 3, 2024

What was changed?

  • Add useDeepCompareEffect
  • Restructure component

Add useDeepCompareEffect. Restructure component
Copy link

netlify bot commented Jun 3, 2024

Deploy Preview for preview-common ready!

Name Link
🔨 Latest commit 075a410
🔍 Latest deploy log https://app.netlify.com/sites/preview-common/deploys/665dac92f211ff00080a5278
😎 Deploy Preview https://deploy-preview-2696--preview-common.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

Copy link
Collaborator

@elatif2020 elatif2020 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI PR Review: Chat Functionality Improvements

This PR introduces several welcome changes to the chat functionality, focusing on performance, code quality, and user experience. Overall, the changes are well-implemented and demonstrate a good understanding of React best practices.

Positives:

  • Performance improvements:
    
      The use of useMemo in ChatContent to calculate the date list is a great optimization. This will significantly reduce unnecessary re-renders, improving performance.
    
      Memoizing the ChatMessage component with React.memo is also a good practice to avoid re-rendering when props haven't changed.
    
      The useDeepCompareEffect in useDiscussionMessagesById ensures the effect only runs when the discussionId prop actually changes, further optimizing performance.
    
  • Code quality improvements:

    The code is more readable and organized thanks to the refactoring of ChatContent.

    The use of dedicated types for data structures like MessageInfoWithDateList improves code clarity and maintainability.

    Error handling has been significantly improved, making the code more robust and reliable.

  • User experience improvements:

    The performance optimizations will result in a smoother and more responsive chat experience.

    Improved error handling makes the chat more reliable and less prone to crashes or unexpected behavior.

Minor Suggestions:

  • Consider adding tests: While the code changes appear well-implemented, adding unit tests for the refactored components and the useDiscussionMessagesById hook would increase code confidence and help prevent regressions in the future.
    
  • Documenting the changes: A more detailed description of the changes, particularly in the PR description, would be helpful for future reference.
    

@elatif2020
Copy link
Collaborator

elatif2020 commented Jun 5, 2024

@MeyerPV also performance wise playing with the preview app it's behaving much better

@elatif2020 elatif2020 self-requested a review June 5, 2024 18:34
@MeyerPV MeyerPV merged commit 35cdb79 into dev Jun 10, 2024
5 checks passed
@MeyerPV MeyerPV deleted the CW-Message-performance branch June 10, 2024 14:37
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants