|
1 | 1 | import React, {createElement } from 'react';
|
2 |
| -import { View, Text } from 'react-native'; |
| 2 | +import { View, Text, Button } from 'react-native'; |
3 | 3 |
|
4 | 4 | let textNode = 1,
|
5 | 5 | elementNode = 2,
|
@@ -43,6 +43,14 @@ export function createViewNode(nodeData) {
|
43 | 43 | };
|
44 | 44 | }
|
45 | 45 |
|
| 46 | +export function createButtonNode(nodeData) { |
| 47 | + return function(text) { |
| 48 | + let props = fromNodeData(nodeData) |
| 49 | + |
| 50 | + return createElement(Button, { title: text, ...props }); |
| 51 | + } |
| 52 | +} |
| 53 | + |
46 | 54 | export function createDatalessElementNode(tag) {
|
47 | 55 | return function (potentialChildren) {
|
48 | 56 | let children = potentialChildren,
|
@@ -176,51 +184,48 @@ function asSvg(elements) {
|
176 | 184 | }
|
177 | 185 |
|
178 | 186 | function fromNodeData(allData) {
|
179 |
| - let nodeData = {}; |
| 187 | + let nodeData; |
| 188 | + |
| 189 | + if (allData !== undefined) { |
| 190 | + nodeData = {}; |
180 | 191 |
|
181 |
| - if (allData !== undefined) |
182 | 192 | for (let data of allData) {
|
183 | 193 | let dataOne = data[1];
|
184 | 194 | //[0] also always contain the data type
|
185 | 195 | switch (data[0]) {
|
186 |
| - case styleData: |
187 |
| - if (nodeData.styles === undefined) |
188 |
| - nodeData.styles = {}; |
189 |
| - |
190 |
| - for (let key in dataOne) |
191 |
| - nodeData.styles[key] = dataOne[key]; |
192 |
| - break; |
193 |
| - case classData: |
194 |
| - if (nodeData.classes === undefined) |
195 |
| - nodeData.classes = []; |
196 |
| - |
197 |
| - nodeData.classes = nodeData.classes.concat(dataOne); |
198 |
| - break; |
199 |
| - case propertyData: |
200 |
| - if (nodeData.properties === undefined) |
201 |
| - nodeData.properties = {}; |
202 |
| - |
203 |
| - nodeData.properties[dataOne] = data[2]; |
204 |
| - break; |
205 |
| - case attributeData: |
206 |
| - if (nodeData.attributes === undefined) |
207 |
| - nodeData.attributes = {}; |
208 |
| - |
209 |
| - nodeData.attributes[dataOne] = data[2]; |
210 |
| - break; |
211 |
| - case keyData: |
212 |
| - nodeData.key = dataOne; |
213 |
| - break; |
| 196 | + // case styleData: |
| 197 | + // if (nodeData.styles === undefined) |
| 198 | + // nodeData.styles = {}; |
| 199 | + |
| 200 | + // for (let key in dataOne) |
| 201 | + // nodeData.styles[key] = dataOne[key]; |
| 202 | + // break; |
| 203 | + // case classData: |
| 204 | + // if (nodeData.classes === undefined) |
| 205 | + // nodeData.classes = []; |
| 206 | + |
| 207 | + // nodeData.classes = nodeData.classes.concat(dataOne); |
| 208 | + // break; |
| 209 | + // case propertyData: |
| 210 | + // if (nodeData.properties === undefined) |
| 211 | + // nodeData.properties = {}; |
| 212 | + |
| 213 | + // nodeData.properties[dataOne] = data[2]; |
| 214 | + // break; |
| 215 | + // case attributeData: |
| 216 | + // if (nodeData.attributes === undefined) |
| 217 | + // nodeData.attributes = {}; |
| 218 | + |
| 219 | + // nodeData.attributes[dataOne] = data[2]; |
| 220 | + // break; |
| 221 | + // case keyData: |
| 222 | + // nodeData.key = dataOne; |
| 223 | + // break; |
214 | 224 | default:
|
215 |
| - if (nodeData.events === undefined) |
216 |
| - nodeData.events = {}; |
217 |
| - |
218 |
| - if (nodeData.events[dataOne] === undefined) |
219 |
| - nodeData.events[dataOne] = []; |
220 |
| - |
221 |
| - nodeData.events[dataOne].push(data[2]); |
| 225 | + nodeData[dataOne] = data[2]; |
222 | 226 | }
|
223 | 227 | }
|
| 228 | + } |
224 | 229 |
|
225 | 230 | return nodeData;
|
226 | 231 | }
|
|
0 commit comments