You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

App.web.tsx 2.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import { AtlasKitThemeProvider } from '@atlaskit/theme';
  2. import React from 'react';
  3. import GlobalStyles from '../../base/ui/components/GlobalStyles.web';
  4. import JitsiThemeProvider from '../../base/ui/components/JitsiThemeProvider.web';
  5. import DialogContainer from '../../base/ui/components/web/DialogContainer';
  6. import ChromeExtensionBanner from '../../chrome-extension-banner/components/ChromeExtensionBanner.web';
  7. import OverlayContainer from '../../overlay/components/web/OverlayContainer';
  8. import { AbstractApp } from './AbstractApp';
  9. // Register middlewares and reducers.
  10. import '../middlewares';
  11. import '../reducers';
  12. /**
  13. * Root app {@code Component} on Web/React.
  14. *
  15. * @augments AbstractApp
  16. */
  17. export class App extends AbstractApp {
  18. /**
  19. * Creates an extra {@link ReactElement}s to be added (unconditionally)
  20. * alongside the main element.
  21. *
  22. * @abstract
  23. * @protected
  24. * @returns {ReactElement}
  25. */
  26. _createExtraElement() {
  27. return (
  28. <JitsiThemeProvider>
  29. <OverlayContainer />
  30. </JitsiThemeProvider>
  31. );
  32. }
  33. /**
  34. * Overrides the parent method to inject {@link AtlasKitThemeProvider} as
  35. * the top most component.
  36. *
  37. * @override
  38. */
  39. _createMainElement(component: React.ComponentType, props: any) {
  40. return (
  41. <JitsiThemeProvider>
  42. <AtlasKitThemeProvider mode = 'dark'>
  43. <GlobalStyles />
  44. <ChromeExtensionBanner />
  45. { super._createMainElement(component, props) }
  46. </AtlasKitThemeProvider>
  47. </JitsiThemeProvider>
  48. );
  49. }
  50. /**
  51. * Renders the platform specific dialog container.
  52. *
  53. * @returns {React$Element}
  54. */
  55. _renderDialogContainer() {
  56. return (
  57. <JitsiThemeProvider>
  58. <AtlasKitThemeProvider mode = 'dark'>
  59. <DialogContainer />
  60. </AtlasKitThemeProvider>
  61. </JitsiThemeProvider>
  62. );
  63. }
  64. }