Navbar.tsx 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import React from 'react';
  2. import queryString from 'query-string';
  3. import useStore from '../store';
  4. import useActions from '../actions';
  5. import NavbarComponent from '../components/Navbar';
  6. import Search from './Search';
  7. import Thumbnails from './Thumbnails';
  8. import AnnotationList from './AnnotationList';
  9. import { downloadFileWithUri } from '../helpers/utility';
  10. const Navbar: React.FunctionComponent = () => {
  11. const [{
  12. navbarState,
  13. displayMode,
  14. }, dispatch] = useStore();
  15. const { setNavbar } = useActions(dispatch);
  16. const onClick = (state: string): void => {
  17. switch (state) {
  18. case 'export': {
  19. const parsed = queryString.parse(window.location.search);
  20. const fileName = atob(parsed.token as string);
  21. const path = `/api/v1/output.pdf?f=${parsed.token}`;
  22. downloadFileWithUri(fileName, path);
  23. break;
  24. }
  25. case navbarState:
  26. setNavbar('');
  27. break;
  28. default:
  29. setNavbar(state);
  30. break;
  31. }
  32. };
  33. return (
  34. <NavbarComponent
  35. onClick={onClick}
  36. navbarState={navbarState}
  37. displayMode={displayMode}
  38. >
  39. <Search />
  40. <AnnotationList />
  41. <Thumbnails />
  42. </NavbarComponent>
  43. );
  44. };
  45. export default Navbar;