0
Fork 0
mirror of https://github.com/penpot/penpot-exporter-figma-plugin.git synced 2024-12-22 21:53:27 -05:00
penpot-exporter-figma-plugin/plugin-src/translators/styles/translatePaintStyle.ts
Jordi Sala Morales 53672d8b43
Fix style paths (#194)
* Fix style path

* add changelog
2024-06-28 08:32:56 +02:00

45 lines
1.1 KiB
TypeScript

import { translateFill } from '@plugin/translators/fills/translateFills';
import { FillStyle } from '@ui/lib/types/utils/fill';
import { translateStyleName, translateStylePath } from '.';
export const translatePaintStyle = (figmaStyle: PaintStyle): FillStyle => {
const fillStyle: FillStyle = {
name: figmaStyle.name,
fills: [],
colors: []
};
const colorName = (figmaStyle: PaintStyle, index: number): string => {
return figmaStyle.paints.length > 1 ? `Color ${index + 1}` : translateStyleName(figmaStyle);
};
let index = 0;
const path = translatePaintStylePath(figmaStyle);
for (const fill of figmaStyle.paints) {
const penpotFill = translateFill(fill);
if (penpotFill) {
fillStyle.fills.unshift(penpotFill);
fillStyle.colors.unshift({
path,
name: colorName(figmaStyle, index)
});
}
index++;
}
return fillStyle;
};
const translatePaintStylePath = (figmaStyle: PaintStyle) => {
const path = translateStylePath(figmaStyle);
if (figmaStyle.paints.length <= 1) {
return path;
}
return path + (path !== '' ? ' / ' : '') + translateStyleName(figmaStyle);
};