()
| 39 | } |
| 40 | |
| 41 | function 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 | |
| 66 | function handleCurrentSelection() { |
| 67 | const node = figma.currentPage.selection[0]; |
no test coverage detected