Skip to content
Snippets Groups Projects
Select Git revision
  • 4624b6f969685736d1e9762985d438f12e671f15
  • mui5-annotation-on-video-stable default
  • get_setter_canvasSizeInformations
  • fix-error-div-into-p
  • annotation-on-video-v2
  • detached
  • annotation-on-video-r17
  • mui5
  • mui5-react-18
  • jacob-test
  • annotation-on-video protected
  • master
  • test-antoinev1
  • 20-fetch-thumbnail-on-annotation
  • add-research-field
  • Save
  • add-plugin
  • 14-wip-no-seek-to
  • 14-bug-on-video-time-control
  • 9_wip_videotests
  • _upgrade_material_ui
  • latest-tetras-16
  • v3.3.0
  • v3.2.0
  • v3.1.1
  • v3.1.0
  • v3.0.0
  • v3.0.0-rc.7
  • v3.0.0-rc.6
  • v3.0.0-rc.5
  • v3.0.0-rc.4
  • v3.0.0-rc.3
  • v3.0.0-rc.2
  • v3.0.0-rc.1
  • v3.0.0-beta.10
  • v3.0.0-beta.9
  • v3.0.0-beta.8
  • v3.0.0-beta.7
  • v3.0.0-beta.6
  • v3.0.0-beta.5
  • v3.0.0-beta.3
41 results

WorkspaceArea.js

Blame
  • Rectangle.js 1.97 KiB
    import React, { Component, useState } from 'react';
    
    import PropTypes from 'prop-types';
    
    
    import {
        Stage, Layer, Star, Text, Circle, Rect
        , Ellipse, Transformer,Shape
    
    } from 'react-konva';
    
    
    class Rectangle extends React.Component {
        constructor(props) {
            super(props);
            this.shapeRef = React.createRef();
            this.trRef = React.createRef();
        }
    
    
    
        componentDidMount() {
            if (this.trRef.current) {
                this.trRef.current.nodes([this.shapeRef.current]);
                this.trRef.current.getLayer().batchDraw();
            }
        }
    
        handleClick = () => {
            this.props.onShapeClick(this.props.shape);
    
        };
    
        render() {
            const { activeTool } = this.props;
            const isSelected = this.props.selectedShapeId === this.props.shape.id
          
       
            console.log('rect props', this.props);
            return (
                <React.Fragment>
                    <Rect
                        // map props to konva
                        ref={this.shapeRef}
                        x={this.props.x || 100}
                        y={this.props.y || 100}
                        width={this.props.width || 100}
                        height={this.props.height || 100}
                        fill={this.props.fill || 'red'}
                        stroke={this.props.stroke || 'black'}
                        strokeWidth={this.props.strokeWidth || 1}
                        id={this.props._id}
                        draggable={activeTool === 'cursor' || activeTool === 'edit'}
                        onClick={this.handleClick}
    
                    />
    
    
    
    
    
                    <Transformer ref={this.trRef}
    
                        visible={activeTool === 'edit' && isSelected}
                    />
    
    
    
    
                </React.Fragment>
            );
        }
    }
    
    
    
    Rectangle.propTypes = {
        shape: PropTypes.object.isRequired,
        onShapeClick: PropTypes.func.isRequired,
        activeTool: PropTypes.string.isRequired,
        selected: PropTypes.bool,
    };
    
    Rectangle.defaultProps = {
        selected: false,
    };
    
    export default Rectangle;