From 735e94e1bd1f0b27f4c3349e6b6d9531eacad034 Mon Sep 17 00:00:00 2001 From: Felix Henninger Date: Tue, 11 Aug 2020 14:47:20 +0200 Subject: [PATCH] Refactor form array into its own module --- packages/builder/src/components/Form/array.js | 41 ++++++++++++++++++ packages/builder/src/components/Form/table.js | 42 +------------------ 2 files changed, 43 insertions(+), 40 deletions(-) create mode 100644 packages/builder/src/components/Form/array.js diff --git a/packages/builder/src/components/Form/array.js b/packages/builder/src/components/Form/array.js new file mode 100644 index 000000000..5ea62acfc --- /dev/null +++ b/packages/builder/src/components/Form/array.js @@ -0,0 +1,41 @@ +import React, { Fragment } from 'react' + +import { FieldArray, useFormikContext, getIn } from 'formik' + +export const FormArray = ({ + name, item: Item, + header: Header, footer: Footer, + wrapper: Wrapper=Fragment, + wrapperProps, + bodyWrapper: BodyWrapper=Fragment, + defaultItem={}, +}) => { + const { values } = useFormikContext() + const rows = getIn(values, name) + + return ( + + { + arrayHelpers => + { Header &&
} + + { + (rows || []).map( + (data, index) => + + ) + } + + { Footer &&