Skip to content

Instantly share code, notes, and snippets.

@Leonid-Yeromin
Created February 3, 2017 10:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Leonid-Yeromin/8571f95182ecaaf82cee2b7cd633559c to your computer and use it in GitHub Desktop.
Save Leonid-Yeromin/8571f95182ecaaf82cee2b7cd633559c to your computer and use it in GitHub Desktop.
var TS = app('Core');
var el = app('React').createElement;
var render = app('ReactDOM').render;
var createStore = app('Redux').createStore;
var applyMiddleware = app('Redux').applyMiddleware;
var Provider = app('ReactRedux').Provider;
var DocumentService = app('DocumentService');
var thunk = app('ReduxThunk');
var reducers = require('./src/reducers');
var ReceiptAdvice = require('./src/containers/receiptAdvice');
var loadDocumentFromUrl = require('./src/actions/document').loadDocumentFromUrl;
var loadMetadataByReference = require('./src/actions/documentsMetadata').loadMetadataByReference;
var loadRuntime = require('./src/actions/runtime').loadRuntime;
var setCurrentDocument = require('./src/actions/currentDocument').setCurrentDocument;
var didCurrentDocumentLoad = require('./src/libs/selectors').didCurrentDocumentLoad;
var getDocumentBranchId = require('./src/selectors/document').getDocumentBranchId;
var getParentDocumentBusinessId = require('./src/selectors/document').getParentDocumentBusinessId;
var documentIsNotLoaded = require('./src/selectors/document').documentIsNotLoaded;
var getMetadataByBusinessId = require('./src/selectors/metadata').getMetadataByBusinessId;
var CompanyService = app('CompanyService');
var errorMiddleware = require('./src/middlewares/errorMiddleware');
var compose = app('Redux').compose;
var composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
var enhancers = composeEnhancers(
applyMiddleware(
thunk.withExtraArgument({
DocumentService: DocumentService,
CompanyService: CompanyService
}),
errorMiddleware
)
);
var store = createStore(
reducers,
enhancers
);
var loadDocument = function() {
var docId = window.location.hash.split('/')[1];
store.dispatch(setCurrentDocument(docId));
if (!didCurrentDocumentLoad(store.getState())) {
store.dispatch(loadDocumentFromUrl(docId)).then(function() {
var receiptAdvice = getDocument(store.getState(), docId);
var parentDocumentBusinessId = getParentDocumentBusinessId(receiptAdvice);
var branchId = getDocumentBranchId(receiptAdvice);
var parentDocumentMetadata = getMetadataByBusinessId(store.getState(), parentDocumentBusinessId);
if(parentDocumentMetadata !== undefined) {
return;
}
var parentDocumentReference = {
businessId: parentDocumentBusinessId,
branchId: branchId
};
return store.dispatch(loadMetadataByReference(parentDocumentReference)).then(function(parentDocumentMetadata) {
if(documentIsNotLoaded(store.getState(), parentDocumentMetadata.DocumentId)) {
return store.dispatch(loadDocumentFromUrl(parentDocumentMetadata.DocumentId));
}
});
})
}
};
module.exports = TS.component({
type: 'ui',
render: function(target) {
ts.ui.TopBar.title('View Goods Receipt');
// ts.ui.TopBar.buttons([
// {label: 'Download as UBL'}
// ]);
ts.ui.TopBar.blue();
window.addEventListener('hashchange', loadDocument);
store.dispatch(loadRuntime(runtime));
loadDocument();
render(
el(Provider, { store: store },
el(ReceiptAdvice)),
target
);
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment