0
Fork 0
mirror of https://github.com/penpot/penpot-exporter-figma-plugin.git synced 2025-01-03 13:20:37 -05:00
penpot-exporter-figma-plugin/ui-src/parser/creators/createText.ts
Jordi Sala Morales f726dc9cec
Add image library to optimize performance (#133)
* Add image library to optimize performance

* fix and improve

* Add changelog and improve naming

* refactor

* improve

* fix todos
2024-06-03 17:29:33 +02:00

33 lines
1,001 B
TypeScript

import { PenpotFile } from '@ui/lib/types/penpotFile';
import { TextContent, TextShape } from '@ui/lib/types/shapes/textShape';
import { parseFigmaId } from '@ui/parser';
import { symbolBlendMode, symbolFills } from '@ui/parser/creators/symbols';
export const createText = (
file: PenpotFile,
{ type, blendMode, figmaId, content, figmaRelatedId, ...rest }: TextShape
) => {
file.createText({
id: parseFigmaId(file, figmaId),
shapeRef: parseFigmaId(file, figmaRelatedId, true),
content: parseContent(content),
blendMode: symbolBlendMode(blendMode),
...rest
});
};
const parseContent = (content: TextContent | undefined): TextContent | undefined => {
if (!content) return;
content.children?.forEach(paragraphSet => {
paragraphSet.children.forEach(paragraph => {
paragraph.children.forEach(textNode => {
textNode.fills = symbolFills(textNode.fills);
});
paragraph.fills = symbolFills(paragraph.fills);
});
});
return content;
};