rename drawingConfigs to freedrawOptions

This commit is contained in:
dwelle
2025-07-14 13:15:31 +02:00
parent 446f871536
commit d615c2cea1
8 changed files with 25 additions and 25 deletions

View File

@ -1,4 +1,4 @@
import { DRAWING_CONFIGS, isFreeDrawElement } from "@excalidraw/element";
import { STROKE_OPTIONS, isFreeDrawElement } from "@excalidraw/element";
import { useState, useEffect } from "react";
import { useUIAppState } from "@excalidraw/excalidraw/context/ui-appState";
@ -8,10 +8,10 @@ import { round } from "../../packages/math/src";
export const FreedrawDebugSliders = () => {
const [streamline, setStreamline] = useState<number>(
DRAWING_CONFIGS.default.streamline,
STROKE_OPTIONS.default.streamline,
);
const [simplify, setSimplify] = useState<number>(
DRAWING_CONFIGS.default.simplify,
STROKE_OPTIONS.default.simplify,
);
useEffect(() => {
@ -21,7 +21,7 @@ export const FreedrawDebugSliders = () => {
if (!window.h.debugFreedraw) {
window.h.debugFreedraw = {
enabled: true,
...DRAWING_CONFIGS.default,
...STROKE_OPTIONS.default,
};
}

View File

@ -8,7 +8,7 @@ import type { StrokeOptions } from "perfect-freehand";
import type { ExcalidrawFreeDrawElement, PointerType } from "./types";
export const DRAWING_CONFIGS: Record<
export const STROKE_OPTIONS: Record<
PointerType | "default",
{ streamline: number; simplify: number }
> = {
@ -33,8 +33,8 @@ export const DRAWING_CONFIGS: Record<
export const getFreedrawConfig = (eventType: string | null | undefined) => {
return (
DRAWING_CONFIGS[(eventType as PointerType | null) || "default"] ||
DRAWING_CONFIGS.default
STROKE_OPTIONS[(eventType as PointerType | null) || "default"] ||
STROKE_OPTIONS.default
);
};
@ -78,7 +78,7 @@ const calculateVelocityBasedPressure = (
export const getFreedrawStroke = (element: ExcalidrawFreeDrawElement) => {
// Compose points as [x, y, pressure]
let points: [number, number, number][];
if (element.drawingConfigs?.fixedStrokeWidth) {
if (element.freedrawOptions?.fixedStrokeWidth) {
points = element.points.map(
([x, y]: LocalPoint): [number, number, number] => [x, y, 1],
);
@ -90,7 +90,7 @@ export const getFreedrawStroke = (element: ExcalidrawFreeDrawElement) => {
calculateVelocityBasedPressure(
element.points,
i,
element.drawingConfigs?.fixedStrokeWidth,
element.freedrawOptions?.fixedStrokeWidth,
),
]);
} else {
@ -105,16 +105,16 @@ export const getFreedrawStroke = (element: ExcalidrawFreeDrawElement) => {
}
const streamline =
element.drawingConfigs?.streamline ?? DRAWING_CONFIGS.default.streamline;
element.freedrawOptions?.streamline ?? STROKE_OPTIONS.default.streamline;
const simplify =
element.drawingConfigs?.simplify ?? DRAWING_CONFIGS.default.simplify;
element.freedrawOptions?.simplify ?? STROKE_OPTIONS.default.simplify;
const laser = new LaserPointer({
size: element.strokeWidth,
streamline,
simplify,
sizeMapping: ({ pressure: t }) => {
if (element.drawingConfigs?.fixedStrokeWidth) {
if (element.freedrawOptions?.fixedStrokeWidth) {
return 0.6;
}
@ -143,7 +143,7 @@ export const getFreeDrawSvgPath = (
element: ExcalidrawFreeDrawElement,
): string => {
// legacy, for backwards compatibility
if (element.drawingConfigs === null) {
if (element.freedrawOptions === null) {
return _legacy_getFreeDrawSvgPath(element);
}

View File

@ -445,7 +445,7 @@ export const newFreeDrawElement = (
points?: ExcalidrawFreeDrawElement["points"];
simulatePressure: boolean;
pressures?: ExcalidrawFreeDrawElement["pressures"];
drawingConfigs?: ExcalidrawFreeDrawElement["drawingConfigs"];
strokeOptions?: ExcalidrawFreeDrawElement["freedrawOptions"];
} & ElementConstructorOpts,
): NonDeleted<ExcalidrawFreeDrawElement> => {
return {
@ -454,7 +454,7 @@ export const newFreeDrawElement = (
pressures: opts.pressures || [],
simulatePressure: opts.simulatePressure,
lastCommittedPoint: null,
drawingConfigs: opts.drawingConfigs || {
freedrawOptions: opts.strokeOptions || {
fixedStrokeWidth: true,
streamline: 0.25,
simplify: 0.1,

View File

@ -808,12 +808,12 @@ const generateElementShape = (
if (isPathALoop(element.points)) {
const points =
element.drawingConfigs === null
element.freedrawOptions === null
? simplify(element.points as LocalPoint[], 0.75)
: simplify(element.points as LocalPoint[], 1.5);
shape =
element.drawingConfigs === null
element.freedrawOptions === null
? generator.curve(points, {
...generateRoughOptions(element),
stroke: "none",

View File

@ -380,7 +380,7 @@ export type ExcalidrawFreeDrawElement = _ExcalidrawElementBase &
pressures: readonly number[];
simulatePressure: boolean;
lastCommittedPoint: LocalPoint | null;
drawingConfigs: {
freedrawOptions: {
streamline?: number;
simplify?: number;
fixedStrokeWidth?: boolean;

View File

@ -686,8 +686,8 @@ export const actionChangePressureSensitivity = register({
const updatedElements = changeProperty(elements, appState, (el) => {
if (isFreeDrawElement(el)) {
return newElementWith(el, {
drawingConfigs: {
...el.drawingConfigs,
freedrawOptions: {
...el.freedrawOptions,
fixedStrokeWidth: value,
},
});
@ -709,7 +709,7 @@ export const actionChangePressureSensitivity = register({
freedraws.length > 0
? reduceToCommonValue(
freedraws,
(element) => element.drawingConfigs?.fixedStrokeWidth,
(element) => element.freedrawOptions?.fixedStrokeWidth,
) ?? null
: appState.currentItemFixedStrokeWidth;

View File

@ -232,7 +232,7 @@ import {
hitElementBoundingBox,
isLineElement,
isSimpleArrow,
DRAWING_CONFIGS,
STROKE_OPTIONS,
getFreedrawConfig,
} from "@excalidraw/element";
@ -7494,7 +7494,7 @@ class App extends React.Component<AppProps, AppState> {
opacity: this.state.currentItemOpacity,
roundness: null,
simulatePressure,
drawingConfigs: {
strokeOptions: {
fixedStrokeWidth: this.state.currentItemFixedStrokeWidth,
streamline:
(window.h?.debugFreedraw?.enabled
@ -11171,7 +11171,7 @@ export const createTestHook = () => {
// Initialize debug freedraw parameters
window.h.debugFreedraw = {
enabled: true,
...(window.h.debugFreedraw || DRAWING_CONFIGS.default),
...(window.h.debugFreedraw || STROKE_OPTIONS.default),
};
Object.defineProperties(window.h, {

View File

@ -303,7 +303,7 @@ const restoreElement = (
simulatePressure: element.simulatePressure,
pressures: element.pressures,
// legacy, for backwards compatibility
drawingConfigs: element.drawingConfigs ?? null,
freedrawOptions: element.freedrawOptions ?? null,
});
}
case "image":