Skip to content
  • Unlock Pro
  • Log in with GitHub
Solution
Submitted about 2 years ago

Interactive Comment Section

react, vite, tailwind-css
Toni•420
@ToenSh
A solution to the Interactive comments section challenge
View live sitePreview (opens in new tab)View codeCode (opens in new tab)

Solution retrospective


This was probably the most challenging project I've had to do but i enjoyed it a lot and learned a bunch of new things building it too. One thing i couldn't complete was limiting the score of a comment to only go up or down by one and not go beyond that, so any help with that would be much appreciated. Also I'm not too sure about some patterns I've used while implementing my logic such as initiating state from props and passing a state value up as a function argument from a child component to the parent component. Any feedback on those things and any other thing really is much appreciated!

Code
Select a file

Please log in to post a comment

Log in with GitHub

Community feedback

  • visualdennis•8,375
    @visualdenniss
    Posted about 2 years ago

    Hey there,

    great job with this complex challenge! CRUD part seems to be working quite nicely. Indeed the like/vote part is perhaps most trickiest of this challenge. To tackle that i've laid out all cases for what should happen to what event in which state. Check out the VOTE SYSTEM part in my Workflow.md.

    The code at the moment is a bit verbose, yet quite explicit. but if any part is unclear, feel free to ask.

    Hope you find this feedback helpful!

  • lloydjohnlandeza•150
    @lloydjohnlandeza
    Posted about 2 years ago

    Nice solution! I solved the limiting of upvote/downvote by adding an upVoted and downVoted boolean flag to the comment object. You can check those flag before changing the score. But you can make it a step further by making that boolean into an array of username that upVoted or downVoted the comment to make it work with multiple users!

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
Frontend Mentor logo

Stay up to datewith new challenges, featured solutions, selected articles, and our latest news

Frontend Mentor

  • Unlock Pro
  • Contact us
  • FAQs
  • Become a partner

Explore

  • Learning paths
  • Challenges
  • Solutions
  • Articles

Community

  • Discord
  • Guidelines

For companies

  • Hire developers
  • Train developers
© Frontend Mentor 2019 - 2025
  • Terms
  • Cookie Policy
  • Privacy Policy
  • License

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

How does the accessibility report work?

When a solution is submitted, we use axe-core to run an automated audit of your code.

This picks out common accessibility issues like not using semantic HTML and not having proper heading hierarchies, among others.

This automated audit is fairly surface level, so we encourage to you review the project and code in more detail with accessibility best practices in mind.

How does the CSS report work?

When a solution is submitted, we use stylelint to run an automated check on the CSS code.

We've added some of our own linting rules based on recommended best practices. These rules are prefixed with frontend-mentor/ which you'll see at the top of each issue in the report.

The report will audit 1st-party linked stylesheets, and styles within <style> tags.

How does the HTML validation report work?

When a solution is submitted, we use html-validate to run an automated check on the HTML code.

The report picks out common HTML issues such as not using headings within section elements and incorrect nesting of elements, among others.

Note that the report can pick up “invalid” attributes, which some frameworks automatically add to the HTML. These attributes are crucial for how the frameworks function, although they’re technically not valid HTML. As such, some projects can show up with many HTML validation errors, which are benign and are a necessary part of the framework.

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub