(node: SceneNode)
| 113 | } |
| 114 | |
| 115 | const getDecoration = (node: SceneNode): string => { |
| 116 | if (!("fills" in node)) { |
| 117 | return ""; |
| 118 | } |
| 119 | |
| 120 | const propBoxShadow = flutterShadow(node); |
| 121 | const decorationBackground = flutterBoxDecorationColor(node, "fills"); |
| 122 | |
| 123 | let shapeDecorationBorder = ""; |
| 124 | if (node.type === "STAR") { |
| 125 | shapeDecorationBorder = generateStarBorder(node); |
| 126 | } else if (node.type === "POLYGON") { |
| 127 | shapeDecorationBorder = generatePolygonBorder(node); |
| 128 | } else if (node.type === "ELLIPSE") { |
| 129 | shapeDecorationBorder = generateOvalBorder(node); |
| 130 | } else if ("strokeWeight" in node && node.strokeWeight !== figma.mixed) { |
| 131 | shapeDecorationBorder = skipDefaultProperty( |
| 132 | generateRoundedRectangleBorder(node), |
| 133 | "RoundedRectangleBorder()", |
| 134 | ); |
| 135 | } |
| 136 | |
| 137 | if (shapeDecorationBorder) { |
| 138 | return generateWidgetCode("ShapeDecoration", { |
| 139 | ...decorationBackground, |
| 140 | shape: shapeDecorationBorder, |
| 141 | shadows: propBoxShadow, |
| 142 | }); |
| 143 | } |
| 144 | |
| 145 | return generateWidgetCode("BoxDecoration", { |
| 146 | ...decorationBackground, |
| 147 | borderRadius: generateBorderRadius(node), |
| 148 | border: flutterBorder(node), |
| 149 | boxShadow: propBoxShadow, |
| 150 | }); |
| 151 | }; |
| 152 | |
| 153 | const generateRoundedRectangleBorder = ( |
| 154 | node: SceneNode & MinimalStrokesMixin, |
no test coverage detected