import React, { useState, useRef, useEffect } from 'react';
import IO from '../io/IO';
import { useDispatch, useSelector } from 'react-redux'; // probably temporarily here
import { parameterRefreshAll } from '../timbre/parameters/parameterSlice'; // probably temporarily here
import logo from '../../1f3b9.svg';
import './Menu.css';
// for things such as (do you want to save? or do you want to reset things?)
const Modal = ({ children, show, setShow }) => {
const node = useRef();
const modalDisplay = show ? 'modal modal-display' : 'modal modal-hide';
useEffect(() => {
const current = node.current;
const handleOutsideClick = (event) => {
console.log('clicking anywhere');
if (current.contains(event.target)) {
return;
} else setShow();
};
if (show) {
document.addEventListener('mousedown', handleOutsideClick);
} else {
document.removeEventListener('mousedown', handleOutsideClick);
}
return () => {
document.removeEventListener('mousedown', handleOutsideClick);
};
}, [show, setShow]);
return (
{children}
);
};
export default function MainMenu() {
const unsaved = useSelector((state) => state.parameters.unsaved);
const [open, setOpen] = useState({
className: '',
openState: true,
});
const [showModal, setShowModal] = useState({
saveCheck: false,
ioModal: false,
});
const dispatch = useDispatch();
const HandleClick = () => {
setOpen({
className: open.openState
? 'menu-true-animation'
: 'menu-false-animation',
openState: !open.openState,
});
};
const AnimationEnd = () => {
setOpen({
...open,
className: `menu-${open.openState}`,
});
};
const showSaveCheck = () => {
setShowModal({ ...showModal, saveCheck: !showModal.saveCheck });
};
const showIOModal = () => {
setShowModal({ ...showModal, ioModal: !showModal.ioModal });
};
return (
Save Changes
Do you want to save your changes?
Alapatch
A microKORG Patch Editor
);
}