Mathsframe !!install!! -

for (let i = 0; i < denominator; i++) const rect = new fabric.Rect( left: i * sliceWidth, top: 0, width: sliceWidth - 2, height: height, fill: i < numerator ? '#3b82f6' : '#e2e8f0', stroke: '#1e293b', strokeWidth: 1, selectable: true, hasControls: false, hasBorders: true, data: index: i );

canvas.renderAll(); return () => canvas.dispose(); , [numerator, denominator]); mathsframe

useEffect(() => if (!canvasRef.current) return; const canvas = new fabric.Canvas(canvasRef.current); const width = 400; const height = 80; const sliceWidth = width / denominator; for (let i = 0; i &lt; denominator;