Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Minimal State Container for React Apps using RxJS
Dugong is a minimal single-store state container for React that uses RxJS. You can use it with Redux/Flux or any other pattern/framework although that is not nessecary.
I made Dugong because I wanted a more clear way to know what every component consumes from the global state. Passing attributes through the props in apps with deep hierarchies many times leads to confusion and decrease the developement speed. Imagine a scenario where you have to inspect the parent of the parent of the parent of a component to know why a property is passed to it and if its value is the same as the value that the parent have or if the parent has manipulate it. Ofcourse you can still pass props from the parents, it is just my opinion that you should avoid it. Also I wanted to be able to have a Store on which I can iterate using reactive programming methods.
import { createStore } from 'dugong';
const initialState = {
ui: { ... },
businessLogic: { ... },
hello: "hello world",
...
...
};
createStore( initialState );
import { connect } from 'dugong';
@connect( 'hello' )
class MyHelloWorldComponent extends Component
{
render(){
return <div>{ this.state.hello }</div>;
}
}
import { getStore } from 'dugong';
class MyHelloWorldComponent extends Component
{
componentWillMount()
{
getStore().map( ( { ui } ) => ui.something )
.filter( something => something.length > 4 )
.subscribe( something => this.setState( { something } ) );
}
render(){
return <div>{ this.state.something }</div>;
}
}
updateStore()
directly inside the components.import { updateStore } from 'dugong';
class MyComponent extends Component
{
update( something )
{
updateStore( { something } );
}
render(){
return <input onChange={ e => this.updateStore( e.target.value ) }</input>;
}
}
// UIService
import { updateStore } from 'dugong';
export const updateSomething = value => updateStore( { something : value } );
// MyComponent
import UIService from 'dugong';
class MyComponent extends Component
{
update( value )
{
UIService.updateSomething( value );
}
render(){
return <input onChange={ e => this.updateStore( e.target.value ) }</input>;
}
}
Feel free to open issues, make suggestions or send PRs. This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code.
E-mail : avr.mav@gmail.com
Twitter: @avraamakis
MIT
FAQs
Minimal State Container for React Apps using RxJS
The npm package dugong receives a total of 39 weekly downloads. As such, dugong popularity was classified as not popular.
We found that dugong demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.