thin-react-context

1.0.0 • Public • Published

This code imports React, some utility functions, and types from 'thin-backend', and the previously created UserContext. It defines an interface UserContextProviderProps with a single property, children, which is of type React.ReactNode

  • The code then exports a function called UserContextProvider that takes a UserContextProviderProps object as an argument. Inside the function, it defines two state variables, user and userId, with their respective setter functions, setUser and setUserId.

  • The React.useEffect hook is used to asynchronously fetch the current user ID and the corresponding user object when the component is mounted. If a userId is found, it is set using setUserId, and the corresponding user object is set using setUser.

  • Finally, the UserContext.Provider component is rendered, wrapping the props.children with a value object containing user, userId, setUser, and setUserId. This allows any descendant components to access and manipulate the user state through the UserContext.

Thin Backend

Thin Backend is a lightweight, opinionated, and extensible backend framework for building full-stack web applications. It is built on top of the Express framework and uses MongoDB as its database.

App.tsx

import React from 'react';
import UserContextProvider from './context/UserProvider';
import ChildComponent from './ChildComponent';

function App() {
    return (
        <UserContextProvider>
            <ChildComponent />
        </UserContextProvider>
    );
}

Profile.tsx

import React from 'react';
import { UserContext } from './context/UserContext';

function Profile() {
    const { user, setUser, userId, setUserId } = React.useContext(UserContext);

    const handleUserUpdate = (updatedUser) => {
        // Update user data
        setUser(updatedUser);
    };

    return (
        <div>
            <p>User ID: {userId}</p>
            <p>Email: {user?.email}</p>
            <button onClick={() => handleUserUpdate(newUser)}>Update User</button>
        </div>
    );
}

In these examples, the ParentComponent wraps the ChildComponent with the UserContextProvider, which manages the user data. The ChildComponent then accesses and manipulates the user data using the UserContext values provided by the UserContextProvider.

Package Sidebar

Install

npm i thin-react-context

Weekly Downloads

0

Version

1.0.0

License

ISC

Unpacked Size

18.4 kB

Total Files

7

Last publish

Collaborators

  • dirheimerb1