import React, { useState, useEffect } from 'react'; import { fontOptions } from './options/font-options'; import Control from './Control'; import PixelField from './widgets/PixelField'; import SelectMenu from './widgets/SelectMenu'; import IconFontSize from './icons/IconFontSize'; import IconLetterSpacing from './icons/IconLetterSpacing'; import IconLineHeight from './icons/IconLineHeight'; import IconMargin from './icons/IconMargin'; import IconMobile from './icons/IconMobile'; const FieldRow = ({ inputValue='', onUpdate=(value)=>{ value }, isMobile = false }) => { const [family, setFamily] = useState(getInputObject("family")); const [size, setSize] = useState(getInputObject("size")); const [letterSpacing, setLetterSpacing] = useState(getInputObject("letterSpacing")); const [lineHeight, setLineHeight] = useState(getInputObject("lineHeight")); const [margin, setMargin] = useState(getInputObject("smMargin")); const [smSize, setSmSize] = useState(getInputObject("smSize")); const [smLetterSpacing, setSmLetterSpacing] = useState(getInputObject("smLetterSpacing")); const [smLineHeight, setSmLineHeight] = useState(getInputObject("smLineHeight")); const [smMargin, setSmMargin] = useState(getInputObject("smMargin")); function getInputObject(type) { if (!inputValue) return "" const inputObj = JSON.parse(inputValue) return inputObj[type] } const jsonInput = () => { return JSON.stringify({ family: family || "Arial", size: size || "16", lineHeight: lineHeight || "16", letterSpacing: letterSpacing || "", margin: margin || "", smSize: smSize || "", smLineHeight: smLineHeight || "", smLetterSpacing: smLetterSpacing || "", smMargin: smMargin || "", }) } useEffect(() => { onUpdate(`${jsonInput()}`) }, [family, size, letterSpacing, lineHeight, margin, smSize, smLetterSpacing, smLineHeight, smMargin]); return (