mirror of
https://github.com/penpot/penpot-exporter-figma-plugin.git
synced 2024-12-22 21:53:27 -05:00
be5ff3be8e
* remote components processing * changeset * fixes * fixes * fixes * fixes * fix everything * revert for now * fixes * change delete nodes flag --------- Co-authored-by: Jordi Sala Morales <jordism91@gmail.com>
43 lines
1 KiB
TypeScript
43 lines
1 KiB
TypeScript
import { PenpotFile } from '@ui/lib/types/penpotFile';
|
|
import { parseFigmaId } from '@ui/parser';
|
|
import { uiComponents } from '@ui/parser/libraries';
|
|
import { ComponentInstance } from '@ui/types';
|
|
|
|
import { createArtboard } from '.';
|
|
|
|
export const createComponentInstance = (
|
|
file: PenpotFile,
|
|
{
|
|
type,
|
|
mainComponentFigmaId,
|
|
figmaId,
|
|
figmaRelatedId,
|
|
isComponentRoot,
|
|
...rest
|
|
}: ComponentInstance
|
|
) => {
|
|
let uiComponent = uiComponents.get(mainComponentFigmaId);
|
|
|
|
if (!uiComponent) {
|
|
const mainInstanceId = parseFigmaId(file, mainComponentFigmaId);
|
|
if (!mainInstanceId) {
|
|
return;
|
|
}
|
|
|
|
uiComponent = {
|
|
componentId: file.newId(),
|
|
componentFigmaId: mainComponentFigmaId,
|
|
mainInstanceId
|
|
};
|
|
uiComponents.register(mainComponentFigmaId, uiComponent);
|
|
}
|
|
|
|
createArtboard(file, {
|
|
...rest,
|
|
shapeRef: uiComponent.mainInstanceId,
|
|
componentFile: file.getId(),
|
|
componentRoot: isComponentRoot,
|
|
componentId: uiComponent.componentId,
|
|
type: 'frame'
|
|
});
|
|
};
|