react icon indicating copy to clipboard operation
react copied to clipboard

<Form /> has runtime errors when `noDefault` is `true`

Open namti opened this issue 2 years ago • 2 comments

Formio version @formio/[email protected] React version: 18.2.0

If noDefault in options is true, an error occurs after choose a file for a file component.

File.js:764 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'some')
    at _callee$ (File.js:764:1)
    at tryCatch (File.js:99:1)
    at Generator.<anonymous> (File.js:99:1)
    at Generator.next (File.js:99:1)
    at asyncGeneratorStep (File.js:100:1)
    at _next (File.js:101:1)
    at File.js:101:1
    at new Promise (<anonymous>)
    at File.js:101:1
    at File.js:926:1

_callee$ | @ | File.js:764
-- | -- | --
  | tryCatch | @ | File.js:99
  | (anonymous) | @ | File.js:99
  | (anonymous) | @ | File.js:99
  | asyncGeneratorStep | @ | File.js:100
  | _next | @ | File.js:101
  | (anonymous) | @ | File.js:101
  | (anonymous) | @ | File.js:101
  | (anonymous) | @ | File.js:926
  | upload | @ | File.js:717
  | (anonymous) | @ | File.js:465
  | Promise.then (async) |   |  
  | (anonymous) | @ | File.js:464
<Form
  form={form_json}
  onChange={onFormChange}
  submission={submission_json}
  options={{ 
    noDefaults: true
  }}
/>

form_json

{
  "components": [
    {
      "label": "Upload",
      "labelPosition": "top",
      "description": "",
      "tooltip": "",
      "customClass": "",
      "tabindex": "",
      "hidden": false,
      "hideLabel": false,
      "autofocus": false,
      "disabled": false,
      "tableView": false,
      "modalEdit": false,
      "storage": "base64",
      "dir": "",
      "fileNameTemplate": "",
      "image": false,
      "uploadOnly": false,
      "webcam": false,
      "fileTypes": [
        {
          "label": "",
          "value": ""
        }
      ],
      "filePattern": "*.heic,*.gif,*.jpg,*.jpeg,*.png,*.bmp,*.pdf,*.zip,*.ppt,*.pptx,*.doc,*.docx,*.xls,*.xlsx",
      "fileMinSize": "0KB",
      "fileMaxSize": "10MB",
      "multiple": false,
      "persistent": true,
      "protected": false,
      "dbIndex": false,
      "encrypted": false,
      "redrawOn": "",
      "clearOnHide": true,
      "customDefaultValue": "",
      "calculateValue": "",
      "calculateServer": false,
      "allowCalculateOverride": false,
      "validate": {
        "required": false,
        "customMessage": "",
        "custom": "",
        "customPrivate": false,
        "json": "",
        "strictDateValidation": false,
        "multiple": false,
        "unique": false
      },
      "errorLabel": "",
      "errors": "",
      "key": "file",
      "tags": [],
      "properties": [],
      "conditional": {
        "show": null,
        "when": null,
        "eq": "",
        "json": ""
      },
      "customConditional": "",
      "logic": [],
      "attributes": [],
      "overlay": {
        "style": "",
        "page": "",
        "left": "",
        "top": "",
        "width": "",
        "height": ""
      },
      "type": "file",
      "imageSize": "200",
      "input": true,
      "placeholder": "",
      "prefix": "",
      "suffix": "",
      "defaultValue": null,
      "unique": false,
      "refreshOn": "",
      "dataGridLabel": false,
      "widget": null,
      "validateOn": "change",
      "showCharCount": false,
      "showWordCount": false,
      "allowMultipleMasks": false,
      "addons": [],
      "privateDownload": false,
      "id": "ecedeus"
    }
  ]
}

namti avatar Aug 28 '23 21:08 namti

Yes, we are able to replicate it, this is a formio.js library bug. Our QA team will create a ticket for the issue and include it in our internal Form.io developer queue. If you think, it is something that you can fix by yourself or need the fix faster, your PRs are highly appreciated in https://github.com/formio/formio.js.

TanyaGashtold avatar Sep 28 '23 13:09 TanyaGashtold