Fix IO text labels' fill attr being saved even if default colour (#4083)

* move exporting of fill attr to subclasses

* set text colour for new labels
This commit is contained in:
llama 2025-06-16 18:07:05 +08:00 committed by GitHub
parent 615bbf95a1
commit 5cb191d624
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 8 additions and 1 deletions

View file

@ -49,7 +49,6 @@ export class Shape {
left: floatToDisplay(this.left),
top: floatToDisplay(this.top),
...(!angle ? {} : { angle: angle.toString() }),
...(this.fill === SHAPE_MASK_COLOR ? {} : { fill: this.fill }),
};
}

View file

@ -3,6 +3,7 @@
import { fabric } from "fabric";
import { SHAPE_MASK_COLOR } from "../tools/lib";
import type { ConstructorParams, Size } from "../types";
import type { ShapeDataForCloze } from "./base";
import { Shape } from "./base";
@ -25,6 +26,7 @@ export class Ellipse extends Shape {
...super.toDataForCloze(),
rx: floatToDisplay(this.rx),
ry: floatToDisplay(this.ry),
...(this.fill === SHAPE_MASK_COLOR ? {} : { fill: this.fill }),
};
}

View file

@ -3,6 +3,7 @@
import { fabric } from "fabric";
import { SHAPE_MASK_COLOR } from "../tools/lib";
import type { ConstructorParams, Size } from "../types";
import type { ShapeDataForCloze } from "./base";
import { Shape } from "./base";
@ -22,6 +23,7 @@ export class Polygon extends Shape {
return {
...super.toDataForCloze(),
points: this.points.map(({ x, y }) => `${floatToDisplay(x)},${floatToDisplay(y)}`).join(" "),
...(this.fill === SHAPE_MASK_COLOR ? {} : { fill: this.fill }),
};
}

View file

@ -3,6 +3,7 @@
import { fabric } from "fabric";
import { SHAPE_MASK_COLOR } from "../tools/lib";
import type { ConstructorParams, Size } from "../types";
import type { ShapeDataForCloze } from "./base";
import { Shape } from "./base";
@ -25,6 +26,7 @@ export class Rectangle extends Shape {
...super.toDataForCloze(),
width: floatToDisplay(this.width),
height: floatToDisplay(this.height),
...(this.fill === SHAPE_MASK_COLOR ? {} : { fill: this.fill }),
};
}

View file

@ -11,6 +11,7 @@ import {
isPointerInBoundingBox,
stopDraw,
TEXT_BACKGROUND_COLOR,
TEXT_COLOR,
TEXT_FONT_FAMILY,
TEXT_PADDING,
} from "./lib";
@ -41,6 +42,7 @@ export const drawText = (canvas: fabric.Canvas, onActivated: Callback): void =>
selectable: true,
strokeWidth: 1,
noScaleCache: false,
fill: TEXT_COLOR,
fontFamily: TEXT_FONT_FAMILY,
backgroundColor: TEXT_BACKGROUND_COLOR,
padding: TEXT_PADDING,