import React, { useState, useContext } from 'react'; import { useTranslation } from 'react-i18next'; 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 } from '../../../utils'; import ItemActions from '../../../shared/ItemActions'; import ItemHeading from '../../../shared/ItemHeading'; import AddItemButton from '../../../shared/AddItemButton'; 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 Form = ({ item, onChange, identifier = '' }) => { const { t } = useTranslation('leftSidebar'); return (
onChange(`${identifier}key`, v)} /> onChange(`${identifier}value`, v)} />
); }; const AddItem = ({ heading, 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 (
); }; const Item = ({ item, index, onChange, dispatch, first, last }) => { const [isOpen, setOpen] = useState(false); const identifier = `data.extras.items[${index}].`; return (
); }; export default ExtrasTab;