Skip to content

Set of small react (16+) utilities that increase productivity

Notifications You must be signed in to change notification settings

kimmelsg/flashbang

Repository files navigation

flashbang

CircleCI Coverage Status

Install

npm install flashbang

Query State

Stores state in the url. Useful for search pages. Must be rendered inside react-router v4.

import { QueryState } from 'flashbang'

const example = ({ state, setState }) => (
  <div>
    <input
      value={state.test}
      onChange={e => setState({ test: e.target.value })}
    />
  </div>
);

export default QueryState(example);

Toggle

Toggle the display of data with three simple props!

import { Toggle } from 'flashbang'

<Toggle>
  <div toggle>Swap</div>

  <div on>This is shown when toggled</div>
  <div off>This is shown when not toggled</div>
</Toggle>

Paginate

Display 5 page numbers in either direction with next and previous buttons

Import the default css, or pass your own class names and use your own css!

import { Paginate } from 'flashbang';
import 'flashbang/dist/paginate/style.css';

export default () => (
  <Paginate
    page={5}
    pages={25}
    createURL={page => `?page=${page}`}
  />
);

Async Action

Changes text depending on promise status. Blocks onClick if a promise is in the middle of resolving, or finished.

import { AsyncAction } from 'flashbang'

<AsyncAction
  onClick={() => new Promise(resolve => setTimeout(resolve, 100))}
  before={<div>Create</div>}
  during={<div>Creating...</div>}
  after={<span>Created!</span>}
/>

Examples

The examples directory is a create-react-app module, so you can npm start or npm run build to see the demos live.

About

Set of small react (16+) utilities that increase productivity

Resources

Stars

Watchers

Forks

Packages

No packages published