JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2483
  • Score
    100M100P100Q118900F
  • License MPL-2.0

A comprehensive library that unleashes the full potential of React 18 server components, providing customizable loading animation components alongside a fullscreen loader container. Designed to seamlessly integrate with React and Next.js.

Package Exports

  • react18-loaders
  • react18-loaders/client
  • react18-loaders/client/index.css
  • react18-loaders/client/loader-container
  • react18-loaders/client/loader-container/index.css
  • react18-loaders/dist
  • react18-loaders/dist/client
  • react18-loaders/dist/client/index.css
  • react18-loaders/dist/client/loader-container
  • react18-loaders/dist/client/loader-container/index.css
  • react18-loaders/dist/hooks
  • react18-loaders/dist/index.css
  • react18-loaders/dist/server
  • react18-loaders/dist/server/bars
  • react18-loaders/dist/server/bars/bars1
  • react18-loaders/dist/server/bars/bars1/index.css
  • react18-loaders/dist/server/bars/bars2
  • react18-loaders/dist/server/bars/bars2/index.css
  • react18-loaders/dist/server/bars/index.css
  • react18-loaders/dist/server/common
  • react18-loaders/dist/server/common/base
  • react18-loaders/dist/server/dots
  • react18-loaders/dist/server/dots/dots1
  • react18-loaders/dist/server/dots/dots1/index.css
  • react18-loaders/dist/server/dots/dots2
  • react18-loaders/dist/server/dots/dots2/index.css
  • react18-loaders/dist/server/dots/index.css
  • react18-loaders/dist/server/index.css
  • react18-loaders/hooks
  • react18-loaders/index.css
  • react18-loaders/server
  • react18-loaders/server/bars
  • react18-loaders/server/bars/bars1
  • react18-loaders/server/bars/bars1/index.css
  • react18-loaders/server/bars/bars2
  • react18-loaders/server/bars/bars2/index.css
  • react18-loaders/server/bars/index.css
  • react18-loaders/server/common
  • react18-loaders/server/common/base
  • react18-loaders/server/dots
  • react18-loaders/server/dots/dots1
  • react18-loaders/server/dots/dots1/index.css
  • react18-loaders/server/dots/dots2
  • react18-loaders/server/dots/dots2/index.css
  • react18-loaders/server/dots/index.css
  • react18-loaders/server/index.css
  • react18-loaders/styles

Readme

React18 Loaders

test Maintainability codecov Version Downloads npm bundle size

React18 Loaders is a comprehensive library designed to unlock the full potential of React 18 server components. It provides customizable loading animation components and a fullscreen loader container, seamlessly integrating with React and Next.js.

✅ Fully Treeshakable (import from react18-loaders/client/loader-container)

✅ Fully TypeScript Supported

✅ Leverages the power of React 18 Server components

✅ Compatible with all React 18 build systems/tools/frameworks

✅ Documented with Typedoc (Docs)

✅ Examples for Next.js, and Vite

Star this repository and share it with your friends.

Getting Started

Installation

pnpm add react18-loaders

or

npm install react18-loaders

or

yarn add react18-loaders

Want Lite Version? npm bundle size Version Downloads

pnpm add react18-loaders-lite

or

npm install react18-loaders-lite

or

yarn add react18-loaders-lite

You need r18gs as a peer-dependency

Import Styles

You can import styles globally or within specific components.

/* globals.css */
@import "react18-loaders/styles";
// layout.tsx
import "react18-loaders/styles";

For selective imports:

/* globals.css */
@import "react18-loaders/dist/client/index.css"; /** required if you are using LoaderContainer */
@import "react18-loaders/dist/server/bars/bars1/index.css";

Usage

Using loaders is straightforward.

import { Bars1 } from "react18-loaders/dist/server/bars/bars1";

export default function MyComponent() {
  return someCondition ? <Bars1 /> : <>Something else...</>;
}

For detailed API and options, refer to the API documentation.

Using LoaderContainer

LoaderContainer is a fullscreen component. You can add this component directly in your layout and then use useLoader hook to toggle its visibility.

// layout.tsx
<LoaderContainer />
     ...
// some other page or component
import { useLoader } from "react18-loaders/dist/hooks";

export default MyComponent() {
    const { setLoading } = useLoader();
    useCallback(()=>{
        setLoading(true);
        ...do some work
        setLoading(false);
    }, [])
    ...
}

License

This library is licensed under the MPL-2.0 open-source license.

This package also serves as an example demonstrating how to build and publish a React.js library compatible with React Server Components.

Please enroll in our courses or sponsor our work.


with 💖 by Mayank Kumar Chaudhari