0.2.1 ā€¢ Published 2 years ago

use-box v0.2.1

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

use-box

šŸ“¦ just a box, nobody use

ē®€å•ēš„č·Øē»„件ēŠ¶ę€ē®”ē†

Example

interface BoxState {
  label: string | undefined;
  size: number;
}

const labelBox = createBox(
  {
    label: undefined,
    size: 0,
  } as BoxState,
  {
    async fetch() {
      let {label, size} = fetch('https://box.server');

      return {
        label,
        size,
      };
    },
    increase(state, size) {
      if (state.size + size > 10) {
        return;
      }

      return {
        size: state.size + size,
      };
    },
  },
  {
    autoResolveDependencies: true,
  },
);

export const useLabelBox = labelBox.useBox;
const Component: FC = () => {
  const [{label, size}, {increase}] = useLabelBox();
  //
  return <></>;
};

// TODO: getter example & docs

Features

  • getter value
  • async action ( Support partial state update )
  • auto resolve update dependencies ( Power by Proxy )
  • types safe

License

MIT