fix text constructor groupIds & improve type safety (#1715)
This commit is contained in:
parent
4eb6c3e8a4
commit
d1be2a5481
@ -14,20 +14,16 @@ import { newElementWith } from "./mutateElement";
|
||||
import { getNewGroupIdsForDuplication } from "../groups";
|
||||
import { AppState } from "../types";
|
||||
|
||||
type ElementConstructorOpts = {
|
||||
x: ExcalidrawGenericElement["x"];
|
||||
y: ExcalidrawGenericElement["y"];
|
||||
strokeColor: ExcalidrawGenericElement["strokeColor"];
|
||||
backgroundColor: ExcalidrawGenericElement["backgroundColor"];
|
||||
fillStyle: ExcalidrawGenericElement["fillStyle"];
|
||||
strokeWidth: ExcalidrawGenericElement["strokeWidth"];
|
||||
strokeStyle: ExcalidrawGenericElement["strokeStyle"];
|
||||
roughness: ExcalidrawGenericElement["roughness"];
|
||||
opacity: ExcalidrawGenericElement["opacity"];
|
||||
width?: ExcalidrawGenericElement["width"];
|
||||
height?: ExcalidrawGenericElement["height"];
|
||||
angle?: ExcalidrawGenericElement["angle"];
|
||||
};
|
||||
type ElementConstructorOpts = MarkOptional<
|
||||
Omit<ExcalidrawGenericElement, "id" | "type" | "isDeleted">,
|
||||
| "width"
|
||||
| "height"
|
||||
| "angle"
|
||||
| "groupIds"
|
||||
| "seed"
|
||||
| "version"
|
||||
| "versionNonce"
|
||||
>;
|
||||
|
||||
const _newElementBase = <T extends ExcalidrawElement>(
|
||||
type: T["type"],
|
||||
@ -44,6 +40,7 @@ const _newElementBase = <T extends ExcalidrawElement>(
|
||||
width = 0,
|
||||
height = 0,
|
||||
angle = 0,
|
||||
groupIds = [],
|
||||
...rest
|
||||
}: ElementConstructorOpts & Omit<Partial<ExcalidrawGenericElement>, "type">,
|
||||
) => ({
|
||||
@ -61,11 +58,11 @@ const _newElementBase = <T extends ExcalidrawElement>(
|
||||
strokeStyle,
|
||||
roughness,
|
||||
opacity,
|
||||
groupIds,
|
||||
seed: rest.seed ?? randomInteger(),
|
||||
version: rest.version || 1,
|
||||
versionNonce: rest.versionNonce ?? 0,
|
||||
isDeleted: false as false,
|
||||
groupIds: [],
|
||||
});
|
||||
|
||||
export const newElement = (
|
||||
|
3
src/global.d.ts
vendored
3
src/global.d.ts
vendored
@ -25,3 +25,6 @@ type ResolutionType<T extends (...args: any) => any> = T extends (
|
||||
) => Promise<infer R>
|
||||
? R
|
||||
: any;
|
||||
|
||||
// https://github.com/krzkaczor/ts-essentials
|
||||
type MarkOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
|
||||
|
Loading…
x
Reference in New Issue
Block a user