MCPcopy Index your code
hub / github.com/figma/plugin-samples / findPluginDataArrayForSelection

Function findPluginDataArrayForSelection

snippet-saver/code.js:41–64  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

39}
40
41function findPluginDataArrayForSelection() {
42 const data = [];
43 function pluginDataForNode(node) {
44 const pluginData = node.getPluginData(PLUGIN_DATA_KEY);
45 // skipping duplicates. why?
46 // component instances have same pluginData as mainComponent, unless they have override pluginData.
47 if (pluginData && data.indexOf(pluginData) === -1) {
48 data.push(pluginData);
49 }
50 }
51 const currentNode = figma.currentPage.selection[0];
52 pluginDataForNode(currentNode);
53 if (currentNode.type === "INSTANCE") {
54 pluginDataForNode(currentNode.mainComponent);
55 if (currentNode.mainComponent.parent.type === "COMPONENT_SET") {
56 pluginDataForNode(currentNode.mainComponent.parent);
57 }
58 } else if (currentNode.type === "COMPONENT") {
59 if (currentNode.parent.type === "COMPONENT_SET") {
60 pluginDataForNode(currentNode.parent);
61 }
62 }
63 return data;
64}
65
66function handleCurrentSelection() {
67 const node = figma.currentPage.selection[0];

Callers 1

code.jsFile · 0.85

Calls 1

pluginDataForNodeFunction · 0.85

Tested by

no test coverage detected