How to use the @dbeining/react-atom.deref function in @dbeining/react-atom

To help you get started, we’ve selected a few @dbeining/react-atom examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github smapiot / piral / src / packages / piral-core / src / state / actions / data.ts View on Github external
export function readDataItem(ctx: Atom, key: string) {
  return deref(ctx).data[key];
}
github njordhov / react-blockstack / src / index.js View on Github external
function signOut(e) {
  const { userSession } = deref(contextAtom)
  const update = { userData: null,
                   signIn: signIn,
                   signOut: null,
                   person: null }
  setContext( update )
  userSession.signUserOut()
}
github smapiot / piral / src / packages / piral-core / src / hooks / globalState.ts View on Github external
function useDirectAtom(atom: any, opts: any) {
  const state = deref(atom);
  const select = opts && opts.select;
  return isfunc(select) ? select(state) : state;
}
github smapiot / piral / src / packages / piral-feeds / src / actions.ts View on Github external
export function updateFeed(
  ctx: Atom,
  id: string,
  item: TItem,
  reducer: FeedReducer,
) {
  const feed = deref(ctx).feeds[id];
  const result = reducer(feed.data, item);

  if (result instanceof Promise) {
    return result
      .then(data => loadedFeed(ctx, id, data, undefined))
      .catch(error => loadedFeed(ctx, id, undefined, error));
  } else if (result !== feed.data) {
    loadedFeed(ctx, id, result, undefined);
  }
}
github smapiot / piral / src / packages / piral-search / src / actions.ts View on Github external
export function triggerSearch(ctx: Atom, query?: string, immediate = false): Disposable {
  const state = deref(ctx);
  const providers = state.registry.searchProviders;
  const { input, results } = state.search;
  const { loading } = results;

  if (query === undefined) {
    query = input;
  }

  if (input !== query || !loading) {
    const allProviders = Object.keys(providers);
    const providerKeys = allProviders.filter(m => !providers[m].onlyImmediate || immediate);
    const load = !!query && providerKeys.length > 0;
    resetSearchResults(ctx, query, load);

    if (load) {
      let searchCount = providerKeys.length;
github smapiot / piral / src / packages / piral-translate / src / actions.ts View on Github external
function getLocalizer(ctx: Atom) {
  return deref(ctx).localizer;
}

@dbeining/react-atom

State management made simple for React. Built on React Hooks. Inspired by `atom`s in `reagent.cljs`.

MIT
Latest version published 3 years ago

Package Health Score

48 / 100
Full package analysis