0
Fork 0
mirror of https://github.com/penpot/penpot-exporter-figma-plugin.git synced 2025-03-08 05:41:25 -05:00
penpot-exporter-figma-plugin/plugin-src/transformers/partials/transformChildren.ts

25 lines
779 B
TypeScript
Raw Normal View History

import { translateChildren, translateMaskChildren } from '@plugin/translators';
2024-04-15 12:06:38 +00:00
2024-04-15 14:09:48 +02:00
import { Children } from '@ui/lib/types/utils/children';
2024-04-15 12:06:38 +00:00
const nodeActsAsMask = (node: SceneNode): boolean => {
return 'isMask' in node && node.isMask;
};
2024-04-15 12:06:38 +00:00
export const transformChildren = async (
node: ChildrenMixin,
baseX: number = 0,
2024-06-11 09:26:38 +02:00
baseY: number = 0,
reverseChildrenOrder: boolean = false
2024-04-15 12:06:38 +00:00
): Promise<Children> => {
const maskIndex = node.children.findIndex(nodeActsAsMask);
const containsMask = maskIndex !== -1;
2024-06-11 09:26:38 +02:00
const children = reverseChildrenOrder ? node.children.slice().reverse() : node.children;
2024-04-15 12:06:38 +00:00
return {
children: containsMask
2024-06-11 09:26:38 +02:00
? await translateMaskChildren(children, maskIndex, baseX, baseY)
: await translateChildren(children, baseX, baseY)
2024-04-15 12:06:38 +00:00
};
};