Navbar.tsx 999 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import React from 'react';
  2. import useStore from '../store';
  3. import useActions from '../actions';
  4. import NavbarComponent from '../components/Navbar';
  5. import Search from './Search';
  6. import AnnotationList from '../components/AnnotationList';
  7. import Thumbnails from './Thumbnails';
  8. const Navbar: React.FunctionComponent = () => {
  9. const [{ navbarState, displayMode }, dispatch] = useStore();
  10. const { setNavbar } = useActions(dispatch);
  11. const onClick = (state: string): void => {
  12. if (state === navbarState) {
  13. setNavbar('');
  14. } else {
  15. setNavbar(state);
  16. }
  17. };
  18. const transferProps = (role: string): any => ({
  19. isActive: navbarState === role,
  20. close: (): void => { onClick(''); },
  21. });
  22. return (
  23. <NavbarComponent
  24. onClick={onClick}
  25. navbarState={navbarState}
  26. displayMode={displayMode}
  27. >
  28. <Search />
  29. <AnnotationList {...transferProps('annotations')} />
  30. <Thumbnails />
  31. </NavbarComponent>
  32. );
  33. };
  34. export default Navbar;