appFactory.js 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import React from 'react'
  2. import { FETCH_CONFIG } from './helper.js'
  3. export function appFactory (WrappedComponent) {
  4. return class AppFactory extends React.Component {
  5. renderApp = (appConfig, user, content) => GLOBAL_renderApp({
  6. loggedUser: user.logged ? user : {},
  7. config: {
  8. ...appConfig,
  9. domContainer: 'appContainer',
  10. apiUrl: FETCH_CONFIG.apiUrl,
  11. mockApiUrl: FETCH_CONFIG.mockApiUrl,
  12. apiHeader: FETCH_CONFIG.headers
  13. },
  14. content
  15. })
  16. renderCreateContentApp = (appConfig, user, idWorkspace, idFolder) => GLOBAL_renderCreateContentApp({
  17. loggedUser: user.logged ? user : {},
  18. config: {
  19. ...appConfig,
  20. domContainer: 'popupCreateContentContainer',
  21. apiUrl: FETCH_CONFIG.apiUrl,
  22. mockApiUrl: FETCH_CONFIG.mockApiUrl,
  23. apiHeader: FETCH_CONFIG.headers
  24. },
  25. idWorkspace,
  26. idFolder
  27. })
  28. emitEventApp = (type, data) => GLOBAL_dispatchEvent(type, data)
  29. render () {
  30. return (
  31. <WrappedComponent
  32. {...this.props}
  33. renderApp={this.renderApp}
  34. renderCreateContentApp={this.renderCreateContentApp}
  35. emitEventApp={this.emitEventApp}
  36. hideApp={this.hideApp}
  37. />
  38. )
  39. }
  40. }
  41. }
  42. export default appFactory