State Reducer

Loading "State Reducer"
๐Ÿ‘จโ€๐Ÿ’ผ In this exercise, we want to prevent the toggle from updating the toggle state after it's been clicked 4 times in a row before resetting. We could easily add that logic to our reducer, but instead we're going to apply a computer science pattern called "Inversion of Control" where we effectively say: "Here you go! You have complete control over how this thing works. It's now your responsibility."
Your job is to enable people to provide a custom reducer so they can have complete control over how state updates happen in our <Toggle /> component.
As an aside, before React Hooks were a thing, this was pretty tricky to implement and resulted in pretty weird code, but with useReducer, this is WAY better. I โค๏ธ hooks. ๐Ÿ˜

Please set the playground first

Loading "State Reducer"
Loading "State Reducer"
Login to get access to the exclusive discord channel.
  • ๐ŸŽฃHooks
    General
    Terminal error when setting playground
    Natiq ๐Ÿš€:
    Every time I click on the "SET TO PLAYGROUND", the app stops with the following error. How can I fix...
    1 ยท 3 days ago
  • ๐ŸคฏAdvanced Patterns
    "ENV is not defined" error on MCP server with Claude desktop
    DBattou ๐Ÿš€:
    Hey Kent hope your doing good, I managed to use the EpicShop MCP server on both Cursor and Windsur...
    • โœ…2
    9 ยท a month ago
  • General
    Welcome to EpicReact.dev! Say Hello ๐Ÿ‘‹
    Kent C. Dodds โ—† ๐Ÿš€๐Ÿ†๐ŸŒŒ:
    Welcome to the first of many posts in the EpicReact.dev channel! Take a moment to introduce yourself...
    • ๐Ÿš€6
    59 ยท 4 days ago
  • ๐ŸคฏAdvanced Patterns
    Latest ref pattern
    anonymousBlack10:
    What is the real difference btw the two implementation of useDebounce? ``` // 1 function useDebounce...
    • โœ…1
    1 ยท a month ago
  • General
    error when installing the MCP server
    DBattou ๐Ÿš€:
    I tried to install the mcp server by following the instructions on the blog post here -> https://www...
    • ๐Ÿ‘1
    • โœ…1
    8 ยท 2 months ago
  • General
    Interviews with Experts -> Start Watching CTA gives regional restricted license error
    .shreyasvaidya ๐Ÿš€:
    I have purchased my course from India with the regional pricing method, and I am trying to watch the...
    • โœ…1
    4 ยท 3 months ago
  • General
    You are offline - warning
    marianavinyolas ๐ŸŒŒ ๐Ÿš€:
    Hi there! Today I want to start with the Advanced Patterns workshop, but after clone and run the rep...
    • โœ…1
    3 ยท 4 months ago
  • General
    โš›๏ธFundamentals
    Clicking on index.html when start opens in Terminal and not on the editor.
    Waddle ๐Ÿš€:
    Hello, just starting out with this and noticed that when I click on the 'index.html' file as display...
    • โœ…2
    1 ยท 4 months ago
  • General
    Am I following the course in the proper way?
    bauti ๐Ÿš€ ๐ŸŒŒ:
    The way im doing things in epic-react is: Clone the repo for the module i want to do (for example a...
    • โœ…1
    3 ยท 4 months ago
  • ๐ŸŽฃHooks
    General
    VSCode imports from wrong source
    mathemaat ๐Ÿš€:
    I encountered something silly that threw me off for a minute or two. I was working on the Tic Tac To...
    • โœ…1
    1 ยท 5 months ago
  • General
    Terminal Errors When Running Workshop App
    Giovanni ๐Ÿš€:
    Hello guys, I am facing an issue with the Workshop App, that basically I get this message over and...
    • โœ…1
    3 ยท 5 months ago
  • General
    Launch editor error: spawn code ENOENT
    Andrew Elans ๐ŸŒŒ ๐Ÿš€:
    Clicking index.html gives this error in VS Code. Both from Chrome and Safari. Anyone?
    • โœ…2
    6 ยท 9 months ago
  • General
    Cannot connect workshop app
    Philipp ๐Ÿš€:
    I try to connect with my Company MacBook and get the following error ๐Ÿ˜ฆ There was an error: unable t...
    • โœ…1
    5 ยท 6 months ago
  • General
    Problem generating the diff
    mikeyjmcc ๐Ÿš€:
    I am not sure what has changed but I am now receiving errors that the diff cannot be generated. This...
    • โœ…2
    1 ยท 6 months ago
  • General
    Problem with playground
    Xrayoptions ๐Ÿš€:
    Problem section doesn't show <@105755735731781632> how to fix it ?
    • โœ…1
    9 ยท 6 months ago
  • General
    How to run tests in IDE?
    anonymousBlack10:
    Is it possible to run the tests from the IDE or are they setup to be run just from the browser? Some...
    • โœ…1
    1 ยท 7 months ago
  • ๐ŸคฏAdvanced Patterns
    When to Use Slots Pattern vs. Compound Components
    sykhanh196:
    I'm currently learning advanced React patterns and have some questions. The slots pattern seems to e...
    • โœ…1
    1 ยท 7 months ago
  • General
    Launch editor error: Could not open 'index.html' from:'playground' in the editor.
    Japhet ๐Ÿš€ ๐Ÿ† ๐ŸŒŒ:
    I'm encountering an issue when trying to open a link from the file list. The error message I receive...
    • โœ…1
    15 ยท 9 months ago
  • General
    AI Assistant?
    John ๐Ÿš€:
    Kent has mentioned an AI assistant that he's using in VSCode. Is there any detail on what that is an...
    • โœ…2
    2 ยท 8 months ago
  • General
    Script to save playground folder
    larissapissurno ๐Ÿš€:
    Hi all, I personally like to take notes on the playground files, so in order to not lose this notes ...
    • โœ…1
    2 ยท 9 months ago
  • General
    Runninng Learning app on iPad?
    marcus_polonus ๐Ÿš€ ๐ŸŒŒ:
    Hi all, Did anyone managed to setup learning app on iPad? I tried to use codesandbox, but when I am...
    • โœ…1
    1 ยท 9 months ago
  • General
    โš›๏ธFundamentals
    Error boundary good practice
    Lloren ๐Ÿš€:
    I have always wondered if the error boundary is there a limit of error boundary that you can impleme...
    • โœ…1
    1 ยท 9 months ago
  • General
    Received this error when running the setup script for React Fundamentals
    ChrisP ๐Ÿš€:
    Hey guys, I am completely blocked at the moment. When I clone and run the setup for react fundamenta...
    • โœ…1
    2 ยท 9 months ago