global state store

This commit is contained in:
Peter Cottle 2015-03-28 14:11:47 -07:00
parent 8493b51ec2
commit e03bdc619f
5 changed files with 95 additions and 12 deletions

View file

@ -7,7 +7,6 @@ var EventEmitter = require('events').EventEmitter;
var assign = require('object-assign');
var ActionTypes = AppConstants.ActionTypes;
var CHANGE_EVENT = 'change';
var DEFAULT_LOCALE = 'en_US';
// resolve the messy mapping between browser language
@ -50,8 +49,11 @@ function _getLocaleFromHeader(langString) {
}
var _locale = DEFAULT_LOCALE;
var LocaleStore = assign({}, EventEmitter.prototype, {
var LocaleStore = assign(
{},
EventEmitter.prototype,
AppConstants.StoreSubscribePrototype,
{
getDefaultLocale: function() {
return DEFAULT_LOCALE;
},
@ -64,14 +66,6 @@ var LocaleStore = assign({}, EventEmitter.prototype, {
return assign({}, headerLocaleMap);
},
subscribe: function(cb) {
this.on(CHANGE_EVENT, cb);
},
unsubscribe: function(cb) {
this.removeListener(CHANGE_EVENT, cb);
},
getLocale: function() {
return _locale;
},
@ -95,7 +89,7 @@ var LocaleStore = assign({}, EventEmitter.prototype, {
}
if (shouldInform) {
LocaleStore.emit(CHANGE_EVENT);
LocaleStore.emit(AppConstants.CHANGE_EVENT);
}
})