Files
nix/hosts/common/configs/user/gui/darktable/publish/src/lexical.ts
2024-12-25 12:50:21 +02:00

51 lines
873 B
TypeScript

export const createTextNode = (text: string) => ({
detail: 0,
format: 0,
mode: "normal",
style: "",
text,
type: "extended-text",
version: 1,
});
export const createHeadingNode = (text: string, level: string) => ({
children: [createTextNode(text)],
direction: "ltr",
format: "",
indent: 0,
type: "extended-heading",
version: 1,
tag: level,
});
export interface ImageInput {
src: string;
caption: string;
}
export const createImageNode = (image: ImageInput) => {
return {
type: "image",
version: 1,
cardWidth: "wide",
...image,
};
};
export interface FileInput {
src: string;
name: string;
size: number;
}
export const createFileNode = (file: FileInput) => {
return {
type: "file",
src: file.src,
fileTitle: file.name,
fileName: file.name,
fileCaption: "",
fileSize: file.size,
};
};