import { Fragment, createElement, Component, useRef, useReducer, useEffect, useMemo, useCallback, useState, } from '@wordpress/element' import classnames from 'classnames' import TypographyModal from './typography/TypographyModal' import OutsideClickHandler from './react-outside-click-handler' import { humanizeVariations, familyForDisplay } from './typography/helpers' import { maybePromoteScalarValueIntoResponsive } from '../../customizer/components/responsive-controls' import { Manager, Reference, Popper } from 'react-popper' import { Transition } from 'react-spring' import bezierEasing from 'bezier-easing' import { __ } from 'ct-i18n' const Typography = ({ option: { label = '', desc = '', attr = {} }, option, value, device, onChange, }) => { // const [isOpen, setIsOpen] = useState(false) // options | fonts | variations | search const [currentViewCache, setCurrentViewCache] = useState('_:_') let [currentView, previousView] = useMemo( () => currentViewCache.split(':'), [currentViewCache] ) const setCurrentView = useCallback( (newView) => setCurrentViewCache(`${newView}:${currentView}`), [currentView] ) const [{ isOpen, isTransitioning }, setModalState] = useState({ isOpen: false, isTransitioning: false, }) const setIsOpen = (isOpen) => { setModalState((state) => ({ ...state, isOpen, isTransitioning: true, })) } const closeModal = () => { setIsOpen(false) } const stopTransitioning = () => setModalState((state) => ({ ...state, isTransitioning: false, })) return (