Skip to content

Commit 552f914

Browse files
brunozoricadrians5j
authored andcommitted
fix(app-form-builder): force array check before mapping arrays
1 parent 8f29b2a commit 552f914

File tree

6 files changed

+18
-19
lines changed

6 files changed

+18
-19
lines changed

packages/app-form-builder/src/admin/components/FormEditor/Tabs/EditTab/EditFieldDialog.tsx

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,27 @@
1-
import React, { useState, useEffect, useCallback } from "react";
1+
import React, { useCallback, useEffect, useState } from "react";
22
import cloneDeep from "lodash/cloneDeep";
33
import { css } from "emotion";
44
import styled from "@emotion/styled";
55
import {
66
Dialog,
7-
DialogContent,
8-
DialogTitle,
9-
DialogCancel,
107
DialogActions,
11-
DialogButton
8+
DialogButton,
9+
DialogCancel,
10+
DialogContent,
11+
DialogTitle
1212
} from "@webiny/ui/Dialog";
1313
import { Form, FormOnSubmit } from "@webiny/form";
1414
import { plugins } from "@webiny/plugins";
15-
import { Tabs, Tab } from "@webiny/ui/Tabs";
15+
import { Tab, Tabs } from "@webiny/ui/Tabs";
1616
import GeneralTab from "./EditFieldDialog/GeneralTab";
1717
import ValidatorsTab from "./EditFieldDialog/ValidatorsTab";
1818
import FieldTypeSelector from "./EditFieldDialog/FieldTypeSelector";
1919
import { i18n } from "@webiny/app/i18n";
20-
const t = i18n.namespace("FormEditor.EditFieldDialog");
2120
import { useFormEditor } from "../../Context";
2221
import { FbBuilderFieldPlugin, FbFormModelField } from "~/types";
2322

23+
const t = i18n.namespace("FormEditor.EditFieldDialog");
24+
2425
const dialogBody = css({
2526
"&.webiny-ui-dialog__content": {
2627
width: 875,

packages/app-form-builder/src/admin/components/FormEditor/Tabs/EditTab/EditTab.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export const EditTab = () => {
2121
return (
2222
<EditContainer>
2323
<FieldErrors errors={errors} />
24-
{data.steps.map((formStep: FbFormStep, index: number) => (
24+
{(data.steps || []).map((formStep: FbFormStep, index: number) => (
2525
<EditTabStep
2626
key={`edit-tab-step${index}`}
2727
formStep={formStep}

packages/app-form-builder/src/admin/components/FormEditor/Tabs/EditTab/FormStep/FormStepWithFields.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export interface FormStepWithFieldsProps {
1010
export const FormStepWithFields = ({ fields, formStep }: FormStepWithFieldsProps) => {
1111
return (
1212
<React.Fragment>
13-
{fields.map((row, rowIndex) => (
13+
{(fields || []).map((row, rowIndex) => (
1414
<FormStepRow
1515
key={`row-${rowIndex}`}
1616
row={row}

packages/app-form-builder/src/admin/plugins/formDetails/formSubmissions/FormSubmissionsList/FormSubmissionsList.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,10 +107,10 @@ export const FormSubmissionsList = ({ form }: FormSubmissionsListProps) => {
107107
pagination: true
108108
}}
109109
>
110-
{({ data = [] }: { data: FbFormSubmissionData[] }) => (
110+
{({ data }: { data: FbFormSubmissionData[] }) => (
111111
<>
112112
<Scrollbar onScrollFrame={scrollFrame => loadMoreOnScroll(scrollFrame)}>
113-
{data.map(submission => {
113+
{(data || []).map(submission => {
114114
const submittedOn = submission.meta
115115
? new Date(submission.meta.submittedOn)
116116
: new Date();

packages/app-form-builder/src/admin/views/Forms/FormsDataList.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -283,9 +283,9 @@ const FormsDataList = (props: FormsDataListProps) => {
283283
modalOverlay={formsDataListModalOverlay}
284284
modalOverlayAction={<DataListModalOverlayAction icon={<FilterIcon />} />}
285285
>
286-
{({ data = [] }: { data: FbFormModel[] }) => (
286+
{({ data }: { data: FbFormModel[] | null }) => (
287287
<List data-testid="default-data-list">
288-
{data.map(form => {
288+
{(data || []).map(form => {
289289
const name = form.createdBy.displayName;
290290
return (
291291
<ListItem

packages/app-form-builder/src/page-builder/admin/plugins/components/FormElementAdvancedSettings.tsx

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import React, { useMemo } from "react";
22
import { useLazyQuery, useQuery } from "@apollo/react-hooks";
3-
import get from "lodash/get";
43
import { Cell, Grid } from "@webiny/ui/Grid";
54
import { Alert } from "@webiny/ui/Alert";
65
import { AutoComplete } from "@webiny/ui/AutoComplete";
@@ -20,7 +19,6 @@ import {
2019
ListFormsQueryResponse
2120
} from "./graphql";
2221
import { BindComponent, FormOnSubmit } from "@webiny/form";
23-
import { FbRevisionModel } from "~/types";
2422

2523
const FormOptionsWrapper = styled("div")({
2624
minHeight: 250
@@ -96,10 +94,10 @@ const FormElementAdvancedSettings = ({ Bind, submit, data }: FormElementAdvanced
9694
value: null
9795
};
9896

99-
if (getQuery.data) {
100-
const publishedRevisions = (
101-
get(getQuery, "data.formBuilder.getFormRevisions.data") as FbRevisionModel[]
102-
).filter(revision => revision.published);
97+
if (getQuery.data?.formBuilder?.getFormRevisions?.data) {
98+
const publishedRevisions = getQuery.data.formBuilder.getFormRevisions.data.filter(
99+
revision => revision.published
100+
);
103101
output.options = publishedRevisions.map(item => ({
104102
id: item.id,
105103
name: `${item.name} (version ${item.version})`

0 commit comments

Comments
 (0)