Skip to content

This project, titled "Remaining Meals - Building Using a Custom Context Provider Component," is a meal tracking application built using React.js. The application helps users track their daily meals by providing a list of meals for the day and allowing them to mark meals as consumed. It utilizes custom context providers and hooks to manage state and

Notifications You must be signed in to change notification settings

NandhuTee/Remaining-Meals---Building-Using-a-Custom-Context-Provider-Component-React-Co---dhgfrvqfe8vf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

File Structure: The application is structured into separate components - MealsProvider, MealsList, Counter, and other supporting files like layout.js and page.js.

MealsProvider Component:

This component serves as the context provider for managing the state related to meals. It initializes the state with an array of todaysMeals. Provides a function tickMeal to toggle the ticked property of a meal object. Utilizes the useState hook to manage state and createContext to create a context for sharing state with child components. Note the usage of the 'use client' pragma, indicating that this file should be treated as a client-side component.

MealsList Component:

This component displays the list of meals and allows users to toggle their checked state using checkboxes. It uses the useContext hook to access the MealContext, which provides the meals state and tickMeal function. Renders a list of checkboxes based on the meals state, with each checkbox reflecting the checked state of a meal. Utilizes the onChange event handler to call the tickMeal function when a checkbox is clicked, updating the state accordingly.

Counter Component:

This component displays the count of remaining meals that are not checked. It also uses the useContext hook to access the MealContext and retrieve the meals state. Filters the meals array to count the number of meals with the ticked property set to false. Renders the count of remaining meals.

Layout Component (layout.js):

This component defines the layout structure for the HTML document. It includes global stylesheets and font imports.

Page Component (page.js):

This component serves as the entry point for the application. It imports and renders the MealsProvider, MealsList, and Counter components.

Running the Application:

The application is built using Next.js, which provides features like server-side rendering and routing. To run the application, you can use the npm run dev command, which starts the development server and opens the application in the browser. By understanding this flow and the concepts involved, you can effectively manage state, share data between components using context, and create interactive user interfaces in your React application.

This is a Next.js project bootstrapped with create-next-app.

Getting Started

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying app/page.js. The page auto-updates as you edit the file.

This project uses next/font to automatically optimize and load Inter, a custom Google Font.

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.

About

This project, titled "Remaining Meals - Building Using a Custom Context Provider Component," is a meal tracking application built using React.js. The application helps users track their daily meals by providing a list of meals for the day and allowing them to mark meals as consumed. It utilizes custom context providers and hooks to manage state and

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published