Giter VIP home page Giter VIP logo

redux-saga-devtools's Introduction

A Visual redux-saga monitor

this is still a WIP

How does it relate to other Redux devtools?

This would of course endup as a browser extension (chrome, firefox). But also intended to release as a themable React Component (or many React Components, one per view) so it can be embedded in other Redux devtools (redux-devtools-extension, reactotron or directly inside a React application)

Usage

  • npm i --save-dev redux-saga-devtools

You can see how it's used by consulting the examples. To play with you can start the 2 included demos. The F9 key toggles the dock open and closed.

  • npm run counter : cancellable counter counter example
  • npm run shopping-cart : Shopping cart example.

Note that the monitor uses the v0.13.0 of redux-saga which includes an improved monitor api.

Done so far

  • Structured Effect view
  • Actions/Reactions view (should redirect to Effect view instead (?))
  • JS object inspector
  • Highlight shared refs in the effect view (right now: Channels)
  • Selection management/keyboard navigation
  • Pin/Unpin Effect
  • Dockable view with resize/toggle visibility

Todos

Following Todos that I can think of. Ordering doesn't reflect priority.

  • Hide irrelevant path in the Reactions view
  • Search/filter command
  • Clear effect log (removes all previous Effects)
  • Auto folding/Framing for long running Sagas (with a long effect list)
  • Highlight shared refs for other objects (Tasks, Actions)
  • top/bottom/left/right docking to the Dock view
  • Add raw Effect view
  • Add 'time-lined' Effect view (effects on Row, Sagas on columns, useful to debug race conditions)
  • Show origin of dispatched Actions in the Reactions view (Saga, UI Component (possible?))

redux-saga-devtools's People

Contributors

abettadapur avatar andarist avatar modosc avatar salvoravida avatar yelouafi avatar zalmoxisus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

redux-saga-devtools's Issues

What with perfomance?

@yelouafi you made very helpful devtool for debugging. But after 50 and more iterations of watch / fork / cancel effects the project will work slower and slower. When turning off DockableSagaView, it's all OK.

I think it depend on quantity of effects, and how they are all rendered in Dock panel. But with hidden panel (if I will click Toogle), the same performance.

I've recorded cancellable-counter w/ and w/o DockableSagaView from your example. Notice how the button switches from Cancel increment (1) to increment after 5s.

With DockableSagaView

Without DockableSagaView

localize Effect View state

Currently shared refs (impl. for channels atm) are stored in the global Redux store. Since there can be multiple instances of the effect view (eg one top level, another in the reactions view). We need a state per instance approach (ie local React state)

Support Redux-Saga 1.0.0

AsEffects helpers are not compatible with the new version of redux saga, need to update effects.js to handle both versions

Issue with the race effect under React Native

Hi there,

I tried this morning to follow the advice given in this issue (redux-saga/redux-saga#1039) in order to monitor my saga. Unfortunately I was unable to proceed because of two problems:

uncaught at rootSaga 
 at rootSaga 
 at rootSaga 
 TypeError: Cannot read property 'push' of undefined
    at effectsById (http://192.168.1.100.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:117487:25)
    at combination (http://192.168.1.100.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:60471:29)
    at dispatch (http://192.168.1.100.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:60107:22)
    at Object.effectTriggered (http://192.168.1.100.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:117320:5)
    at runEffect (http://192.168.1.100.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:61776:32)
    at http://192.168.1.100.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:62047:7
    at Array.forEach (native)
    at runRaceEffect (http://192.168.1.100.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:62043:10)
    at runEffect (http://192.168.1.100.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:61812:549)
    at next (http://192.168.1.100.xip.io:8081/index.ios.bundle?platform=ios&dev=true&minify=false:61727:9)

I am using React Native 0.45.1, redux-saga 0.15.4, redux 3.7.1 and redux-saga-devtools 0.1.1

Thanks again for your work :)

Add tests for UI Components

Not sure for the solution of this one. I need just to test the behavior. Never used jest's snapshot testing before (besides it doesn't work on my win10 machine)

Default toggle?

Hey.. I might be missing something really simple here, but is there a way to set the toggle to be closed by default? Currently have to close it each time..

Thanks!

release the saga monitor store + selectors as a separate package

Releasing the non UI separately would benefit to to other redux devtools. the monitor's selectors could present normalized data into multiple forms (effects by parent/child relation, by action/reaction, task fork/join relation, channels inter-communication etc)

Built in examples do not work

I tried running npm run shopping-cart, but did not see any tools pop up in the example. I also saw propTypes errors for the hasChildren and collapsed properties.

Is this project still alive?

add redux-saga@^0.13.0 as peerDependency

Really great bundle. Love seeing how it is coming together.

So... I installed redux-saga-devtools as a dev dependency, but I was still on [email protected].

I spent the last hour trying to figure out why redux saga wasn't responding to effects, before realizing that I didn't have the correct version of redux-saga.

If you add redux-saga as a peer dependency, then npm will warn the user if the user doesn't have the right version, but it will be up to the user to install.

Thanks!

  • John

Proptype warnings

new React gives warnings for proptype importation from React. should be using prop-types package instead

`prop-types` errors

hi team,

when running both examples I'm getting prop-types errors.

Please see below:

Warning: Failed prop type: DockedSagaMonitorView: prop type darkTheme is invalid; it must be a function, usually from the prop-types package, but received undefined.
in DockedSagaMonitorView (created by DockableSagaView)
in DockableSagaView
in div

checkPropTypes.js:19 Warning: Failed prop type: SagaMonitorView: prop type darkTheme is invalid; it must be a function, usually from the prop-types package, but received undefined.
in SagaMonitorView (created by Connect(SagaMonitorView))

Warning: Failed prop type: The prop collapsed is marked as required in EffectEntry, but its value is undefined.
in EffectEntry (created by Connect(EffectEntry))
in Connect(EffectEntry) (created by EffectList)

can you help please?

Not working with latest React Native

Error 1: Unhandled JS Exception: Expected a component class, got [object Object].
Error 2: Accessing PropTypes via the main React package is deprecated. Use the prop-types package from npm instead.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.