import React, { FC, useState, useRef, useEffect } from 'react'; import Integrations from './Integrations'; import Settings from './Settings'; import Card from '../core/Card'; import Modal from './Modal'; import { getSettings } from './../Helpers'; const INTEGRATIONS = 'integrations'; const ADDITIONAL_SETTINGS = 'additional-settings'; type Props = { store: Object; setStore: any; siteKey: string; secretKey: string; validation: boolean; }; const ControlBox: FC = ({ store, setStore, siteKey, secretKey, validation, }) => { const alertModalRef = useRef(null); const [saveChangesAlert, setSaveChangesAlert] = useState(false); const [settings, setSettings] = useState(getSettings()); const [activeTab, setActiveTab] = useState( localStorage.getItem('ect_active_tab') || INTEGRATIONS ); /** * Alert if clicked on outside of element * * @param event */ const handleCancelOutside = (event: MouseEvent) => { if ( alertModalRef.current && !alertModalRef.current.contains(event.target) ) { setSaveChangesAlert(false); } }; const handleTab = (value): void => { setActiveTab(value); localStorage.setItem('ect_active_tab', value); }; useEffect(() => { document.addEventListener('mousedown', handleCancelOutside); return () => { document.removeEventListener('mousedown', handleCancelOutside); }; }, [handleCancelOutside]); return (
{saveChangesAlert && (
setSaveChangesAlert(false)} >

Are you sure to reset settings?

Your changes will be lost if you leave the page

)}
{activeTab === INTEGRATIONS && ( )} {activeTab === ADDITIONAL_SETTINGS && ( )}
); }; export default ControlBox;