import React, { useState, useContext } from 'react'; import { v4 as uuidv4 } from 'uuid'; import set from 'lodash/set'; import TextField from '../../../shared/TextField'; import AppContext from '../../../context/AppContext'; import Checkbox from '../../../shared/Checkbox'; import { addItem, deleteItem, moveItemUp, moveItemDown } from '../../../utils'; import ItemActions from '../../../shared/ItemActions'; const ExtrasTab = ({ data, onChange }) => { const context = useContext(AppContext); const { dispatch } = context; return ( <>
onChange('data.extras.enable', v)} />
onChange('data.extras.heading', v)} />

{data.extras.items.map((x, index) => ( ))} ); }; const AddItem = ({ dispatch }) => { const [isOpen, setOpen] = useState(false); const [item, setItem] = useState({ id: uuidv4(), enable: true, key: '', value: '', }); const onChange = (key, value) => setItem(items => set({ ...items }, key, value)); const onSubmit = () => { if (item.key === '' || item.value === '') return; addItem(dispatch, 'extras', item); setItem({ id: uuidv4(), enable: true, key: '', value: '', }); setOpen(false); }; return (
setOpen(!isOpen)} >
Add Item
{isOpen ? 'expand_less' : 'expand_more'}
onChange('key', v)} /> onChange('value', v)} />
); }; const Item = ({ item, index, onChange, dispatch, first, last }) => { const [isOpen, setOpen] = useState(false); const identifier = `data.extras.items[${index}]`; return (
setOpen(!isOpen)} >
{item.key}
{isOpen ? 'expand_less' : 'expand_more'}
onChange(`${identifier}.key`, v)} /> onChange(`${identifier}.value`, v)} />
); }; export default ExtrasTab;