Security News
Research
Supply Chain Attack on Rspack npm Packages Injects Cryptojacking Malware
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
ember-redux
Advanced tools
Predictable state management for ember apps
ember redux requires ember v3.6+ and node >= 8. If you need support for an older version of ember use the v5 release
ember install ember-redux
Counter https://ember-twiddle.com/5bee7478e4216abe49f1c0a439bae352
TodoMVC https://ember-twiddle.com/4bb9c326a7e54c739b1f5a5023ccc805
import Component from '@ember/component';
import hbs from 'htmlbars-inline-precompile';
import { connect } from 'ember-redux';
import getUsersByAccountId from '../reducers';
import fetch from 'fetch';
const stateToComputed = (state, attrs) => ({
users: getUsersByAccountId(state, attrs.accountId)
});
const dispatchToActions = (dispatch) => ({
remove: (id) => fetch(`/api/users/${id}`, {method: 'DELETE'}).then(fetched => fetched.json()).then(response => dispatch({type: 'REMOVE_USER', id: id}))
});
const UserListComponent = Component.extend({
layout: hbs`
{{yield users (action "remove")}}
`
});
export default connect(stateToComputed, dispatchToActions)(UserListComponent);
import Component from '@ember/component';
import hbs from 'htmlbars-inline-precompile';
const UserTableComponent = Component.extend({
layout: hbs`
{{#each users as |user|}}
<div>{{user.name}}</div>
<button onclick={{action remove user.id}}>remove</button>
{{/each}}
`
});
export default UserTableComponent;
{{#user-list accountId=accountId as |users remove|}}
{{user-table users=users remove=remove}}
{{/user-list}}
As of version 6 ember-redux now supports both ember component and glimmer component. One brief example of glimmer components and ember redux below.
import Component from '@glimmer/component';
import { action } from '@ember/object';
import { connect } from 'ember-redux';
import getUsersByAccountId from '../reducers';
import fetch from 'fetch';
const stateToComputed = (state, attrs) => ({
users: getUsersByAccountId(state, attrs.accountId)
});
const dispatchToActions = (dispatch) => ({
remove: (id) => fetch(`/api/users/${id}`, {method: 'DELETE'}).then(fetched => fetched.json()).then(response => dispatch({type: 'REMOVE_USER', id: id}))
});
class MyClazz extends Component {
@action
example() {
this.actions.remove();
}
}
export default connect(stateToComputed, dispatchToActions)(MyClazz);
Install the redux dev tools extension.
Enjoy!
yarn
ember test
Copyright © 2019 Toran Billups https://toranbillups.com
Licensed under the MIT License
FAQs
ember-cli addon that provides simple redux bindings for ember.js
The npm package ember-redux receives a total of 350 weekly downloads. As such, ember-redux popularity was classified as not popular.
We found that ember-redux demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers 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
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.
Security News
Sonar’s acquisition of Tidelift highlights a growing industry shift toward sustainable open source funding, addressing maintainer burnout and critical software dependencies.