Skip to content

Instantly share code, notes, and snippets.

@mmintel
Created March 27, 2020 06:25
Show Gist options
  • Save mmintel/fdf643f96de61ff23474bfa0e3076435 to your computer and use it in GitHub Desktop.
Save mmintel/fdf643f96de61ff23474bfa0e3076435 to your computer and use it in GitHub Desktop.
TinaCMS condition field
import React from 'react';
import styled from 'styled-components'
import { FieldsBuilder } from '@tinacms/form-builder'
const Condition = ({ input, field, form }) => {
const nestedFields = field.fields(input.value);
const conditionalFields = nestedFields.map(f => {
const fieldPath = field.name.split('.').slice(0, -1)
const name = fieldPath.concat(f.name).join('.')
return {
...f,
name,
}
})
const fields = [
{
...field.trigger,
name: field.name,
label: field.label,
},
...conditionalFields
]
return (
<ConditionalField>
<FieldsBuilder fields={fields} form={form} />
</ConditionalField>
)
};
const ConditionalField = styled.div`
margin-top: -20px;
margin-left: -20px;
margin-right: -20px;
`
export default Condition
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment