import React, { useCallback, useReducer, useState, useMemo } from 'react'; import { AppContext } from './app/context'; import { defaults, reducer } from './app/stateReducer'; import { useEditorListener } from './app/hooks'; import PopupToggleButton from './components/PopupToggleButton'; import Popup from './components/Popup'; import './assets/styles/style.scss'; const App: React.FC = () => { const [ openedPopup, setOpenedPopup ] = useState( false ); const [ state, dispatch ] = useReducer( reducer, defaults ); const togglePopup = useCallback( () => { setOpenedPopup( ! openedPopup ); }, [ openedPopup ] ); // eslint-disable-next-line react-hooks/exhaustive-deps const Button = useMemo( () => , [] ); useEditorListener( Button ); return ( { openedPopup && } ); }; export default React.memo( App );