Created
February 3, 2017 10:30
-
-
Save Leonid-Yeromin/8571f95182ecaaf82cee2b7cd633559c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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