import './header.scss'; import React, { useRef, useState } from 'react'; import Icon from '../../components/Icon'; import Login from '../../components/LoginPopup'; import Select from '../../components/Select'; import Settings from '../../components/SettingPopup'; import useClickOutside from '../../hooks/useClickOutside'; import { MiniAppAPI, MiniAppCBType } from '../../model/miniAppApi'; import { phoneOptions, scaleOptions } from '../../model/phoneOptions'; import ProjectUpload from '../ProjectUploadPopup/projectupload'; interface Props { setDevice: any; device: string; setRatio: any; ratio: string; navigationHelper: any; setOverlay: any; simulatorRef: any; } const Header: React.FC = (props) => { //const [isSendClicked, setSendState] = useState(false); const [popup, setPopup] = useState({ login: false, settings: false, project: false, }); const settingsContainerRef = useRef(null); const loginContainerRef = useRef(null); const uploadContainerRef = useRef(null); function handleShake() { props.navigationHelper .activeView() .handleEvent(MiniAppAPI.detectShakeMotion, MiniAppCBType.complete); props.simulatorRef.current.classList.add( 'shake-simulator' + props.ratio.slice(-2) ); setTimeout(function () { props.simulatorRef.current.classList.remove( 'shake-simulator' + props.ratio.slice(-2) ); }, 1000); } // function sendToBackground() { // setSendState(true); // props.setOverlay(true); // props.navigationHelper // .activeView() // .handleEvent( // MiniAppAPI.paypayWillEnterBackground, // MiniAppCBType.complete // ); // } // function sendToForeground() { // setSendState(false); // props.setOverlay(false); // props.navigationHelper // .activeView() // .handleEvent( // MiniAppAPI.paypayWillEnterForeground, // MiniAppCBType.complete // ); // } function resetPopup() { setPopup({ login: false, settings: false, project: false }); } function openPopup(key: string, value: boolean) { resetPopup(); setPopup((prevState) => { return { ...prevState, [key]: value }; }); } useClickOutside(settingsContainerRef, () => { if (popup.settings) { resetPopup(); } }); useClickOutside(uploadContainerRef, () => { if (popup.project) { resetPopup(); } }); useClickOutside(loginContainerRef, () => { if (popup.login) { resetPopup(); } }); return (
{/*
*/}
openPopup('login', !popup.login)} />
openPopup('project', !popup.project)} />
openPopup('settings', !popup.settings)} />
); }; export default Header;