elementos
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

elementos

Composable reactive state management

NPM JavaScript Style Guide

Elementos is a framework-agnostic, reactive state management library with an emphasis on state composition and encapsulation.

Please see the full documentation!

Install

npm install --save elementos

Basic Usage

Open in CodeSandbox

import { atom, molecule, batched } from 'elementos'
 
const createVisibility$ = (defaultValue) => {
  return atom(defaultValue, {
    actions: (set) => ({
      open: () => set(true),
      close: () => set(false)
    })
  });
};
 
const createDialog$ = ({ isOpen = false, context = null } = {}) => {
  const visibility$ = createVisibility$(isOpen);
  const context$ = atom(context);
 
  const dialog$ = molecule(
    {
      visibility: visibility$,
      context: context$
    },
    {
      actions: ({ visibility, context }) => ({
        open: batched((nextContext) => {
          context.actions.set(nextContext);
          visibility.actions.open();
        }),
        close: batched(() => {
          context.actions.set(null);
          visibility.actions.close();
        })
      }),
      deriver: ({ visibility, context }) => ({
        isOpen: visibility,
        context
      })
    }
  );
 
  return dialog$;
};

License

MIT © malerba118

Readme

Keywords

none

Package Sidebar

Install

npm i elementos

Weekly Downloads

2

Version

1.0.0

License

MIT

Unpacked Size

93.4 kB

Total Files

18

Last publish

Collaborators

  • malerba118