Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

fix: migrate deprecated componentWillReceiveProps to componentDidUpdate#798

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Open
18vikastg wants to merge1 commit intoalgorithm-visualizer:master
base:master
Choose a base branch
Loading
from18vikastg:fix/deprecated-lifecycle-methods

Conversation

@18vikastg
Copy link

This pull request refactors several React component lifecycle methods to usecomponentDidUpdate instead of the deprecatedcomponentWillReceiveProps, and introduces persistent workspace state and improved event handling. These changes enhance code maintainability, user experience, and future compatibility.

Lifecycle method modernization:

  • ReplacedcomponentWillReceiveProps withcomponentDidUpdate inApp,Navigator,Player,FoldableAceEditor,VisualizationViewer, andToastContainer components to ensure compatibility with modern React best practices.[1][2][3][4][5][6]

Workspace state persistence:

  • Added logic inApp to load and persist workspace preferences (navigatorOpened andworkspaceWeights) usinglocalStorage, so user layout choices are retained across sessions.[1][2]

Event handling improvements:

  • InPlayer, added keyboard shortcuts for play/pause (space), previous (left arrow), and next (right arrow) actions, and window resize handling, improving accessibility and usability. Also added cleanup for event listeners on unmount.

Toast notification timing fix:

  • RefactoredToastContainer to correctly handle toast timeouts and cleanup, ensuring toasts disappear after the intended delay and preventing memory leaks.

Editor folding logic refinement:

  • Improved folding logic inFoldableAceEditor so tracers are folded only when appropriate, reducing unnecessary operations.- Replaced componentWillReceiveProps with componentDidUpdate in 6 components
  • Added proper prevProps comparison to prevent unnecessary updates
  • Ensures compatibility with React 17+ and future versions

Resolves deprecation warnings and future-proofs the codebase.
This pull request refactors several React components to replace the deprecatedcomponentWillReceiveProps lifecycle method with the recommendedcomponentDidUpdate. It also adds new workspace persistence features and keyboard shortcuts, improving user experience and code maintainability.

Lifecycle method modernization

  • Replaced all usages ofcomponentWillReceiveProps withcomponentDidUpdate inApp,Navigator,Player,ToastContainer,FoldableAceEditor, andVisualizationViewer components, ensuring compatibility with newer React versions and improving reliability.[1][2][3][4][5][6]

Workspace persistence improvements

  • Added logic inApp to load and persist workspace preferences such as navigator visibility and workspace weights usinglocalStorage, allowing users' UI state to be remembered across sessions.[1][2]

Keyboard shortcut enhancements

  • Implemented keyboard shortcuts inPlayer for play/pause (space), previous (left arrow), and next (right arrow) actions, improving accessibility and user interaction.

Resource management

  • Ensured proper cleanup of event listeners and timeouts inPlayer andToastContainer components on unmount, preventing potential memory leaks.[1][2]

Component-specific update logic

  • Improved update logic inFoldableAceEditor andVisualizationViewer to correctly respond to prop changes by folding tracers or updating visualizations only when relevant data changes.[1][2]

- Replaced componentWillReceiveProps with componentDidUpdate in 6 components- Added proper prevProps comparison to prevent unnecessary updates- Ensures compatibility with React 17+ and future versionsResolves deprecation warnings and future-proofs the codebase.
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

No reviews

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

1 participant

@18vikastg

[8]ページ先頭

©2009-2025 Movatter.jp