New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

react-top-loading-bar

Package Overview
Dependencies
Maintainers
0
Versions
22
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-top-loading-bar

A very simple, highly customisable react top loader component.

  • 3.0.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
54K
increased by10.86%
Maintainers
0
Weekly downloads
 
Created
Source

react-top-loading-bar

NPM JavaScript Style Guide npm download

react-top-loading-bar

Install

  • using npm
npm install --save react-top-loading-bar
  • using yarn
yarn add react-top-loading-bar
  • CDN
https://unpkg.com/react-top-loading-bar

Usage

Using hooks

import { useLoadingBar } from "react-top-loading-bar";

const App = () => {
  const { start, complete } = useLoadingBar({
    color: "blue",
    height: 2,
  });

  return (
    <div>
      <button onClick={() => start()}>Start</button>
      <button onClick={() => complete()}>Complete</button>
    </div>
  );
};
Wrap the app with LoadingBarContainer
import { LoadingBarContainer } from "react-top-loading-bar";

const Parent = () => {
  return (
    <LoadingBarContainer>
      <App />
    </LoadingBarContainer>
  );
};

With ref

import { useRef } from "react";
import LoadingBar, { LoadingBarRef } from "react-top-loading-bar";

const App = () => {
  // prettier-ignore
  const ref = useRef<LoadingBarRef>(null);

  return (
    <div>
      <LoadingBar color="#f11946" ref={ref} shadow={true} />
      <button onClick={() => ref.current?.continuousStart()}>
        Start Continuous Loading Bar
      </button>
      <button onClick={() => ref.current?.staticStart()}>
        Start Static Loading Bar
      </button>
      <button onClick={() => ref.current?.complete()}>Complete</button>
    </div>
  );
};

With state

import { useState } from "react";
import LoadingBar from "react-top-loading-bar";

const App = () => {
  const [progress, setProgress] = useState(0);

  return (
    <div>
      <LoadingBar
        color="#f11946"
        progress={progress}
        onLoaderFinished={() => setProgress(0)}
      />
      <button onClick={() => setProgress(progress + 10)}>Add 10%</button>
      <button onClick={() => setProgress(progress + 20)}>Add 20%</button>
      <button onClick={() => setProgress(100)}>Complete</button>
    </div>
  );
};

Demo

Click here for demo

Built-in Methods

MethodsParametersDescriptions
start(loaderType?)continuous (default) or staticStarts the loading indicator. If type is "static" it will start the static bar otherwise it will start the animated continuous bar.
continuousStart(startingValue, refreshRate)Number (optional), Number(optional)Starts the loading indicator with a random starting value between 20-30, then repetitively after an refreshRate, increases it by a random value between 2-10. This continues until it reaches 90% of the indicator's width.
staticStart(startingValue)Number (optional)Starts the loading indicator with a random starting value between 30-50.
complete()Makes the loading indicator reach 100% of his width and then fade.
increase(value)NumberAdds a value to the loading indicator.
decrease(value)NumberDecreases a value to the loading indicator.
getProgress()Get the current progress value.

Properties

PropertyTypeDefaultDescription
progressNumber0The progress/width indicator, progress prop varies from 0 to 100.
colorStringredThe color of the loading bar, color take values like css property background: do, for example red, #000 rgb(255,0,0) etc.
shadowBooleantrueEnables / Disables shadow underneath the loader.
heightNumber2The height of the loading bar in pixels.
backgroundStringtransparentThe loader parent background color.
styleCSSPropertiesThe style attribute to loader's div
containerStyleCSSPropertiesThe style attribute to loader's container
shadowStyleCSSPropertiesThe style attribute to loader's shadow
transitionTimeNumber300Fade transition time in miliseconds.
loaderSpeedNumber500Loader transition speed in miliseconds.
waitingTimeNumber1000The delay we wait when bar reaches 100% before we proceed fading the loader out.
classNameStringYou can provide a class you'd like to add to the loading bar to add some styles to it
containerClassNameStringYou can provide a class you'd like to add to the loading bar container to add some css styles
onLoaderFinishedFunctionThis is called when the loading bar completes, reaches 100% of his width.

Migrate from V.1

  • Replace onRef prop with 'ref', assign it to a react ref. Access methods with reactRef.current.xxx

Migrate from V.2

  • Replace ref.current.continuousStart() with ref.current?.start()
  • Replace ref.current.staticStart() with ref.current?.start("static")

License

MIT © Klendi Goci | klendi.dev | GitHub @klendi

Keywords

FAQs

Package last updated on 22 Dec 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc