index.tsx 1003 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import React from 'react';
  2. import Icon from '../Icon';
  3. import Divider from '../Divider';
  4. import { scrollIntoView } from '../../helpers/utility';
  5. import data from './data';
  6. import {
  7. PageNumber, AnnotationBox,
  8. } from './styled';
  9. type Props = {
  10. type: string;
  11. page?: number;
  12. bdcolor: string;
  13. getText: () => Promise<any>;
  14. showPageNum?: boolean;
  15. transparency: number;
  16. }
  17. const AnnotationItem = ({
  18. type,
  19. page,
  20. showPageNum,
  21. }: Props): React.ReactElement => {
  22. const handleClick = (): void => {
  23. const ele: HTMLElement | null = document.getElementById(`page_${page}`);
  24. if (ele) {
  25. scrollIntoView(ele);
  26. }
  27. };
  28. return (
  29. <>
  30. {showPageNum ? (
  31. <>
  32. <Divider orientation="horizontal" />
  33. <PageNumber>{`Page ${page}`}</PageNumber>
  34. </>
  35. ) : null}
  36. <AnnotationBox onClick={handleClick}>
  37. <Icon glyph={data[type].icon} />
  38. {data[type].text}
  39. </AnnotationBox>
  40. </>
  41. );
  42. };
  43. export default AnnotationItem;