appFactory.js 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import React from 'react'
  2. import { FETCH_CONFIG } from './helper.js'
  3. import i18n from './i18n.js'
  4. export function appFactory (WrappedComponent) {
  5. return class AppFactory extends React.Component {
  6. renderAppFull = (appConfig, user, content) => GLOBAL_renderAppFull({
  7. loggedUser: user.logged ? user : {},
  8. config: {
  9. ...appConfig,
  10. domContainer: 'appContainer',
  11. apiUrl: FETCH_CONFIG.apiUrl,
  12. mockApiUrl: FETCH_CONFIG.mockApiUrl,
  13. apiHeader: FETCH_CONFIG.headers,
  14. translation: i18n.store.data
  15. },
  16. content
  17. })
  18. renderAppPopupCreation = (appConfig, user, idWorkspace, idFolder) => GLOBAL_renderAppPopupCreation({
  19. loggedUser: user.logged ? user : {},
  20. config: {
  21. ...appConfig,
  22. domContainer: 'popupCreateContentContainer',
  23. apiUrl: FETCH_CONFIG.apiUrl,
  24. mockApiUrl: FETCH_CONFIG.mockApiUrl,
  25. apiHeader: FETCH_CONFIG.headers // should this be used by app ? right now, apps have their own headers
  26. },
  27. idWorkspace,
  28. idFolder: idFolder === 'null' ? null : idFolder
  29. })
  30. emitEventApp = (type, data) => GLOBAL_dispatchEvent({ type, data })
  31. render () {
  32. return (
  33. <WrappedComponent
  34. {...this.props}
  35. renderAppFull={this.renderAppFull}
  36. renderAppPopupCreation={this.renderAppPopupCreation}
  37. emitEventApp={this.emitEventApp}
  38. // hideApp={this.hideApp}
  39. />
  40. )
  41. }
  42. }
  43. }
  44. export default appFactory