Skip to content

Conversation

@SorayaFerreira
Copy link

Summary

This pull request introduces a set of refactorings aimed at addressing specific React code smells identified in the project. The goal of these changes is purely academic, as part of an evaluation activity for a university course. The modifications simulate how these issues could be resolved in a real project, while following recommended best practices.

What Was Done

We refactored components to remove or mitigate the following code smells:

  • LC (Large Component) – Components with excessive responsibilities were reorganized to improve readability and maintainability.
  • TP (Too Many Props) – Prop drilling was reduced where possible, improving component cohesion.
  • PIS (Props in Initial State) – Removed or reworked patterns where props were unnecessarily stored in the initial state.
  • DOM (Direct DOM Manipulation) – Refactored usages of document and direct DOM access in favor of React-friendly patterns such as refs and state updates.
  • FU (Force Update) – Eliminated uses of forceUpdate, replacing them with proper state management approaches.

Tools Used

  • To detect code smells, we used ReactSniffer.
  • To evaluate code quality and complexity improvements, we used Understand, which showed positive results after the refactoring.

Important Note

@lukasbach

@lukasbach, This pull request is for educational purposes only, for evaluation in a software maintenance course. Our changes are simulated, as we only need screenshots of the commits made. Thank you in advance for your understanding, and congratulations on the project!

Closing

Thank you for maintaining this project. We hope this simulated refactoring exercise may still be useful as a reference or starting point for future improvements.

@changeset-bot
Copy link

changeset-bot bot commented Nov 25, 2025

⚠️ No Changeset found

Latest commit: b112c29

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants