Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found

Submitted

Age calculator app built with React, React Hook Form and React Spring

@joshjavier

Desktop design screenshot for the Age calculator app coding challenge

This is a solution for...

  • HTML
  • CSS
  • JS
2junior
View challenge

Design comparison


SolutionDesign

Solution retrospective


What are you most proud of, and what would you do differently next time?

I'm proud of the way I structured my code. I think I did a pretty good job dividing code into components and modules that have distinct responsibilities, so it would be easier for other devs (or myself in the future) to understand the code and improve it.

I also feel more confident in deciding when or not to use an external package to solve a problem. In this case, implementing the form without a form library is possible, but I decided to use React Hook Form because it seemed like a good balance between ease of development (I don't have to implement the error validation from scratch) and the performance hit on the app (package size is pretty small at 8.5KB).

What challenges did you encounter, and how did you overcome them?

For working with dates, JavaScript's built-in Date class proved sufficient for this app. One gotcha I encountered was that the Date() constructor doesn't throw an error when passed an invalid date. For example, creating a Date object for April 31, 1995 will be evaluated to May 1, 1995. So, to check for invalid dates, I compared the input date and the parsed date. If they're not equal, then the form won't pass validation.

What specific areas of your project would you like help with?

Any feedback on the animations? I added it last and didn't want to over-optimize, but I feel like it could use more oomph. It's my first time using React Spring, so I'm still not aware of its full capabilities. Anyway, constructive feedback is welcome!

Community feedback

@rohanvron

Posted

Great job! Your solution is impressive.

1

@joshjavier

Posted

Thank you @rohanvron!

1

Please log in to post a comment

Log in with GitHub
Discord logo

Join our Discord community

Join thousands of Frontend Mentor community members taking the challenges, sharing resources, helping each other, and chatting about all things front-end!

Join our Discord