Skip to content

Commit

Permalink
Add dist.
Browse files Browse the repository at this point in the history
  • Loading branch information
arunoda committed Nov 30, 2016
1 parent 49268ca commit 75554f9
Show file tree
Hide file tree
Showing 26 changed files with 260 additions and 526 deletions.
4 changes: 2 additions & 2 deletions dist/context.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
value: true
});

exports.default = function (reduxStore, domNode, provider) {
exports.default = function (clientStore, domNode, provider) {
return {
reduxStore: reduxStore,
clientStore: clientStore,
domNode: domNode,
provider: provider
};
Expand Down
17 changes: 10 additions & 7 deletions dist/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,13 @@ exports.default = function (domNode, provider) {
throw new Error('provider is not extended from the base Provider');
}

var reducer = (0, _redux.combineReducers)((0, _extends3.default)({}, _shortcuts2.default.reducers, _api2.default.reducers, _ui2.default.reducers));
var defaultState = (0, _extends3.default)({}, _shortcuts2.default.defaultState, _api2.default.defaultState, _ui2.default.defaultState);
var clientStore = new _podda2.default(defaultState);
clientStore.registerAPI('toggle', function (store, key) {
return store.set(key, !store.get(key));
});

var devTools = window.devToolsExtension && window.devToolsExtension();
var reduxStore = (0, _redux.createStore)(reducer, devTools);

var context = (0, _context2.default)(reduxStore, domNode, provider);
var context = (0, _context2.default)(clientStore, domNode, provider);
var app = (0, _mantraCore.createApp)(context);

app.loadModule(_shortcuts2.default);
Expand All @@ -40,10 +41,12 @@ exports.default = function (domNode, provider) {
app.init();
};

var _redux = require('redux');

var _mantraCore = require('mantra-core');

var _podda = require('podda');

var _podda2 = _interopRequireDefault(_podda);

var _context = require('./context.js');

var _context2 = _interopRequireDefault(_context);
Expand Down
138 changes: 109 additions & 29 deletions dist/modules/api/actions/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,61 +3,141 @@
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.jumpToStory = undefined;

var _extends2 = require('babel-runtime/helpers/extends');

var _extends3 = _interopRequireDefault(_extends2);

var _keys = require('babel-runtime/core-js/object/keys');

var _keys2 = _interopRequireDefault(_keys);

exports.ensureKind = ensureKind;
exports.ensureStory = ensureStory;

var _lodash = require('lodash.pick');

var _lodash2 = _interopRequireDefault(_lodash);

var _ = require('./');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var _api = require('../configs/reducers/api');
function _jumpToStory(storyKinds, selectedKind, selectedStory, direction) {
var flatteredStories = [];
var currentIndex = -1;

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
storyKinds.forEach(function (_ref) {
var kind = _ref.kind,
stories = _ref.stories;

stories.forEach(function (story) {
flatteredStories.push({ kind: kind, story: story });
if (kind === selectedKind && story === selectedStory) {
currentIndex = flatteredStories.length - 1;
}
});
});

var jumpedStory = flatteredStories[currentIndex + direction];
if (!jumpedStory) {
return { selectedKind: selectedKind, selectedStory: selectedStory };
}

return {
selectedKind: jumpedStory.kind,
selectedStory: jumpedStory.story
};
}

exports.jumpToStory = _jumpToStory;
function ensureKind(storyKinds, selectedKind) {
if (!storyKinds) return selectedKind;

var found = storyKinds.find(function (item) {
return item.kind === selectedKind;
});
if (found) return found.kind;
// if the selected kind is non-existant, select the first kind
var kinds = storyKinds.map(function (item) {
return item.kind;
});
return kinds[0];
}

function ensureStory(storyKinds, selectedKind, selectedStory) {
if (!storyKinds) return selectedStory;

var kindInfo = storyKinds.find(function (item) {
return item.kind === selectedKind;
});
if (!kindInfo) return null;

var found = kindInfo.stories.find(function (item) {
return item === selectedStory;
});
if (found) return found;

return kindInfo.stories[0];
}

exports.default = {
setStories: function setStories(_ref, stories) {
var reduxStore = _ref.reduxStore;
setStories: function setStories(_ref2, stories) {
var clientStore = _ref2.clientStore;

reduxStore.dispatch({
type: _.types.SET_STORIES,
stories: stories
clientStore.update(function (state) {
var selectedKind = ensureKind(stories, state.selectedKind);
var currentSelectedStory = selectedKind === state.selectedKind ? state.selectedStory : null;
var selectedStory = ensureStory(stories, selectedKind, currentSelectedStory);

return {
stories: stories,
selectedStory: selectedStory,
selectedKind: selectedKind
};
});
},
selectStory: function selectStory(_ref2, kind, story) {
var reduxStore = _ref2.reduxStore;
selectStory: function selectStory(_ref3, kind, story) {
var clientStore = _ref3.clientStore;

clientStore.update(function (state) {
var selectedKind = ensureKind(state.stories, kind);
var selectedStory = ensureStory(state.stories, selectedKind, story);

reduxStore.dispatch({
type: _.types.SELECT_STORY,
kind: kind,
story: story
return { selectedKind: selectedKind, selectedStory: selectedStory };
});
},
jumpToStory: function jumpToStory(_ref3, direction) {
var reduxStore = _ref3.reduxStore;
jumpToStory: function jumpToStory(_ref4, direction) {
var clientStore = _ref4.clientStore;

reduxStore.dispatch({
type: _.types.JUMP_TO_STORY,
direction: direction
clientStore.update(function (state) {
return _jumpToStory(state.stories, state.selectedKind, state.selectedStory, direction);
});
},
setOptions: function setOptions(_ref4, options) {
var reduxStore = _ref4.reduxStore;
setOptions: function setOptions(_ref5, options) {
var clientStore = _ref5.clientStore;

clientStore.update(function (state) {
var newOptions = (0, _lodash2.default)(options, (0, _keys2.default)(state.uiOptions));
var updatedOptions = (0, _extends3.default)({}, state.uiOptions, newOptions);

reduxStore.dispatch({
type: _.types.SET_OPTIONS,
options: (0, _lodash2.default)(options, (0, _keys2.default)(_api.defaultState.options))
return { uiOptions: updatedOptions };
});
},
setQueryParams: function setQueryParams(_ref5, customQueryParams) {
var reduxStore = _ref5.reduxStore;
setQueryParams: function setQueryParams(_ref6, customQueryParams) {
var clientStore = _ref6.clientStore;

clientStore.update(function (state) {
var updatedQueryParams = (0, _extends3.default)({}, state.customQueryParams, customQueryParams);

(0, _keys2.default)(customQueryParams).forEach(function (key) {
if (updatedQueryParams[key] === null) {
delete updatedQueryParams[key];
}
});

reduxStore.dispatch({
type: _.types.SET_QUERY_PARAMS,
customQueryParams: customQueryParams
return {
customQueryParams: updatedQueryParams
};
});
}
};
10 changes: 0 additions & 10 deletions dist/modules/api/actions/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,13 @@
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.types = undefined;

var _api = require('./api');

var _api2 = _interopRequireDefault(_api);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

// define redux actions
var types = exports.types = {
SET_STORIES: 'API_SET_STORIES',
SELECT_STORY: 'API_SELECT_STORY',
JUMP_TO_STORY: 'API_JUMP_TO_STORY',
SET_OPTIONS: 'API_SET_OPTIONS',
SET_QUERY_PARAMS: 'API_SET_QUERY_PARAMS'
};

exports.default = {
api: _api2.default
};
26 changes: 11 additions & 15 deletions dist/modules/api/configs/init_api.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
value: true
});

exports.default = function (provider, reduxStore, actions) {
exports.default = function (provider, clientStore, actions) {
var callbacks = new _events.EventEmitter();
var currentKind = void 0;
var currentStory = void 0;
Expand Down Expand Up @@ -38,11 +38,9 @@ exports.default = function (provider, reduxStore, actions) {
(_actions$shortcuts = actions.shortcuts).setOptions.apply(_actions$shortcuts, arguments);
},
getQueryParam: function getQueryParam(key) {
var _reduxStore$getState = reduxStore.getState(),
api = _reduxStore$getState.api;

if (api.customQueryParams) {
return api.customQueryParams[key];
var state = clientStore.getAll();
if (state.customQueryParams) {
return state.customQueryParams[key];
}
return undefined;
}
Expand All @@ -51,20 +49,18 @@ exports.default = function (provider, reduxStore, actions) {
provider.handleAPI(providerApi);

// subscribe to redux store and trigger onStory's callback
reduxStore.subscribe(function () {
var _reduxStore$getState2 = reduxStore.getState(),
api = _reduxStore$getState2.api;

if (!api) return;
clientStore.subscribe(function () {
var state = clientStore.getAll();
if (!state.selectedKind) return;

if (api.selectedKind === currentKind && api.selectedStory === currentStory) {
if (state.selectedKind === currentKind && state.selectedStory === currentStory) {
// No change in the selected story so avoid emitting 'story'
return;
}

currentKind = api.selectedKind;
currentStory = api.selectedStory;
callbacks.emit('story', api.selectedKind, api.selectedStory);
currentKind = state.selectedKind;
currentStory = state.selectedStory;
callbacks.emit('story', state.selectedKind, state.selectedStory);
// providerApi._onStoryCallback(api.selectedKind, api.selectedStory);
});
};
Expand Down
Loading

0 comments on commit 75554f9

Please sign in to comment.