import variables from 'config/variables'; import { useState, useEffect, useMemo } from 'react'; import EventBus from 'utils/eventbus'; import { Button } from 'components/Elements'; import { MdFlag, MdOutlineVisibilityOff, MdOutlineVisibility } from 'react-icons/md'; import Slider from '../../../Form/Settings/Slider/Slider'; import values from 'utils/data/slider_values.json'; import { motion, AnimatePresence } from 'framer-motion'; const Preview = (props) => { return (

Preview

{props.children}
); }; const VisibilityToggleButton = ({ setting, onClick }) => { const [isInitialRender, setIsInitialRender] = useState(true); useEffect(() => { setIsInitialRender(false); }, []); const iconVariants = { initial: { opacity: 0, scale: 0.8 }, animate: { opacity: 1, scale: 1 }, exit: { opacity: 0, scale: 0.8 }, }; const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches; return ( ); }; const Controls = (props) => { const [setting, setSetting] = useState(localStorage.getItem(props.setting) === 'true'); useEffect(() => { setSetting(localStorage.getItem(props.setting) === 'true'); }, [props.setting]); const changeSetting = () => { const toggle = localStorage.getItem(props.setting) === 'true'; localStorage.setItem(props.setting, !toggle); setSetting(!toggle); variables.stats.postEvent('setting', props.name, setting === true ? 'enabled' : 'disabled'); EventBus.emit('toggle', props.setting); if (props.element) { if (!document.querySelector(props.element)) { document.querySelector('.reminder-info').style.display = 'flex'; return localStorage.setItem('showReminder', true); } } EventBus.emit('refresh', props.category); }; const ReportButton = () => { return ( ); }; const memoizedToggle = useMemo( () => , [setting, changeSetting], ); return (

Controls

{props.visibilityToggle && memoizedToggle} {props.report !== false && }
{(props.zoomSetting !== null || props.zoomSetting !== '') && ( )}
); }; const Hero = (props) => { return (
{props.children}
); }; export { Hero, Preview, Controls };