From a09fdf67e549a41c30c513da3e30e38392878dc6 Mon Sep 17 00:00:00 2001 From: Rory Date: Wed, 5 Jun 2019 15:03:04 -0700 Subject: [PATCH] paragraph form element --- components/FormAPI/Form.js | 499 +++++++++++++++++++++++--------- components/FormAPI/Paragraph.js | 28 ++ i/.expo/packager-info.json | 3 + i/.expo/settings.json | 7 + 4 files changed, 395 insertions(+), 142 deletions(-) create mode 100644 components/FormAPI/Paragraph.js create mode 100644 i/.expo/packager-info.json create mode 100644 i/.expo/settings.json diff --git a/components/FormAPI/Form.js b/components/FormAPI/Form.js index 823389d..00307d1 100755 --- a/components/FormAPI/Form.js +++ b/components/FormAPI/Form.js @@ -9,6 +9,7 @@ import Select from './Select'; import Date from './Date'; import Scald from './Scald'; import Select2 from './Select2'; +import Paragraph from './Paragraph'; import ConditionalSelect from './ConditionalSelect'; import Location from './Location'; import JSONTree from "react-native-json-tree"; @@ -413,6 +414,361 @@ export default class FormComponent extends React.Component { } + // createFieldArrayCopy(fieldArray, field, fieldName, form, i, isRecursive = false) { + // + // if(isRecursive) { + // let asdf; + // let breakpoint; + // } + // + // if (fieldArray['#type'] !== undefined) { + // + // // If field type is container, we need to drill down and find the form to render + // if (fieldArray['#type'] === 'container') { + // fieldArray = field['und']; + // + // + // if (fieldArray['#type'] === undefined) { + // + // fieldArray = fieldArray[0]; + // + // if (fieldArray && fieldArray['#type'] === undefined) { + // + // // If it's a paragraph, we need to recursively run through and create + // if(fieldArray['#entity_type'] !== undefined && fieldArray['#entity_type'] === 'paragraphs_item') { + // let subForm = []; + // let m = 0; + // + // for (const key of Object.keys(fieldArray)) { + // if (fieldArray.hasOwnProperty(key) && key.charAt(0) !== '#') { + // let field = fieldArray[key]; + // let fieldName = field['machine_name']; + // subForm = this.createFieldArray(field, field, fieldName, subForm, m, true); + // m++; + // } + // + // + // } + // form[i].push(subForm); + // + // } + // + // else if (fieldArray['target_id'] !== undefined) { + // fieldArray = fieldArray['target_id']; + // } else if (fieldArray['nid'] !== undefined) { + // fieldArray = field['und'][0]['nid']; + // } else if (fieldArray['default'] !== undefined) { + // fieldArray = field['und'][0]['default']; + // } else if (fieldArray['sid'] !== undefined) { + // fieldArray = field['und'][0]['sid']; + // } else if (fieldArray['value'] !== undefined) { + // fieldArray = field['und'][0]['value']; + // } else if (fieldArray['geom'] !== undefined) { + // fieldArray = field['und'][0]['geom']; + // } + // } + // } + // } + // + // // Set required values + // let required = fieldArray['#required']; + // + // if (typeof fieldArray === 'object' && fieldArray['#type']) { + // + // // first determine if field is scald library because in FAPI that is a textfield + // if (fieldArray['#preview_context'] && fieldArray['#preview_context'] === 'mukurtu_scald_media_assets_edit_') { + // form[i].push(); + // } else if (fieldArray['#type'] === 'textfield') { + // form[i].push(); + // } else if (fieldArray['#type'] === 'text_format') { + // form[i].push(