B
B
js
import React, { useState, useRef } from 'react';
import { Stage, Layer, Rect, Image as KonvaImage, Text } from 'react-konva';
import { useImage } from 'react-konva'; // Correct import
return (
<div>
<input type="file" accept="image/*" onChange={handleImageUpload} />
<button onClick={handleDownload} disabled={!image}>Download</button>
{image && (
<Stage
width={image.width}
height={image.height}
onMouseDown={handleMouseDown}
onMouseMove={handleMouseMove}
onMouseUp={handleMouseUp}
ref={stageRef}
style={{ border: '1px solid black' }}
>
<Layer>
<URLImage image={image} />
{rectangles.map((rect) => (
<React.Fragment key={rect.id}>
<Rect
id={rect.id}
x={rect.x}
y={rect.y}
width={rect.width}
height={rect.height}
stroke="red"
onClick={(e) => handleRectClick(e, rect.id)}
/>
{rect.annotation && (
<Text
x={rect.x}
y={rect.y - 20}
text={rect.annotation}
fontSize={16}
fill="black"
/>
)}
</React.Fragment>
))}
</Layer>
</Stage>
)}
</div>
);
};