12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import React from 'react';
- import OuterRect from '../OuterRect';
- import { rectCalc, parsePositionForBackend } from '../../helpers/position';
- import { AnnotationContainer } from '../../global/otherStyled';
- import Img from './styled';
- const Image: React.FC<AnnotationElementPropsType> = ({
- id,
- obj_type,
- obj_attr: { src = '', position },
- scale,
- viewport,
- isCollapse,
- onUpdate,
- }: AnnotationElementPropsType) => {
- const annotRect = rectCalc(position as PositionType, viewport.height, scale);
- const handleScaleOrMove = ({
- top,
- left,
- width = 0,
- height = 0,
- }: CoordType): void => {
- const newPosition = {
- top,
- left,
- bottom: top + (height || annotRect.height),
- right: left + (width || annotRect.width),
- };
- onUpdate({
- position: parsePositionForBackend(
- obj_type,
- newPosition,
- viewport.height,
- scale,
- ),
- });
- };
- return (
- <>
- <AnnotationContainer
- id={id}
- top={`${annotRect.top}px`}
- left={`${annotRect.left}px`}
- width={`${annotRect.width}px`}
- height={`${annotRect.height}px`}
- >
- <Img src={src} alt="" />
- </AnnotationContainer>
- {!isCollapse ? (
- <OuterRect
- top={annotRect.top}
- left={annotRect.left}
- width={annotRect.width}
- height={annotRect.height}
- onMove={handleScaleOrMove}
- onScale={handleScaleOrMove}
- />
- ) : (
- ''
- )}
- </>
- );
- };
- export default Image;
|