itizawa 5 лет назад
Родитель
Сommit
48eff23c88

+ 2 - 0
src/client/js/base.jsx

@@ -4,6 +4,7 @@ import loggerFactory from '@alias/logger';
 import Xss from '@commons/service/xss';
 
 import SearchTop from './components/Navbar/SearchTop';
+import GrowiNavbar from './components/Navbar/GrowiNavbar';
 import NavbarToggler from './components/Navbar/NavbarToggler';
 import PersonalDropdown from './components/Navbar/PersonalDropdown';
 import Sidebar from './components/Sidebar';
@@ -39,6 +40,7 @@ logger.info('AppContainer has been initialized');
  *  value: React Element
  */
 const componentMappings = {
+  'grw-navbar': <GrowiNavbar />,
   'grw-navbar-toggler': <NavbarToggler />,
 
   'grw-search-top': <SearchTop />,

+ 30 - 0
src/client/js/components/Navbar/GrowiNavbar.jsx

@@ -0,0 +1,30 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+
+import { withTranslation } from 'react-i18next';
+
+import { withUnstatedContainers } from '../UnstatedUtils';
+import NavigationContainer from '../../services/NavigationContainer';
+
+class GrowiNavbar extends React.Component {
+
+  render() {
+    return (
+      <p>hoge</p>
+    );
+  }
+
+}
+
+/**
+ * Wrapper component for using unstated
+ */
+const GrowiNavbarWrapper = withUnstatedContainers(GrowiNavbar, [NavigationContainer]);
+
+
+GrowiNavbar.propTypes = {
+  t: PropTypes.func.isRequired, //  i18next
+  navigationContainer: PropTypes.instanceOf(NavigationContainer).isRequired,
+};
+
+export default withTranslation()(GrowiNavbarWrapper);

+ 1 - 0
src/server/views/layout/layout.html

@@ -74,6 +74,7 @@
 <div id="wrapper">
 
   {% block layout_head_nav %}
+  <div id="grw-navbar"></div>
   <nav class="navbar grw-navbar navbar-expand navbar-dark sticky-top mb-0 px-0">
     {# Brand Logo #}
     <div class="navbar-brand mr-0">