How to use the redux-loop.Effects.lift function in redux-loop

To help you get started, we’ve selected a few redux-loop 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 flow-typed / flow-typed / definitions / npm / redux-loop_v2.2.x / flow_v0.33.x- / test_effects.js View on Github external
function nestedAction(time: Date, action: { type: $Subtype }) {
  return { type: "NESTED_ACTION", payload: action, time };
}

function nestedActionWrongArgOrder(
  action: { type: $Subtype },
  time: Date
) {
  return { type: "NESTED_ACTION", payload: action, time };
}

const nestedEffect = Effects.call(zeroArg);

// ok
Effects.lift(nestedEffect, nestedAction, new Date());

// $ExpectError
Effects.lift(nestedEffect, nestedActionWrongArgOrder, new Date());
github minedeljkovic / redux-elmish / src / install.js View on Github external
function toReduxLoopEffect(effect) { // eslint-disable-line consistent-return
  switch (effect.type) { // eslint-disable-line default-case
    case 'NONE': return Effects.none();
    case 'PROMISE': {
      const factory = () => { // eslint-disable-line arrow-body-style
        return effect.factory()
          .then(result => effect.successTagger(result), error => effect.failTagger(error));
      };
      return Effects.promise(factory);
    }
    case 'MAP': {
      return Effects.lift(toReduxLoopEffect(effect.effect), effect.tagger);
    }
    case 'BATCH': {
      return Effects.batch(effect.effects.map(batchedEffect => toReduxLoopEffect(batchedEffect)));
    }
  }
}
github minedeljkovic / redux-elmish / examples / pair-of-counters / src / boilerplate.js View on Github external
function toReduxLoopEffect(effect) {
  switch(effect.type) {
    case 'NONE': return Effects.none();
    case 'PROMISE': {
      const factory = () => {
        return effect.factory()
          .then(result => effect.successTagger(result), error => effect.failTagger(error))
      };
      return Effects.promise(factory);
    };
    case 'MAP': {
      return Effects.lift(toReduxLoopEffect(effect.effect), effect.tagger);
    };
    case 'BATCH': {
      return Effects.batch(effect.effects.map(batchedEffect => toReduxLoopEffect(batchedEffect)));
    };
  }
}
function toReduxLoop(reduction) {
github mboperator / infinitely-composable-webapp-demo / src / components / Dashboard / module.js View on Github external
updateChild: ({ children, ...state }, { payload, meta }) => {
      const childToUpdate = children[meta.id];
      const [updatedChild, neff] = module.reducer(childToUpdate, payload);
      const effects =
        Effects.lift(neff, a => module.actions.updateChild(a, { id: meta.id }));

      return loop(
        { ...state, children: { ...children, [meta.id]: updatedChild } },
        effects,
      );
    },
  },
github mboperator / infinitely-composable-webapp-demo / src / components / Dashboard / module.js View on Github external
childrenEff.map((effect, id) =>
          Effects.lift(effect, a => module.actions.updateChild(a, { id })),
        ),
github mboperator / infinitely-composable-webapp-demo / src / components / Dashboard / module.js View on Github external
updateContent: (state, { payload: action }) => {
      const [content, effect] = childModules[state.contentType].reducer(
        state.content,
        action,
      );

      return loop(
        { ...state, content },
        Effects.lift(effect, a => module.actions.updateContent(a)),
      );
    },
    split: (state, { payload: orientation }) => {