Skip to content

Instantly share code, notes, and snippets.

@adregan
Last active August 29, 2015 14:22
Show Gist options
  • Save adregan/18de4f811e6a67384a0c to your computer and use it in GitHub Desktop.
Save adregan/18de4f811e6a67384a0c to your computer and use it in GitHub Desktop.
import { Actions, Store, Flux } from 'flummox';
class MessageActions extends Actions {
newMessage(content) {
return content; // automatically dispatched
}
}
class MessageStore extends Store {
constructor(flux) {
super();
const messageActions = flux.getActions('messages');
this.register(messageActions.newMessage, this.handleNewMessage);
this.messageCounter = 0;
this.state = {};
}
handleNewMessage(content) {
const id = this.messageCounter++;
console.log(this.state);
this.setState({
[id]: {
content,
id,
},
});
console.log(this.state);
}
}
export default class flux extends Flux {
constructor() {
super();
this.createActions('messages', MessageActions);
this.createStore('messages', MessageStore, this);
}
}
appRouter.get('*', (req, res) => {
const flux = new Flux;
flux.getActions('messages').newMessage('Hello, world!');
var router = Router.create({
routes: routes,
location: req.originalUrl,
});
router.run(function (Handler) {
var content = React.renderToString(<Handler flux={flux} />);
return res.render('app.ejs', {content: content, flux: flux.serialize()});
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment